fix: empty-path re-entrancy, retry_count reset, := to = for Variant
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user