4 @onready var _skin := $skin
5 var _head_track_arr: Array[Node3D]= []
8 func _pick_head_track_target() -> void:
9 if _head_track_arr.is_empty():
10 _skin.set_head_target(null)
11 _skin.set_eyes_target(null)
13 var target: Node3D = _head_track_arr.front()
14 _skin.set_head_target(target)
15 _skin.set_eyes_target(target)
18 func _on_head_turn_area_entered(area: Area3D) -> void:
19 for node in area.get_children().filter(func(c: Node3D): return c.is_in_group("npc-headTrack")):
20 var i = _head_track_arr.find(node)
22 _head_track_arr.append(node)
23 _pick_head_track_target()
26 func _on_head_turn_area_exited(area: Area3D) -> void:
27 for node in area.get_children().filter(func(c: Node3D): return c.is_in_group("npc-headTrack")):
28 var i = _head_track_arr.find(node)
30 _head_track_arr.remove_at(i)
31 _pick_head_track_target()