]> Untitled Git - wolf-seeking-sheep.git/blob - classes/triggers/Trigger.gd
4.0 docs recommend to keep the import files
[wolf-seeking-sheep.git] / classes / triggers / Trigger.gd
1 class_name Trigger
2 extends Area3D
3
4
5 signal triggerBodyEntered
6
7
8 @export var groups: Array[String] = ["Player"]
9 @export var one_shot := true
10
11
12 func _ready() -> void:
13         body_entered.connect(_on_body_entered)
14
15
16 # trigger upon first body matching the specified group enters
17 # after trigger has fired, disable monitoring for the area
18 func _on_body_entered(body: Node3D):
19         for group in groups:
20                 if body.is_in_group(group):
21                         print("Body entered")
22                         triggerBodyEntered.emit(self, body)
23                         if one_shot:
24                                 set_deferred("monitoring", false)