extends RefCounted static func print_tick(npc: SimNPC, previous_state: StringName) -> void: print( npc.npc_name, " | ", npc.profession, " | task: ", npc.current_task, " | state: ", npc.task_state, " | progress: ", npc.task_progress, "/", npc.task_duration, " | complete: ", npc.task_complete, " | hunger: ", round(npc.hunger), " | energy: ", round(npc.energy), " | starving: ", npc.is_starving, " | starvation_ticks: ", npc.starvation_ticks, " | dead: ", npc.is_dead ) if previous_state != npc.task_state: print( "[SimulationManager] State changed: ", npc.npc_name, " ", previous_state, " -> ", npc.task_state ) static func print_unavailable_resource(npc: SimNPC) -> void: print( "[SimulationManager] ", npc.npc_name, " arrived but target ", npc.target_id, " is unavailable, replanning" ) static func print_unavailable_animal(npc: SimNPC) -> void: print( "[SimulationManager] ", npc.npc_name, " arrived but animal ", npc.target_id, " no longer needs feeding, replanning" ) static func print_started_work(npc: SimNPC) -> void: print( "[SimulationManager] ", npc.npc_name, " arrived and started working on: ", npc.current_task ) static func print_navigation_failure(npc: SimNPC, failed_task: StringName) -> void: print( "[SimulationManager] ", npc.npc_name, " could not navigate for ", failed_task, " and is trying a wander target" )