mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-24 02:17:27 -04:00
43 lines
1 KiB
GDScript
43 lines
1 KiB
GDScript
extends Control
|
|
|
|
@export var gate_events: GateEvents
|
|
|
|
@export var image: TextureRect
|
|
@export var image_darken: Control
|
|
@export var title: RichTextLabel
|
|
@export var description: RichTextLabel
|
|
@export var gate_status: Array[Control]
|
|
|
|
var gate: Gate
|
|
|
|
|
|
func _ready() -> void:
|
|
gate_events.gate_image_loaded.connect(display_info)
|
|
gate_events.first_frame.connect(on_first_frame)
|
|
gate_events.gate_error.connect(on_gate_error)
|
|
clear_info()
|
|
|
|
|
|
func display_info(_gate: Gate) -> void:
|
|
gate = _gate
|
|
title.text = "Unnamed" if gate.title.is_empty() else gate.title
|
|
description.text = "No description" if gate.description.is_empty() else gate.description
|
|
image.texture = FileTools.load_external_tex(gate.image)
|
|
if is_instance_valid(image.texture): image_darken.show()
|
|
|
|
|
|
func clear_info() -> void:
|
|
gate = null
|
|
title.text = ""
|
|
description.text = ""
|
|
image.texture = null
|
|
image_darken.hide()
|
|
|
|
|
|
func on_first_frame() -> void:
|
|
for node in gate_status:
|
|
node.hide()
|
|
|
|
|
|
func on_gate_error(_code: GateEvents.GateError) -> void:
|
|
description.set_text("")
|