feat: add nearby villager field notes

This commit is contained in:
Rijad Zuzo
2026-08-03 12:47:54 +02:00
parent ead75fca68
commit 2082773d31
14 changed files with 978 additions and 23 deletions
+20
View File
@@ -130,6 +130,26 @@ func reload_npc_visual(npc_id: int) -> bool:
return false
func find_nearest_active_npc_id(origin: Vector3, max_distance: float) -> int:
if not origin.is_finite() or not is_finite(max_distance) or max_distance < 0.0:
return -1
var nearest_id := -1
var nearest_distance_squared := max_distance * max_distance
var sorted_ids: Array = active_npc_visuals.keys()
sorted_ids.sort()
for npc_id in sorted_ids:
var visual := active_npc_visuals[npc_id] as Node3D
if visual == null or not is_instance_valid(visual) or bool(visual.get("is_dead_visual")):
continue
var distance_squared := origin.distance_squared_to(visual.global_position)
if distance_squared > nearest_distance_squared:
continue
if nearest_id < 0 or distance_squared < nearest_distance_squared:
nearest_id = int(npc_id)
nearest_distance_squared = distance_squared
return nearest_id
func _on_npc_target_requested(npc: SimNPC) -> void:
var visual = active_npc_visuals.get(npc.id) as Node3D
if visual == null: