| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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)
|