docs: mark action separation phase complete

This commit is contained in:
2026-07-05 14:17:57 +02:00
parent 4673f0698d
commit 4f9dc842fd
8 changed files with 127 additions and 40 deletions
+18 -17
View File
@@ -409,18 +409,14 @@ The UI subscribes to village changes and formats aggregate village state.
```text
SimulationManager tick
|
v
SimNPC updates needs and chooses/advances a task
|
v
npc_task_changed signal
|
v
WorldViewManager resolves target:
gather_food/wood -> nearest available ResourceNode (interaction point)
wander -> random offset from current position
other -> task-zone marker (guard, study, rest, eat)
-> ActionExecutionSystem advances needs/work
-> ActionSelectionSystem chooses an action for idle NPCs
-> npc_target_requested
-> WorldViewManager supplies the active visual position
-> ActionTargetResolver consumes ActiveWorldAdapter facts
-> SimulationManager stores/reserves the target
-> npc_travel_requested
-> WorldViewManager commands visual travel
|
v
NpcVisual navigates through the active world
@@ -465,9 +461,11 @@ NpcVisual navigates through the active world
│ ├── SimVillage.gd
│ ├── SimulationClock.gd
│ ├── SimulationManager.gd
│ ├── actions/ Selection, execution, and target resolution
│ ├── definitions/ Stable IDs and custom definition resources
│ └── state/ Versioned simulation-state records
├── tests/
│ ├── action_system_boundaries_test.gd
│ ├── deterministic_simulation_test.gd
│ ├── flat_map_baseline_test.gd
│ ├── jajce_world_scaffold_test.gd
@@ -487,6 +485,7 @@ NpcVisual navigates through the active world
│ │ ├── ResourceNode.gd
│ │ ├── ResourceNode.gd.uid
│ │ └── ResourceNode.tscn
│ ├── active_world_adapter.gd
│ ├── world_view_manager.gd
│ └── ui/ui.gd
├── main.tscn
@@ -517,8 +516,9 @@ These are expected prototype constraints, not necessarily isolated bugs:
- NPC reasoning is logged but not presented through an in-game inspector.
- Active navigation is used as if all agents are local; no simulation LOD exists.
- There is no spatial query/index layer for large populations.
- Simulation, orchestration, and player-facing mutation APIs are concentrated
in `SimulationManager`.
- SimulationManager still orchestrates multiple systems and player-facing
mutation APIs, but selection, execution, target resolution, and active-world
queries now have focused collaborators.
- Path failure and interruption emit a `navigation_failed` signal and send the NPC to wander; this is functional but not yet polished.
- Terrain3D is enabled but not yet used by the main game scene.
- Combat, companions, factions, politics, trade, rumours, quests, persistence,
@@ -719,7 +719,7 @@ Food and wood migration and the deliberately minimal `JajceWorld` scaffold,
greybox, navigation spike, and stable-ID placement proof are complete. Do not
proceed directly from that proof into open-ended beauty production.
The architecture gate is now the active milestone. Its first four slices are
The architecture gate is now the active milestone. Its first five slices are
complete:
- explicit fixed-step simulation clock;
@@ -730,11 +730,12 @@ complete:
- simulation-owned resource amount/reservation state with ResourceNode
presentation binding and unload/rebind coverage;
- stable StringName action/profession IDs plus validated custom definition
resources used by simulation, targeting, generation, and persistence.
resources used by simulation, targeting, generation, and persistence;
- separate selection, execution, target resolution, active-world query, and
visual travel responsibilities.
The remaining gate work is:
- separated action selection, execution, target resolution, and visual travel;
- explicit synchronization of active NPC position.
The coherent visual slice can then aim for: