Commit Graph
16 Commits
Author SHA1 Message Date
Hermes 365264e819 fix: spawn capsule floor-aligned in test level 2026-06-03 17:28:46 -04:00
Hermes d86eb53065 fix: place floor under player and clean debug spam 2026-06-03 17:24:18 -04:00
Hermes e5e7a7284e fix: bootstrap process ticks after runtime script attach 2026-06-03 17:14:09 -04:00
Hermes 6c57f70fb4 fix: clean state_ground and ensure duck-type state machine bootstrap 2026-06-03 16:58:48 -04:00
Hermes 9c39d79696 fix: ensure player._ready() runs before MovementStateMachine._ready() 2026-06-03 16:56:28 -04:00
Hermes 6d2f31d962 fix: rewrite TestLevelBuilder with parse-safe InputMap bootstrapping 2026-06-03 16:54:21 -04:00
Hermes f47fc4827a test: self-bootstrap InputMap actions in TestLevelBuilder 2026-06-03 16:53:04 -04:00
Hermes ea7169048f fix: manually bootstrap state machine after runtime script attachment 2026-06-03 16:49:06 -04:00
Hermes 693145fd69 refactor: remove print_debug and switch to preload for movement scripts 2026-06-03 16:42:51 -04:00
Hermes c0a90df690 fix: wire movement controller before state machine; harden machine lookup 2026-06-03 15:14:10 -04:00
Hermes ceeff6a1ab fix: add smoke verifier, camera to TestLevel, fix player collision shape 2026-06-03 15:06:26 -04:00
Hermes 1feefbf811 test: load MovementStateMachine + state scripts via set_script() at runtime
Root cause: builder created plain Node instances for the state machine
and states, so _machine.player = self in PlayerMovementController
crashed with 'Invalid assignment ... on base object of type Node'.
Now each node gets its real script attached before _ready() runs.
2026-06-03 00:36:05 -04:00
Hermes bb6cac9d7a test: full builder rewrite with player state machine, camera, and manual _ready()
- _build_player: creates Player (CharacterBody3D) with capsule,
  MovementStateMachine + 6 state children, attaches movement script
- Calls player._ready() manually after set_script (GDScript
  set_script does not auto-trigger _ready)
- Camera parented under Player so it follows movement
- Restores _build_camera() which was accidentally dropped
2026-06-03 00:28:56 -04:00
Hermes 559c4bde8f fix(debug): multi-line string literal in test_level_builder.gd 2026-06-03 00:16:41 -04:00
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 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