refactor: separate action system responsibilities

This commit is contained in:
2026-07-05 14:17:45 +02:00
parent 81df7b5939
commit 4673f0698d
18 changed files with 458 additions and 383 deletions
+11 -7
View File
@@ -87,26 +87,30 @@ func _run() -> void:
"Jajce navigation path should exist from %s to %s" % [origin, destination]
)
var adapter := ActiveWorldAdapter.new()
root.add_child(adapter)
var manager: Node = load("res://simulation/SimulationManager.gd").new()
manager.debug_logs = false
manager.active_world_adapter = adapter
root.add_child(manager)
manager.set_process(false)
await process_frame
var selected: ResourceNode = manager.acquire_resource_target(
SimulationIds.ACTION_GATHER_FOOD,
777,
Vector3.ZERO
var npc: SimNPC = manager.npcs[0]
npc.set_task(SimulationIds.ACTION_GATHER_FOOD)
_check(
manager.resolve_npc_target(npc.id, Vector3.ZERO),
"Target resolver should find Jajce resources without a parent path"
)
_check(selected != null, "Target discovery should find Jajce resources without a parent path")
var selected := ResourceNode.get_by_id(npc.target_id)
if selected != null:
var selected_state: ResourceStateRecord = manager.get_resource_state(
selected.node_id
)
_check(
selected_state.get_reserved_by() == 777,
selected_state.get_reserved_by() == npc.id,
"Selected Jajce resource should be authoritatively reserved"
)
manager.release_resource(selected.node_id, 777)
manager.release_resource(selected.node_id, npc.id)
if failures.is_empty():
print("[TEST] Jajce scaffold passed: Terrain3D, stable IDs, 24 navigation routes")