Files
EGJ25/scenes/interactibles/interactible.gd

36 lines
958 B
GDScript3
Raw Normal View History

2025-06-28 10:23:35 +02:00
extends Area2D
class_name Interactible
# @export_file("*.tscn") var scene_to_trigger: String
@export var message: String
@export var event: String
2025-06-28 10:23:35 +02:00
signal event_triggered(event_id: String)
2025-06-28 10:23:35 +02:00
@onready var rich_text_label: RichTextLabel = $RichTextLabel
@onready var confirm_panel: Panel = %ConfirmPanel
@onready var message_box: Label = %MessageBox
2025-06-28 10:23:35 +02:00
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
rich_text_label.visible = false
confirm_panel.visible = false
message_box.text = message.to_upper()
2025-06-28 10:23:35 +02:00
func _on_body_entered(body: Node2D) -> void:
rich_text_label.visible = true
func _on_body_exited(body: Node2D) -> void:
rich_text_label.visible = false
confirm_panel.visible = false
func show_confirm():
confirm_panel.visible = true
func _on_confirm_button_pressed() -> void:
confirm_panel.visible = false
event_triggered.emit(event)
func _on_cancel_button_pressed() -> void:
confirm_panel.visible = false