Files
Super-Mario-Bros.-Remastere…/Scripts/UI/LevelInfo.gd
2025-09-13 16:30:32 +01:00

56 lines
1.4 KiB
GDScript

extends VBoxContainer
signal closed
var file_path := ""
var active := false
func _ready() -> void:
set_process(false)
signal level_play
signal level_edit
func open(container: CustomLevelContainer = null) -> void:
if container != null:
for i in ["level_name", "level_author", "level_theme", "game_style", "level_time", "difficulty"]:
%SelectedLevel.set(i, container.get(i))
%SelectedLevel.update_visuals()
LevelEditor.level_name = container.level_name
CustomLevelMenu.current_level_file = container.file_path
LevelEditor.level_author = container.level_author
file_path = container.file_path
LevelEditor.level_desc = container.level_desc
%Description.text = container.level_desc
show()
await get_tree().physics_frame
active = true
set_process(true)
%Play.grab_focus()
func reopen() -> void:
show()
await get_tree().physics_frame
active = true
set_process(true)
%Play.grab_focus()
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("ui_back") and active:
closed.emit()
close()
func level_selected() -> void:
LevelEditor.level_file = JSON.parse_string(FileAccess.open(file_path, FileAccess.READ).get_as_text())
level_play.emit()
active = false
func level_edited() -> void:
LevelEditor.level_file = JSON.parse_string(FileAccess.open(file_path, FileAccess.READ).get_as_text())
level_edit.emit()
func close() -> void:
hide()
set_process(false)