43 lines
1.0 KiB
GDScript
43 lines
1.0 KiB
GDScript
extends Node2D
|
|
|
|
signal button_pushed
|
|
|
|
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
|
|
export(int) var frog_number := 0
|
|
|
|
var activatable = false
|
|
|
|
func _ready() -> void:
|
|
$Digit.frame = frog_number
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if activatable && Input.is_action_just_released("interact"):
|
|
selfActivate()
|
|
self.emit_signal("button_pushed")
|
|
|
|
|
|
func selfActivate():
|
|
indicatorPlayer.play("onning")
|
|
#TODO dis importante
|
|
activatorArea.set_deferred("monitoring", false)
|
|
|
|
|
|
func _on_ActivatorArea_area_entered(area:Area2D) -> void:
|
|
$Label.visible = true
|
|
$Highlight.visible = true
|
|
activatable = true
|
|
|
|
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
|