fix: empty-path re-entrancy, retry_count reset, := to = for Variant

This commit is contained in:
2026-07-03 18:51:13 +02:00
parent c6033b63fb
commit 41bfc8d90a
9 changed files with 2449 additions and 4 deletions
+20 -2
View File
@@ -88,10 +88,19 @@ func update_npc_targets() -> void:
visual.set_target_position(resource_pos)
continue
var target = get_target_for_task(npc.current_task)
var task = npc.current_task
if task == "wander":
var offset = Vector3(randf_range(-6.0, 6.0), 0.0, randf_range(-6.0, 6.0))
visual.set_target_position(visual.global_position + offset)
continue
if task in ["gather_food", "gather_wood"]:
continue
var target = get_target_for_task(task)
if target == null:
debug_log("No target for task: %s" % npc.current_task)
debug_log("No target for task: %s" % task)
continue
visual.set_target_position(target.global_position)
@@ -136,6 +145,7 @@ func _try_get_resource_target(npc: SimNPC, task: String) -> Variant:
return null
npc.target_id = node.node_id
npc.retry_count = 0
debug_log("%s reserved %s for %s" % [npc.npc_name, node.node_id, task])
return node.interaction_point.global_position
@@ -152,6 +162,14 @@ func _on_npc_task_changed(npc: SimNPC, old_task: String, new_task: String) -> vo
visual.set_target_position(resource_pos)
return
if new_task == "wander":
var offset := Vector3(randf_range(-6.0, 6.0), 0.0, randf_range(-6.0, 6.0))
visual.set_target_position(visual.global_position + offset)
return
if new_task in ["gather_food", "gather_wood"]:
return
var target := get_target_for_task(new_task)
if target != null: