50 lines
1.4 KiB
GDScript
50 lines
1.4 KiB
GDScript
extends Node2D
|
|
|
|
onready var buttonPlayer = $"%ButtonPlayer"
|
|
onready var activatorArea = $"%ActivatorArea"
|
|
onready var indicatorPlayer = $"%IndicatorPlayer"
|
|
onready var elevator = get_node("./Portal")
|
|
onready var signalManager := get_tree().root.get_child(3).get_node("%SignalManager")
|
|
onready var unactivatable_timer := $Timer
|
|
onready var get_back_timer := $GetBackTimer
|
|
|
|
export var elevator_time := 30
|
|
var activatable = false
|
|
|
|
func _ready() -> void:
|
|
get_back_timer.wait_time = elevator_time
|
|
elevator.get_node("./portal").frame = 1
|
|
elevator.monitoring = false
|
|
|
|
func _process(delta):
|
|
if activatable && Input.is_action_just_released("interact"):
|
|
selfActivate()
|
|
signalManager.emit_signal("terminal_activated", elevator_time)
|
|
get_back_timer.start()
|
|
|
|
|
|
func selfActivate():
|
|
indicatorPlayer.play("onning")
|
|
buttonPlayer.play("pushing")
|
|
elevator.get_node("./portal").frame = 0
|
|
elevator.monitoring = true
|
|
#TODO dis importante
|
|
activatorArea.set_deferred("monitoring", false)
|
|
|
|
|
|
func _on_ActivatorArea_area_entered(area:Area2D) -> void:
|
|
$Label.visible = true
|
|
$Label.text = " [e] \n Time: " + String(elevator_time) + " sec"
|
|
activatable = true
|
|
|
|
func _on_ActivatorArea_area_exited(area:Area2D) -> void:
|
|
unactivatable_timer.start()
|
|
|
|
func _on_Timer_timeout():
|
|
$Label.visible = false
|
|
activatable = false
|
|
|
|
|
|
func _on_GetBackTimer_timeout() -> void:
|
|
signalManager.emit_signal("getback_timer_up")
|