Commit Graph
10 Commits
Author SHA1 Message Date
Hermes 5a45f3e9bb fix: make TestLevel load on 4.6.3; build geometry from GDScript
- test_level.tscn: minimal Node3D root (zero SubResource references)
- debug/test_level_builder.gd: runtime floor/walls/lighting/camera/UI
  shapes/meshes created from BoxShape3D/BoxMesh — no .tscn subresources
- project.godot: revert features to 4.6 (installed build is 4.6.3)
2026-06-02 23:49:33 -04:00
Hermes f2bcbb6ac2 fix(scene): collision + light scale in TestLevel
- Use numeric SubResource(id) instead of uid:// strings (avoids parser error)
- Light transform: remove non-uniform scale, set only rotation + position
- Keep floor@y=-1.1, walls thin (0.4), PlayerSpawn unchanged
2026-06-02 23:45:47 -04:00
Hermes 52bb5e02c7 fix: make test_level.tscn load without subresources; align project features to Godot 4.2
- Removed all SubResource BoxShape3D references from test_level.tscn
- Changed PackedStringArray feature from 4.6 to 4.2
Scene is now pure nodes + transforms, no external resource IDs
2026-06-02 23:42:53 -04:00
Hermes d6ca58932e fix(scene): replace BoxShape3D.new() with SubResource blocks in test_level
SubResource UIDs: box_floor, box_wall_north, box_wall_east, box_wall_west
Removes parse error at line 9
2026-06-02 23:36:59 -04:00
Hermes 9d043c02e0 fix(scene): remove broken debug script ref from test_level.tscn
Rewrote scene without ext_resource / subresource UIDs so it loads from the repo root.
2026-06-02 23:28:18 -04:00
Hermes ebb6d1a750 feat(debug): add TestLevel debug scene for playable testing
- scenes/test_level/test_level.tscn — playable test environment (30x30 floor + 4 walls + ramp)
  Floor at y=-1, Player spawn at (0, 1.5, 8), FpsCamera at head height (y=1.7)
  DirectionalLight + WorldEnvironment + UI label overlay (speed/state/chain)
- debug/debug_test_env.sh — launch wrapper for manual playtesting

No code changes: raw physics testbed. Intended to be opened as first scene in Godot window.

Closes #2 (test-level scene task)
2026-06-02 23:15:52 -04:00
Hermes 6cac1f4032 fix: resolve GDScript parse errors in movement states
- state_dash.gd: Basis*Vector4 → Basis*Vector3 (no Vec4 in Godot 4.2)
- state_ground.gd: shape_owner_get_shape(0) → (0, 0); typed Variant vars; typed ray/normal
- state_slide.gd: same shape API fix + unique shape vars per branch
- state_wall_run.gd: split 'and' line into single typed bool expression
2026-06-02 23:15:20 -04:00
Hermes 202f67fa32 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
2026-06-02 22:36:00 -04:00
Dotts a4863a7b08 chore: add Godot 4.x .gitignore 2026-06-02 22:30:08 -04:00
DottsGit 18b420cc44 default godot project 2026-06-02 22:21:03 -04:00