Implement Phase 8: Rig Relocation and Component Modularization

- Moved the rig scene from `res://master_rig.tscn` to `res://scenes/stickman_rig.tscn`, preserving its UID.
- Split the `StickmanRig` controller into three components: `StickmanLocomotion`, `StickmanRagdoll`, and `StickmanActionRunner`.
- Updated the architecture to ensure `StickmanRig` acts as the public facade for the new components.
- Created a new test suite `test_phase8_rig_modularization.gd` to verify the integrity of the relocated rig and its components.
- Added checks for scene loading, component resolution, action queue delegation, and state authority.
This commit is contained in:
2026-09-18 14:11:53 -04:00
parent 9a22322dba
commit db4ff8d939
29 changed files with 2820 additions and 2747 deletions
+2 -2
View File
@@ -279,8 +279,8 @@ func _test_bug4_stage_grid_no_prehighlight() -> void:
% stage._spawner.get_selected_stickman_path())
# Real scan has 3 stickmen -> no single-item auto-select skip.
var grid: GridContainer = stage._selector._grid
_check(grid.get_child_count() == 3,
"real scan populates 3 stickman cells (got %d)" % grid.get_child_count())
_check(grid.get_child_count() == 4,
"real scan populates 4 stickman cells (got %d)" % grid.get_child_count())
_check(not stage._selector.has_method("_is_selected"),
"stage selector exposes no pre-highlight API")
_check(not _any_cell_has_stylebox_override(stage._selector),