mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 15:38:14 +00:00
88 lines
2.8 KiB
GDScript
88 lines
2.8 KiB
GDScript
class_name CustomLevelMenu
|
|
extends Node
|
|
|
|
static var current_level_file := ""
|
|
|
|
static var has_entered := false
|
|
|
|
var selected_lvl_idx := 0
|
|
const CUSTOM_LEVEL_PATH := "user://custom_levels/"
|
|
const base64_charset := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
|
|
|
func _ready() -> void:
|
|
has_entered = true
|
|
ResourceSetterNew.cache.clear()
|
|
ResourceSetter.cache.clear()
|
|
Global.get_node("GameHUD").hide()
|
|
Checkpoint.passed = false
|
|
Global.world_num = 1
|
|
Global.level_num = 1
|
|
Global.reset_values()
|
|
Checkpoint.sublevel_id = 0
|
|
Global.current_campaign = "SMB1"
|
|
AudioManager.stop_all_music()
|
|
Global.second_quest = false
|
|
%LevelList.open(true)
|
|
|
|
func _exit_tree() -> void:
|
|
Global.get_node("GameHUD").show()
|
|
|
|
func new_level() -> void:
|
|
Global.current_game_mode = Global.GameMode.LEVEL_EDITOR
|
|
LevelEditor.load_play = false
|
|
LevelEditor.level_name = ""
|
|
LevelEditor.level_author = ""
|
|
LevelEditor.level_desc = ""
|
|
LevelEditor.difficulty = 0
|
|
LevelEditor.level_file = LevelEditor.BLANK_FILE.duplicate(true)
|
|
Global.transition_to_scene("res://Scenes/Levels/LevelEditor.tscn")
|
|
|
|
func back_to_title_screen() -> void:
|
|
if Global.transitioning_scene:
|
|
await Global.transition_finished
|
|
Global.transition_to_scene("res://Scenes/Levels/TitleScreen.tscn")
|
|
|
|
func edit_level() -> void:
|
|
Global.current_game_mode = Global.GameMode.LEVEL_EDITOR
|
|
LevelEditor.load_play = false
|
|
Global.transition_to_scene("res://Scenes/Levels/LevelEditor.tscn")
|
|
|
|
func play_level() -> void:
|
|
Global.current_game_mode = Global.GameMode.CUSTOM_LEVEL
|
|
Settings.file.difficulty.inf_lives = 1
|
|
LevelEditor.load_play = true
|
|
$CharacterSelect.open()
|
|
await $CharacterSelect.selected
|
|
LevelTransition.level_to_transition_to = ("res://Scenes/Levels/LevelEditor.tscn")
|
|
Global.transition_to_scene("res://Scenes/Levels/LevelTransition.tscn")
|
|
|
|
|
|
func delete_level() -> void:
|
|
DirAccess.remove_absolute(current_level_file)
|
|
go_back_to_list()
|
|
%LevelList.refresh()
|
|
if %LevelList.containers.is_empty() == false:
|
|
%LevelList.containers[0].grab_focus()
|
|
else:
|
|
$BG/Border/Levels/VBoxContainer/LevelList/TopBit/Button.grab_focus()
|
|
|
|
func go_back_to_list() -> void:
|
|
$BG/Border/Levels/VBoxContainer/LevelList.show()
|
|
%LevelInfo.hide()
|
|
|
|
func open_lss_browser() -> void:
|
|
$BG/Border/Levels/VBoxContainer/LevelList.hide()
|
|
%LSSBrowser.open()
|
|
|
|
func show_lss_level_info(container: OnlineLevelContainer) -> void:
|
|
for i in ["level_name", "level_author", "level_theme", "level_id", "thumbnail_url"]:
|
|
%SelectedOnlineLevel.set(i, container.get(i))
|
|
%SelectedOnlineLevel.setup_visuals()
|
|
LevelEditor.level_name = container.level_name
|
|
LevelEditor.level_author = container.level_author
|
|
%LSSDescription.text = "Fetching Description..."
|
|
$BG/Border/Levels/VBoxContainer/LSSBrowser.hide()
|
|
%LSSLevelInfo.show()
|
|
await get_tree().physics_frame
|
|
%Download.grab_focus()
|