feat: add npc simulation, instancing and visual scene

This commit is contained in:
Rijad Zuzo
2026-06-18 11:12:08 +02:00
parent a504ed8112
commit a3ad8d8a07
14 changed files with 94 additions and 8 deletions
+34
View File
@@ -0,0 +1,34 @@
extends Node
@export var npc_visual_scene: PackedScene
@export var simulation_manager: Node
@export var active_npcs_parent: Node3D
var active_npc_visuals := {} # sim_id -> NPCVisual
func _ready() -> void:
call_deferred("spawn_initial_npcs")
func spawn_initial_npcs() -> void:
if simulation_manager == null:
push_error("WorldViewManager: simulation_manager is missing")
return
if npc_visual_scene == null:
push_error("WorldViewManager: npc_visual_scene is missing")
return
for npc in simulation_manager.npcs:
spawn_npc_visual(npc)
func spawn_npc_visual(npc: SimNPC) -> void:
if active_npc_visuals.has(npc.id):
return
var visual := npc_visual_scene.instantiate()
active_npcs_parent.add_child(visual)
visual.global_position = npc.position
visual.setup_from_sim(npc)
active_npc_visuals[npc.id] = visual