mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-12 15:55:53 +00:00
Elevators
This commit is contained in:
parent
929d993f99
commit
4fc136e5d7
39 changed files with 4471 additions and 264 deletions
46
3D/TrenchBroom/EntityScripts/Triggers/trigger_area.gd
Normal file
46
3D/TrenchBroom/EntityScripts/Triggers/trigger_area.gd
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
@tool
|
||||
class_name TriggerArea
|
||||
extends Area3D
|
||||
|
||||
@export var target: String = ""
|
||||
@export var targetfunc: String = ""
|
||||
@export var targetname: String = ""
|
||||
|
||||
enum TriggerStates {
|
||||
READY,
|
||||
USED
|
||||
}
|
||||
var trigger_state: TriggerStates = TriggerStates.READY
|
||||
var timeout: float = 0.0
|
||||
var last_activator: Node = null
|
||||
|
||||
func _func_godot_apply_properties(props: Dictionary) -> void:
|
||||
target = props["target"] as String
|
||||
targetfunc = props["targetfunc"] as String
|
||||
targetname = props["targetname"] as String
|
||||
|
||||
func toggle_collision(toggle: bool) -> void:
|
||||
for child in get_children():
|
||||
if child is CollisionShape3D:
|
||||
child.set_deferred("disabled", !toggle)
|
||||
|
||||
func use() -> void:
|
||||
if trigger_state == TriggerStates.READY:
|
||||
trigger_state = TriggerStates.USED
|
||||
toggle_collision(false)
|
||||
TBGAME.use_targets(self, target)
|
||||
|
||||
func _on_ent_entered(ent: Node) -> void:
|
||||
if trigger_state == TriggerStates.READY:
|
||||
if ent.is_in_group("PLAYER"):
|
||||
call("use")
|
||||
|
||||
func _init() -> void:
|
||||
monitoring = true
|
||||
monitorable = false
|
||||
connect("body_entered", _on_ent_entered)
|
||||
|
||||
func _ready() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
TBGAME.set_targetname(self, targetname)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dp6h7yqh8x1gv
|
||||
Loading…
Add table
Add a link
Reference in a new issue