]> Untitled Git - william-skin.git/blob - test/npc.gd
Added export config options for web, osx, windows, linux
[william-skin.git] / test / npc.gd
1 extends Node3D
2
3
4 @onready var _skin := $skin
5 var _head_track_arr: Array[Node3D]= []
6
7
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)
12         else:
13                 var target: Node3D = _head_track_arr.front()
14                 _skin.set_head_target(target)
15                 _skin.set_eyes_target(target)
16
17
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)
21                 if i < 0:
22                         _head_track_arr.append(node)
23         _pick_head_track_target()
24
25
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)
29                 if i >= 0:
30                         _head_track_arr.remove_at(i)
31         _pick_head_track_target()