Files
gamedev-the-steward/world/world_view_manager.gd
T

35 lines
831 B
GDScript

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