feat(movement): add movement state machine with air/ground/wallrun/slide/dash/ground states

- MovementStateMachine: core state machine base
- MovementParams: export-rich tunable resource
- StateGround/StateAir: grounded & aeriel locomotion with coyote, buffered jump, bunny hop
- StateWallRun / StateWallCling: wall-based traversal with wall-jump off
- StateSlide: sprint-parallel slide with friction fallout
- StateDash: burst dash with momentum brake
- PlayerMovementController: entry point wiring to CharacterBody3D
- input_map.cfg: full action map reference file
- characters/player/player_base.tscn: placeholder scene
- movement/tests/test_fsm_runner.gd: 9-state unit test runner

Closes #1
This commit is contained in:
2026-06-02 22:36:00 -04:00
parent a4863a7b08
commit 202f67fa32
14 changed files with 993 additions and 6 deletions
+15
View File
@@ -0,0 +1,15 @@
[gd_scene load_steps=2 format=3 uid="uid://player_base"]
[ext_resource type="Script" path="res://movement/player_movement_controller.gd" id="1"]
[node name="PlayerBase" type="CharacterBody3D"]
[node name="PlayerMovementController" type="Node" parent="."]
script = ExtResource("1")
[node name="MovementStateMachine" type="Node" parent="PlayerMovementController"]
[node name="Camera3D" type="Camera3D" parent="PlayerMovementController"]
[node name="CapsuleShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("")