diff --git a/Movement tests.sln.DotSettings.user b/Movement tests.sln.DotSettings.user index 665b421..c6ee654 100644 --- a/Movement tests.sln.DotSettings.user +++ b/Movement tests.sln.DotSettings.user @@ -1,2 +1,4 @@  + ForceIncluded + ForceIncluded True \ No newline at end of file diff --git a/assets/greybox/greybox.png b/assets/greybox/greybox.png new file mode 100644 index 0000000..f11c841 Binary files /dev/null and b/assets/greybox/greybox.png differ diff --git a/assets/greybox/greybox.png.import b/assets/greybox/greybox.png.import new file mode 100644 index 0000000..5bd0d87 --- /dev/null +++ b/assets/greybox/greybox.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hf6y7ws45y8p" +path.s3tc="res://.godot/imported/greybox.png-ff2e1ff515631e83618eb1350d29d6ec.s3tc.ctex" +path.etc2="res://.godot/imported/greybox.png-ff2e1ff515631e83618eb1350d29d6ec.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/greybox/greybox.png" +dest_files=["res://.godot/imported/greybox.png-ff2e1ff515631e83618eb1350d29d6ec.s3tc.ctex", "res://.godot/imported/greybox.png-ff2e1ff515631e83618eb1350d29d6ec.etc2.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +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=0 diff --git a/assets/greybox/m_greybox.tres b/assets/greybox/m_greybox.tres new file mode 100644 index 0000000..b282485 --- /dev/null +++ b/assets/greybox/m_greybox.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://31aulub2nqov"] + +[ext_resource type="Texture2D" uid="uid://hf6y7ws45y8p" path="res://assets/greybox/greybox.png" id="1_qik1o"] + +[resource] +albedo_texture = ExtResource("1_qik1o") +uv1_triplanar = true +uv1_world_triplanar = true +uv2_world_triplanar = true diff --git a/main.tscn b/main.tscn index 55275b8..138b45b 100644 --- a/main.tscn +++ b/main.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://cxbskue0lj2gv"] +[gd_scene load_steps=7 format=3 uid="uid://cxbskue0lj2gv"] [ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://player_controller/PlayerController.tscn" id="1_ig7tw"] [ext_resource type="PackedScene" uid="uid://dkr80d2pi0d41" path="res://addons/guide/debugger/guide_debugger.tscn" id="2_0xm2m"] +[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/greybox/m_greybox.tres" id="3_h2yge"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_0xm2m"] sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) @@ -18,6 +19,9 @@ glow_enabled = true [node name="Main" type="Node3D"] +[node name="Player" parent="." instance=ExtResource("1_ig7tw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.2019, 12.6118, 13.3006) + [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_1bvp3") @@ -25,6 +29,11 @@ environment = SubResource("Environment_1bvp3") transform = Transform3D(-0.772218, 0.611111, 0.173844, 0.0446935, -0.220691, 0.974319, 0.633783, 0.760157, 0.143109, 0, 0, 0) shadow_enabled = true +[node name="DebugLayer" type="CanvasLayer" parent="."] + +[node name="GuideDebugger" parent="DebugLayer" instance=ExtResource("2_0xm2m")] +visible = false + [node name="Greybox" type="CSGCombiner3D" parent="."] use_collision = true collision_layer = 3 @@ -33,11 +42,13 @@ collision_layer = 3 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09619, -0.472656, -0.958893) use_collision = true size = Vector3(100, 1, 100) +material = ExtResource("3_h2yge") [node name="CSGBox3D2" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 5, 11.0613) use_collision = true size = Vector3(10, 10, 57.8774) +material = ExtResource("3_h2yge") [node name="Stairs" type="CSGCombiner3D" parent="Greybox"] use_collision = true @@ -45,43 +56,53 @@ use_collision = true [node name="CSGBox3D5" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.0294, 0.5, 32.891) size = Vector3(3, 1, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D6" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1, 29.905) size = Vector3(3, 2, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D7" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1.5, 26.9138) size = Vector3(3, 3, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D8" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2, 23.9462) size = Vector3(3, 4, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D9" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2.5, 20.975) size = Vector3(3, 5, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D10" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3, 17.9825) size = Vector3(3, 6, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D11" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3.5, 15) size = Vector3(3, 7, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D12" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4, 12.018) size = Vector3(3, 8, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D13" type="CSGBox3D" parent="Greybox/Stairs"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4.5, 9.04904) size = Vector3(3, 9, 3) +material = ExtResource("3_h2yge") [node name="CSGBox3D3" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.0524, 10.795, 6.27246) use_collision = true size = Vector3(39.9961, 21.6211, 2.62695) +material = ExtResource("3_h2yge") [node name="CSGCylinder3D" type="CSGCylinder3D" parent="Greybox/CSGBox3D3"] transform = Transform3D(4.2, 0, 0, 0, -6.11959e-08, -7, 0, 1.4, -3.0598e-07, 8.96759, -10.8105, -0.293446) @@ -101,79 +122,86 @@ sides = 40 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.9586, 5, 15.3133) use_collision = true size = Vector3(25.9171, 10, 66.0572) +material = ExtResource("3_h2yge") [node name="CSGBox3D9" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.5038, 2.5, 7.30957) size = Vector3(3, 5, 25.3809) +material = ExtResource("3_h2yge") [node name="CSGBox3D10" type="CSGBox3D" parent="Greybox"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 11.517, 1.29345, 21.5) size = Vector3(3, 2.5, 22.978) +material = ExtResource("3_h2yge") [node name="CSGBox3D5" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.45774, 10.7885, -6.46509) use_collision = true size = Vector3(2.15405, 21.577, 22.8794) +material = ExtResource("3_h2yge") [node name="CSGBox3D6" type="CSGBox3D" parent="Greybox"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -7.80455, 10.8026, -16.8324) use_collision = true size = Vector3(2.15405, 21.6052, 18.459) +material = ExtResource("3_h2yge") [node name="CSGBox3D7" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.6363, 5, -30.4887) use_collision = true size = Vector3(6.8864, 10, 40.8848) +material = ExtResource("3_h2yge") [node name="CSGBox3D8" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50.0149, 26.122, -0.963737) use_collision = true size = Vector3(2.14108, 52.2441, 99.9347) +material = ExtResource("3_h2yge") [node name="CSGBox3D11" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28.1405, 26.122, -0.963737) use_collision = true size = Vector3(2.14108, 52.2441, 99.9347) +material = ExtResource("3_h2yge") [node name="CSGBox3D12" type="CSGBox3D" parent="Greybox"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 8.92915, 26.122, -49.9656) use_collision = true size = Vector3(2.14108, 52.2441, 99.9347) +material = ExtResource("3_h2yge") [node name="CSGBox3D13" type="CSGBox3D" parent="Greybox"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 10.7529, 26.122, 49.3889) use_collision = true size = Vector3(2.14108, 52.2441, 99.9347) +material = ExtResource("3_h2yge") [node name="CSGBox3D14" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.534, 10.8458, 27.1386) use_collision = true size = Vector3(1.10791, 1.71436, 25.7228) +material = ExtResource("3_h2yge") [node name="CSGBox3D15" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9058, 10.795, 47.0594) use_collision = true size = Vector3(76.2239, 21.6211, 2.62695) +material = ExtResource("3_h2yge") [node name="CSGBox3D16" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.8856, 21.8279, -5.20281) use_collision = true size = Vector3(74.1406, 1, 25.6403) +material = ExtResource("3_h2yge") [node name="CSGBox3D17" type="CSGBox3D" parent="Greybox"] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -22.0327, 10.786, -16.8929) use_collision = true size = Vector3(2.03296, 2.20193, 10.1753) +material = ExtResource("3_h2yge") [node name="CSGBox3D18" type="CSGBox3D" parent="Greybox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.534, 10.9583, -4.19618) use_collision = true size = Vector3(1.10791, 1.71436, 23.4043) - -[node name="Player" parent="." instance=ExtResource("1_ig7tw")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.2019, 12.6118, 13.3006) - -[node name="DebugLayer" type="CanvasLayer" parent="."] - -[node name="GuideDebugger" parent="DebugLayer" instance=ExtResource("2_0xm2m")] -visible = false +material = ExtResource("3_h2yge") diff --git a/player_controller/Assets/Textures/GridTexture/Dark/texture_01.png.import b/player_controller/Assets/Textures/GridTexture/Dark/texture_01.png.import index 97b37c2..824bacb 100644 --- a/player_controller/Assets/Textures/GridTexture/Dark/texture_01.png.import +++ b/player_controller/Assets/Textures/GridTexture/Dark/texture_01.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://boasm0g587eov" +path.s3tc="res://.godot/imported/texture_01.png-9deee4bf2e81814eb5c9325f2657f8c8.s3tc.ctex" path.etc2="res://.godot/imported/texture_01.png-9deee4bf2e81814eb5c9325f2657f8c8.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/GridTexture/Dark/texture_01.png" -dest_files=["res://.godot/imported/texture_01.png-9deee4bf2e81814eb5c9325f2657f8c8.etc2.ctex"] +dest_files=["res://.godot/imported/texture_01.png-9deee4bf2e81814eb5c9325f2657f8c8.s3tc.ctex", "res://.godot/imported/texture_01.png-9deee4bf2e81814eb5c9325f2657f8c8.etc2.ctex"] [params] diff --git a/player_controller/Assets/Textures/GridTexture/Green/texture_01.png.import b/player_controller/Assets/Textures/GridTexture/Green/texture_01.png.import index bb1f6a3..c0756a2 100644 --- a/player_controller/Assets/Textures/GridTexture/Green/texture_01.png.import +++ b/player_controller/Assets/Textures/GridTexture/Green/texture_01.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://3e1klega6uye" +path.s3tc="res://.godot/imported/texture_01.png-ae5afc2ae737d1e792f0b8a0a5af4d3f.s3tc.ctex" path.etc2="res://.godot/imported/texture_01.png-ae5afc2ae737d1e792f0b8a0a5af4d3f.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/GridTexture/Green/texture_01.png" -dest_files=["res://.godot/imported/texture_01.png-ae5afc2ae737d1e792f0b8a0a5af4d3f.etc2.ctex"] +dest_files=["res://.godot/imported/texture_01.png-ae5afc2ae737d1e792f0b8a0a5af4d3f.s3tc.ctex", "res://.godot/imported/texture_01.png-ae5afc2ae737d1e792f0b8a0a5af4d3f.etc2.ctex"] [params] diff --git a/player_controller/Assets/Textures/GridTexture/Light/texture_01.png.import b/player_controller/Assets/Textures/GridTexture/Light/texture_01.png.import index cad96a2..681440f 100644 --- a/player_controller/Assets/Textures/GridTexture/Light/texture_01.png.import +++ b/player_controller/Assets/Textures/GridTexture/Light/texture_01.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://0t6ie0fkv2op" +path.s3tc="res://.godot/imported/texture_01.png-1dcf4b27bd12b1fd18e6c870b30bb902.s3tc.ctex" path.etc2="res://.godot/imported/texture_01.png-1dcf4b27bd12b1fd18e6c870b30bb902.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/GridTexture/Light/texture_01.png" -dest_files=["res://.godot/imported/texture_01.png-1dcf4b27bd12b1fd18e6c870b30bb902.etc2.ctex"] +dest_files=["res://.godot/imported/texture_01.png-1dcf4b27bd12b1fd18e6c870b30bb902.s3tc.ctex", "res://.godot/imported/texture_01.png-1dcf4b27bd12b1fd18e6c870b30bb902.etc2.ctex"] [params] diff --git a/player_controller/Assets/Textures/GridTexture/Orange/texture_01.png.import b/player_controller/Assets/Textures/GridTexture/Orange/texture_01.png.import index 5ac5649..832a0d2 100644 --- a/player_controller/Assets/Textures/GridTexture/Orange/texture_01.png.import +++ b/player_controller/Assets/Textures/GridTexture/Orange/texture_01.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://t10lfkxrg7ay" +path.s3tc="res://.godot/imported/texture_01.png-2d26b48d2dec4e4e9eea4b1c047417c0.s3tc.ctex" path.etc2="res://.godot/imported/texture_01.png-2d26b48d2dec4e4e9eea4b1c047417c0.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/GridTexture/Orange/texture_01.png" -dest_files=["res://.godot/imported/texture_01.png-2d26b48d2dec4e4e9eea4b1c047417c0.etc2.ctex"] +dest_files=["res://.godot/imported/texture_01.png-2d26b48d2dec4e4e9eea4b1c047417c0.s3tc.ctex", "res://.godot/imported/texture_01.png-2d26b48d2dec4e4e9eea4b1c047417c0.etc2.ctex"] [params] diff --git a/player_controller/Assets/Textures/GridTexture/Red/texture_01.png.import b/player_controller/Assets/Textures/GridTexture/Red/texture_01.png.import index bf717ef..3d26250 100644 --- a/player_controller/Assets/Textures/GridTexture/Red/texture_01.png.import +++ b/player_controller/Assets/Textures/GridTexture/Red/texture_01.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://dgix86l87u86s" +path.s3tc="res://.godot/imported/texture_01.png-a7949be0e945f82b88e838fe48a6f350.s3tc.ctex" path.etc2="res://.godot/imported/texture_01.png-a7949be0e945f82b88e838fe48a6f350.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/GridTexture/Red/texture_01.png" -dest_files=["res://.godot/imported/texture_01.png-a7949be0e945f82b88e838fe48a6f350.etc2.ctex"] +dest_files=["res://.godot/imported/texture_01.png-a7949be0e945f82b88e838fe48a6f350.s3tc.ctex", "res://.godot/imported/texture_01.png-a7949be0e945f82b88e838fe48a6f350.etc2.ctex"] [params] diff --git a/player_controller/Assets/Textures/PerlinNoise/Gabor 1 - 512x512.png.import b/player_controller/Assets/Textures/PerlinNoise/Gabor 1 - 512x512.png.import index 794c94c..9da5157 100644 --- a/player_controller/Assets/Textures/PerlinNoise/Gabor 1 - 512x512.png.import +++ b/player_controller/Assets/Textures/PerlinNoise/Gabor 1 - 512x512.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://woq2hudxhckr" +path.s3tc="res://.godot/imported/Gabor 1 - 512x512.png-35241d8f4670c338b8c89a271f5b5891.s3tc.ctex" path.etc2="res://.godot/imported/Gabor 1 - 512x512.png-35241d8f4670c338b8c89a271f5b5891.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Assets/Textures/PerlinNoise/Gabor 1 - 512x512.png" -dest_files=["res://.godot/imported/Gabor 1 - 512x512.png-35241d8f4670c338b8c89a271f5b5891.etc2.ctex"] +dest_files=["res://.godot/imported/Gabor 1 - 512x512.png-35241d8f4670c338b8c89a271f5b5891.s3tc.ctex", "res://.godot/imported/Gabor 1 - 512x512.png-35241d8f4670c338b8c89a271f5b5891.etc2.ctex"] [params] diff --git a/player_controller/Examples/MovementTestbed/Hills/kenney-green-checkerboar-cc0.png.import b/player_controller/Examples/MovementTestbed/Hills/kenney-green-checkerboar-cc0.png.import index 0baa577..e9c1f25 100644 --- a/player_controller/Examples/MovementTestbed/Hills/kenney-green-checkerboar-cc0.png.import +++ b/player_controller/Examples/MovementTestbed/Hills/kenney-green-checkerboar-cc0.png.import @@ -3,16 +3,17 @@ importer="texture" type="CompressedTexture2D" uid="uid://lp2pt8mtj7ty" +path.s3tc="res://.godot/imported/kenney-green-checkerboar-cc0.png-2ce8609a39a655125c8e037014f6f2db.s3tc.ctex" path.etc2="res://.godot/imported/kenney-green-checkerboar-cc0.png-2ce8609a39a655125c8e037014f6f2db.etc2.ctex" metadata={ -"imported_formats": ["etc2_astc"], +"imported_formats": ["s3tc_bptc", "etc2_astc"], "vram_texture": true } [deps] source_file="res://player_controller/Examples/MovementTestbed/Hills/kenney-green-checkerboar-cc0.png" -dest_files=["res://.godot/imported/kenney-green-checkerboar-cc0.png-2ce8609a39a655125c8e037014f6f2db.etc2.ctex"] +dest_files=["res://.godot/imported/kenney-green-checkerboar-cc0.png-2ce8609a39a655125c8e037014f6f2db.s3tc.ctex", "res://.godot/imported/kenney-green-checkerboar-cc0.png-2ce8609a39a655125c8e037014f6f2db.etc2.ctex"] [params] diff --git a/player_controller/PlayerController.tscn b/player_controller/PlayerController.tscn index 07ac3e4..b3c64f7 100644 --- a/player_controller/PlayerController.tscn +++ b/player_controller/PlayerController.tscn @@ -141,7 +141,7 @@ script = ExtResource("27_34snm") [node name="ToAiming" type="Node" parent="StateChart/Root/WeaponInHand"] script = ExtResource("28_n7qhm") to = NodePath("../../Aiming") -event = &"aim_triggered" +event = &"aim_pressed" delay_in_seconds = "0.0" [node name="Aiming" type="Node" parent="StateChart/Root"] @@ -162,7 +162,7 @@ delay_in_seconds = "0.0" [node name="ToWeaponThrown" type="Node" parent="StateChart/Root/Aiming"] script = ExtResource("28_n7qhm") to = NodePath("../../WeaponThrown") -event = &"hit_triggered" +event = &"hit_pressed" delay_in_seconds = "0.0" [node name="Dashing" type="Node" parent="StateChart/Root"] @@ -171,7 +171,7 @@ script = ExtResource("27_34snm") [node name="ToWeaponInHand" type="Node" parent="StateChart/Root/Dashing"] script = ExtResource("28_n7qhm") to = NodePath("../../WeaponInHand") -event = &"dash_finished" +event = &"dash_ended" delay_in_seconds = "0.0" [node name="WeaponThrown" type="Node" parent="StateChart/Root"] @@ -180,7 +180,7 @@ script = ExtResource("27_34snm") [node name="ToDashing" type="Node" parent="StateChart/Root/WeaponThrown"] script = ExtResource("28_n7qhm") to = NodePath("../../Dashing") -event = &"aim_started" +event = &"aim_pressed" delay_in_seconds = "0.0" [connection signal="input_aim_canceled" from="InputController" to="." method="OnInputAimCanceled"] diff --git a/player_controller/Scripts/PlayerController.cs b/player_controller/Scripts/PlayerController.cs index e595b0f..5c760d9 100644 --- a/player_controller/Scripts/PlayerController.cs +++ b/player_controller/Scripts/PlayerController.cs @@ -110,6 +110,7 @@ public partial class PlayerController : CharacterBody3D DashSystem = GetNode("DashSystem"); DashSystem.Init(HeadSystem, camera, TweenQueueSystem); + DashSystem.DashEnded += OnDashEnded; HealthSystem = GetNode("HealthSystem"); @@ -143,7 +144,7 @@ public partial class PlayerController : CharacterBody3D public void OnInputAimPressed() { - PlayerState.SendEvent("aim_started"); + PlayerState.SendEvent("aim_pressed"); if (_dashCanceled) return; @@ -152,19 +153,21 @@ public partial class PlayerController : CharacterBody3D } public void OnInputAimReleased() { + PlayerState.SendEvent("aim_released"); if (!_dashCanceled) DashSystem.Dash(); _dashCanceled = false; } public void OnInputAimCanceled() { + PlayerState.SendEvent("aim_canceled"); _dashCanceled = true; DashSystem.CancelDash(); } public void OnInputHitPressed() { - GD.Print("OnInputHitPressed"); + PlayerState.SendEvent("hit_pressed"); } public void OnInputJumpPressed() @@ -176,6 +179,11 @@ public partial class PlayerController : CharacterBody3D MoveSystem.Jump(IsOnFloor()); } + public void OnDashEnded() + { + PlayerState.SendEvent("dash_ended"); + } + public override void _PhysicsProcess(double delta) { TweenQueueSystem.ProcessTweens(); diff --git a/systems/dash/DashSystem.cs b/systems/dash/DashSystem.cs index 7b33c75..88abcc1 100644 --- a/systems/dash/DashSystem.cs +++ b/systems/dash/DashSystem.cs @@ -21,6 +21,11 @@ public partial class DashSystem: Node3D private DashResolve _dashResolve; + [Signal] + public delegate void DashStartedEventHandler(); + [Signal] + public delegate void DashEndedEventHandler(); + public void Init(Node3D head, Camera3D camera, TweenQueueSystem tweenQueueSystem) { _dashCast3D = GetNode("DashCast3D"); @@ -82,13 +87,21 @@ public partial class DashSystem: Node3D _dashTarget.SetVisible(false); } + public void DashTweenEnded() + { + EmitSignal(SignalName.DashEnded); + } + public void Dash() { + EmitSignal(SignalName.DashStarted); _dashTarget.SetVisible(false); - _tweenQueueSystem.QueueTween(_dashResolve.DashLocation, 0.1f); + var dashTweenInputs = new TweenQueueSystem.TweenInputs(_dashResolve.DashLocation, 0.1f); + var dashTween = _tweenQueueSystem.TweenToLocation(dashTweenInputs); + dashTween.Finished += DashTweenEnded; if (_dashResolve.EndWithMantle) { - _tweenQueueSystem.QueueTween(_dashResolve.MantleLocation, 0.1f); + _tweenQueueSystem.QueueTween(_dashResolve.MantleLocation, 0.2f); } } } diff --git a/systems/tween_queue/TweenQueueSystem.cs b/systems/tween_queue/TweenQueueSystem.cs index d2b697f..dc611b6 100644 --- a/systems/tween_queue/TweenQueueSystem.cs +++ b/systems/tween_queue/TweenQueueSystem.cs @@ -10,10 +10,12 @@ public partial class TweenQueueSystem : Node3D private Queue _tweenInputs = new Queue(); private Node3D _tweenObject; private bool _isTweening = false; + private Callable _tweenEndedCallback; public void Init(Node3D tweenObject) { _tweenObject = tweenObject; + _tweenEndedCallback = new Callable(this, MethodName.EndTween); } public void EndTween() @@ -21,18 +23,15 @@ public partial class TweenQueueSystem : Node3D _isTweening = false; } - private void TweenToLocation(TweenInputs inputs) + public Tween TweenToLocation(TweenInputs inputs) { var (location, duration) = inputs; var tween = GetTree().CreateTween(); - var callback = new Callable(this, MethodName.EndTween); - tween.TweenProperty(_tweenObject, "position", location, duration); - tween.TweenCallback(callback); - + tween.TweenCallback(_tweenEndedCallback); _isTweening = true; - tween.Play(); + return tween; } public void QueueTween(TweenInputs inputs)