Blobby/src/Contraptions/Triggers/GateButton.gd

41 lines
1.1 KiB
GDScript

extends Node2D
onready var activatorArea = $"%ActivatorArea"
onready var indicatorPlayer = $"%IndicatorPlayer"
onready var signal_manager := get_tree().root.get_child(4).get_node("%SignalManager")
onready var unactivatable_timer := $Timer
var activatable = false
func _input(event: InputEvent) -> void:
if activatable && Input.is_action_just_released("interact"):
selfActivate()
func selfActivate():
indicatorPlayer.play("onning")
#TODO dis importante
activatorArea.set_deferred("monitoring", false)
#TODO Close gate again?
signal_manager.emit_signal("unlocked", "gateblock")
activatable = false
func _on_ActivatorArea_area_entered(area:Area2D) -> void:
$Label.visible = true
$Highlight.visible = true
activatable = true
if(area.get_parent().name == "WhatAreFrog"):
selfActivate()
func _on_ActivatorArea_area_exited(area:Area2D) -> void:
unactivatable_timer.start()
func _on_Timer_timeout():
for body in activatorArea.get_overlapping_bodies():
if body.is_in_group("player"):
return
$Label.visible = false
$Highlight.visible = false
activatable = false