feat: integrate jajce world into runtime

This commit is contained in:
2026-07-05 18:17:59 +02:00
parent 40014411fb
commit 5851c0362a
4 changed files with 49 additions and 132 deletions
@@ -15,7 +15,34 @@ func _run() -> void:
simulation_manager.set_process(false)
_check(simulation_manager.npcs.size() == 3, "Baseline should create three NPCs")
_check(main_scene.get_node("ResourceNodes").get_child_count() == 4, "Baseline should contain four ResourceNodes")
_check(
main_scene.has_node("JajceWorld/TerrainRoot/Terrain3D"),
"Playable runtime should instance the Jajce Terrain3D world"
)
var terrain: Terrain3D = main_scene.get_node(
"JajceWorld/TerrainRoot/Terrain3D"
)
_check(
terrain.get_camera() == main_scene.get_node("CameraRig/Camera3D"),
"Runtime Terrain3D should bind to the gameplay camera"
)
_check(
not main_scene.has_node("World")
and not main_scene.has_node("ResourceNodes")
and not main_scene.has_node("ActivityMarkers"),
"Runtime should not retain duplicate flat-world objects"
)
var resource_root := main_scene.get_node(
"JajceWorld/WorldObjects/ResourceNodes"
)
_check(
resource_root.get_child_count() == 4,
"Runtime should contain four Jajce ResourceNodes"
)
_check(
simulation_manager.resource_states.size() == 4,
"Simulation authority should bind all four Jajce resources"
)
var navigation_map: RID = main_scene.get_world_3d().navigation_map
await _wait_for_navigation_map(navigation_map)
@@ -28,14 +55,14 @@ func _run() -> void:
]
var destinations: Array[Vector3] = []
for marker_path in [
"ActivityMarkers/PantryMarker",
"ActivityMarkers/GuardZone",
"ActivityMarkers/StudyZone",
"ActivityMarkers/RestZone"
"JajceWorld/LegacyActivityMarkers/PantryMarker",
"JajceWorld/LegacyActivityMarkers/GuardZone",
"JajceWorld/LegacyActivityMarkers/StudyZone",
"JajceWorld/LegacyActivityMarkers/RestZone"
]:
destinations.append(main_scene.get_node(marker_path).global_position)
for resource in main_scene.get_node("ResourceNodes").get_children():
for resource in resource_root.get_children():
destinations.append((resource as ResourceNode).interaction_point.global_position)
for origin in fixed_origins:
@@ -79,7 +106,7 @@ func _run() -> void:
_check(starving.is_dead, "Starvation threshold should still kill an NPC")
if failures.is_empty():
print("[TEST] Flat-map baseline passed: 3 NPCs, 4 resources, 24 navigation routes")
print("[TEST] Jajce runtime passed: 3 NPCs, 4 resources, 24 navigation routes")
quit(0)
return
+6 -2
View File
@@ -14,8 +14,12 @@ func _run() -> void:
var simulation_manager := main_scene.get_node("SimulationManager")
var player := main_scene.get_node("Player")
var bush := main_scene.get_node("ResourceNodes/BerryBush_01") as ResourceNode
var tree := main_scene.get_node("ResourceNodes/Tree_01") as ResourceNode
var bush := main_scene.get_node(
"JajceWorld/WorldObjects/ResourceNodes/BerryBush_01"
) as ResourceNode
var tree := main_scene.get_node(
"JajceWorld/WorldObjects/ResourceNodes/Tree_01"
) as ResourceNode
simulation_manager.set_process(false)
var bush_state: ResourceStateRecord = simulation_manager.get_resource_state(