diff --git a/Scripts/Things/TunnelObjects/SnapArrows.cs b/Scripts/Things/TunnelObjects/SnapArrows.cs new file mode 100644 index 0000000..6eb9180 --- /dev/null +++ b/Scripts/Things/TunnelObjects/SnapArrows.cs @@ -0,0 +1,15 @@ +using Godot; +using System; + +public partial class SnapArrows : HBoxContainer +{ + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { + } + + // Called every frame. 'delta' is the elapsed time since the previous frame. + public override void _Process(double delta) + { + } +} diff --git a/Shaders/SnapArrow.tres b/Shaders/SnapArrow.tres new file mode 100644 index 0000000..c4ac408 --- /dev/null +++ b/Shaders/SnapArrow.tres @@ -0,0 +1,210 @@ +[gd_resource type="VisualShader" load_steps=20 format=3 uid="uid://b1yf18ux4edj2"] + +[ext_resource type="Texture2D" uid="uid://cmaq66vbi80ug" path="res://_Assets/Textures/Notes/SlideArrow_Texture.png" id="1_ol5j3"] + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_1jpfy"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +op_type = 2 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_3pdfb"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +op_type = 2 +operator = 2 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_eesut"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(2, 2, 2, 2)] +op_type = 2 +operator = 2 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_2u62d"] +expanded_output_ports = [0] +source = 5 +texture = ExtResource("1_ol5j3") + +[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_nqoll"] +operator = 2 + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_ypqau"] +parameter_name = "arrow" +texture_filter = 2 + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_l1lmq"] + +[sub_resource type="VisualShaderNodeBooleanParameter" id="VisualShaderNodeBooleanParameter_3hrni"] +parameter_name = "isIn" +default_value = true + +[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_2ma3x"] +default_input_values = [0, false, 1, Quaternion(1, 1, 1, 1), 2, Quaternion(0, 0, 0, 0)] +op_type = 5 + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_e28fg"] +constant = Color(1, 0.22, 0.233, 1) + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_uf0bo"] +constant = Color(0, 0.533333, 1, 1) + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_5yp47"] +output_port_for_preview = 0 +input_name = "uv" + +[sub_resource type="VisualShaderNodeVectorCompose" id="VisualShaderNodeVectorCompose_ui6mq"] +output_port_for_preview = 0 +op_type = 0 + +[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_v2j5g"] +default_input_values = [0, Vector2(0, 0)] +op_type = 0 + +[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_7bypq"] +function = 31 + +[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_nw1c2"] + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_13pou"] +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +op_type = 2 + +[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_p0v4r"] +output_port_for_preview = 0 +default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)] +op_type = 2 +operator = 2 + +[resource] +code = "shader_type canvas_item; +render_mode blend_mix; + +uniform bool isIn; +uniform sampler2D arrow : filter_linear; + + + +void fragment() { +// BooleanParameter:35 + bool n_out35p0 = isIn; + + +// ColorConstant:40 + vec4 n_out40p0 = vec4(1.000000, 0.220000, 0.233000, 1.000000); + + +// ColorConstant:41 + vec4 n_out41p0 = vec4(0.000000, 0.533333, 1.000000, 1.000000); + + + vec4 n_out39p0; +// Switch:39 + n_out39p0 = mix(n_out41p0, n_out40p0, float(n_out35p0)); + + +// VectorOp:13 + vec4 n_in13p1 = vec4(2.00000, 2.00000, 2.00000, 2.00000); + vec4 n_out13p0 = n_out39p0 * n_in13p1; + + +// Input:42 + vec2 n_out42p0 = UV; + + +// VectorDecompose:44 + float n_out44p0 = n_out42p0.x; + float n_out44p1 = n_out42p0.y; + + +// FloatFunc:45 + float n_out45p0 = 1.0 - n_out44p1; + + + float n_out46p0; +// Switch:46 + n_out46p0 = mix(n_out45p0, n_out44p1, float(n_out35p0)); + + +// VectorCompose:43 + vec2 n_out43p0 = vec2(n_out46p0, n_out44p0); + + + vec4 n_out14p0; +// Texture2D:14 + n_out14p0 = texture(arrow, n_out43p0); + float n_out14p1 = n_out14p0.r; + float n_out14p2 = n_out14p0.g; + float n_out14p3 = n_out14p0.b; + + +// VectorOp:11 + vec4 n_out11p0 = n_out13p0 * vec4(n_out14p1); + + +// VectorOp:10 + vec4 n_out10p0 = n_out11p0 + n_out39p0; + + +// FloatOp:15 + float n_in15p1 = 0.00000; + float n_out15p0 = n_out14p1 * n_in15p1; + + +// VectorOp:7 + vec4 n_out7p0 = n_out10p0 + vec4(n_out15p0); + + +// Mix:3 + float n_in3p1 = 1.00000; + float n_in3p2 = 0.50000; + float n_out3p0 = mix(n_out14p2, n_in3p1, n_in3p2); + + +// VectorOp:8 + vec4 n_out8p0 = n_out7p0 * vec4(n_out3p0); + + +// Output:0 + COLOR.rgb = vec3(n_out8p0.xyz); + COLOR.a = n_out14p3; + + +} +" +graph_offset = Vector2(-1296.02, -327.954) +mode = 1 +flags/light_only = false +nodes/fragment/0/position = Vector2(1500, 460) +nodes/fragment/3/node = SubResource("VisualShaderNodeMix_l1lmq") +nodes/fragment/3/position = Vector2(760, 320) +nodes/fragment/7/node = SubResource("VisualShaderNodeVectorOp_13pou") +nodes/fragment/7/position = Vector2(800, 0) +nodes/fragment/8/node = SubResource("VisualShaderNodeVectorOp_p0v4r") +nodes/fragment/8/position = Vector2(1080, 120) +nodes/fragment/10/node = SubResource("VisualShaderNodeVectorOp_1jpfy") +nodes/fragment/10/position = Vector2(560, -80) +nodes/fragment/11/node = SubResource("VisualShaderNodeVectorOp_3pdfb") +nodes/fragment/11/position = Vector2(280, -160) +nodes/fragment/13/node = SubResource("VisualShaderNodeVectorOp_eesut") +nodes/fragment/13/position = Vector2(-20, -260) +nodes/fragment/14/node = SubResource("VisualShaderNodeTexture_2u62d") +nodes/fragment/14/position = Vector2(-60, 120) +nodes/fragment/15/node = SubResource("VisualShaderNodeFloatOp_nqoll") +nodes/fragment/15/position = Vector2(560, 140) +nodes/fragment/26/node = SubResource("VisualShaderNodeTexture2DParameter_ypqau") +nodes/fragment/26/position = Vector2(-500, 400) +nodes/fragment/35/node = SubResource("VisualShaderNodeBooleanParameter_3hrni") +nodes/fragment/35/position = Vector2(-1580, -260) +nodes/fragment/39/node = SubResource("VisualShaderNodeSwitch_2ma3x") +nodes/fragment/39/position = Vector2(-600, -220) +nodes/fragment/40/node = SubResource("VisualShaderNodeColorConstant_e28fg") +nodes/fragment/40/position = Vector2(-840, -280) +nodes/fragment/41/node = SubResource("VisualShaderNodeColorConstant_uf0bo") +nodes/fragment/41/position = Vector2(-840, -140) +nodes/fragment/42/node = SubResource("VisualShaderNodeInput_5yp47") +nodes/fragment/42/position = Vector2(-1900, 80) +nodes/fragment/43/node = SubResource("VisualShaderNodeVectorCompose_ui6mq") +nodes/fragment/43/position = Vector2(-400, 60) +nodes/fragment/44/node = SubResource("VisualShaderNodeVectorDecompose_v2j5g") +nodes/fragment/44/position = Vector2(-1520, 60) +nodes/fragment/45/node = SubResource("VisualShaderNodeFloatFunc_7bypq") +nodes/fragment/45/position = Vector2(-1200, 160) +nodes/fragment/46/node = SubResource("VisualShaderNodeSwitch_nw1c2") +nodes/fragment/46/position = Vector2(-1000, -60) +nodes/fragment/connections = PackedInt32Array(7, 0, 8, 0, 11, 0, 10, 0, 10, 0, 7, 0, 13, 0, 11, 0, 15, 0, 7, 1, 8, 0, 0, 0, 3, 0, 8, 1, 14, 1, 11, 1, 14, 1, 15, 0, 14, 2, 3, 0, 26, 0, 14, 2, 35, 0, 39, 0, 40, 0, 39, 1, 41, 0, 39, 2, 39, 0, 13, 0, 39, 0, 10, 1, 14, 3, 0, 1, 42, 0, 44, 0, 43, 0, 14, 0, 44, 0, 43, 1, 44, 1, 45, 0, 46, 0, 43, 0, 35, 0, 46, 0, 45, 0, 46, 2, 44, 1, 46, 1) diff --git a/Things/TunnelObjects/Notes/NoteSnapIn.tscn b/Things/TunnelObjects/Notes/NoteSnapIn.tscn index c77d169..ed6fc26 100644 --- a/Things/TunnelObjects/Notes/NoteSnapIn.tscn +++ b/Things/TunnelObjects/Notes/NoteSnapIn.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://b4osxd8lxmq8h"] +[gd_scene load_steps=4 format=3 uid="uid://b4osxd8lxmq8h"] [ext_resource type="Script" path="res://Scripts/Things/TunnelObjects/THNotePlay.cs" id="1_lmk57"] [ext_resource type="Texture2D" uid="uid://cr2a3fc5nu7js" path="res://_Assets/Textures/Notes/SnapIn.png" id="2_ipqj7"] +[ext_resource type="PackedScene" uid="uid://digltkd2gj66n" path="res://Things/TunnelObjects/Notes/SnapArrows.tscn" id="3_tg2n4"] [node name="NoteSnapIn" type="Control" node_paths=PackedStringArray("noteBase")] layout_mode = 3 @@ -17,9 +18,19 @@ anchors_preset = -1 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -36.0 +offset_right = -144.0 offset_bottom = -24.0 grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("2_ipqj7") patch_margin_left = 12 patch_margin_right = 12 + +[node name="HBoxContainer" parent="." instance=ExtResource("3_tg2n4")] +layout_mode = 0 +anchors_preset = 0 +anchor_top = 0.0 +anchor_bottom = 0.0 +offset_top = -205.0 +offset_bottom = -65.0 +grow_vertical = 1 diff --git a/Things/TunnelObjects/Notes/SnapArrows.tscn b/Things/TunnelObjects/Notes/SnapArrows.tscn new file mode 100644 index 0000000..fc28df2 --- /dev/null +++ b/Things/TunnelObjects/Notes/SnapArrows.tscn @@ -0,0 +1,171 @@ +[gd_scene load_steps=7 format=3 uid="uid://digltkd2gj66n"] + +[ext_resource type="Script" path="res://Things/TunnelObjects/Notes/SnapArrows.cs" id="1_dqasq"] +[ext_resource type="Shader" uid="uid://b1yf18ux4edj2" path="res://Shaders/SnapArrow.tres" id="1_dxmi1"] +[ext_resource type="Texture2D" uid="uid://cedfe12weahhb" path="res://_Assets/Textures/Notes/SnapArrow.png" id="2_dipvr"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_a2kww"] +shader = ExtResource("1_dxmi1") +shader_parameter/isIn = true +shader_parameter/arrow = ExtResource("2_dipvr") + +[sub_resource type="Gradient" id="Gradient_46guk"] +offsets = PackedFloat32Array(0) +colors = PackedColorArray(0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_oc0to"] +gradient = SubResource("Gradient_46guk") +width = 1 + +[node name="SnapArrows" type="HBoxContainer"] +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -1080.0 +offset_right = 1920.0 +offset_bottom = -940.0 +grow_vertical = 0 +theme_override_constants/separation = 0 +alignment = 1 +script = ExtResource("1_dqasq") +theme_override_constants/separation = 0 + +[node name="Arrow TextureRect1" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect2" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect3" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect4" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect5" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect6" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect7" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect8" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect9" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect10" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect11" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect12" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect13" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect14" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect15" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect16" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect17" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect18" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect19" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 + +[node name="Arrow TextureRect20" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_a2kww") +custom_minimum_size = Vector2(96, 140) +layout_mode = 2 +texture = SubResource("GradientTexture1D_oc0to") +expand_mode = 4 diff --git a/_Assets/Textures/Notes/SnapArrow.png b/_Assets/Textures/Notes/SnapArrow.png new file mode 100644 index 0000000..310cfb7 Binary files /dev/null and b/_Assets/Textures/Notes/SnapArrow.png differ diff --git a/_Assets/Textures/Notes/SnapArrow.png.import b/_Assets/Textures/Notes/SnapArrow.png.import new file mode 100644 index 0000000..d94800b --- /dev/null +++ b/_Assets/Textures/Notes/SnapArrow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cedfe12weahhb" +path="res://.godot/imported/SnapArrow.png-e54b07c8952e6ca1dd039770652d110a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://_Assets/Textures/Notes/SnapArrow.png" +dest_files=["res://.godot/imported/SnapArrow.png-e54b07c8952e6ca1dd039770652d110a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1