10const SPLASH_SCENE :=
"res://scenes/splash_screen.tscn"
11const START_MENU_SCENE :=
"res://scenes/start_menu.tscn"
12const SETTINGS_SCENE :=
"res://scenes/settings_menu.tscn"
13const GAME_SCENE :=
"res://scenes/main.tscn"
14const CARD_GAME_SCENE :=
"res://scenes/emoji_card_collector.tscn"
15const PONG_SCENE :=
"res://scenes/arcade_pong.tscn"
16const PROJECT_ALCHEMY_SCENE :=
"res://scenes/project_alchemy.tscn"
17const PLATFORMER_DEMO_SCENE :=
"res://scenes/platformer_demo.tscn"
18const THEME_EDITOR_SCENE :=
"res://scenes/theme_editor.tscn"
19const LEVEL_EDITOR_SCENE :=
"res://scenes/level_editor.tscn"
20const BuildInfo = preload(
"res://scripts/systems/buildInfo/build_info.gd")
21@onready var GameState = get_node_or_null(
"/root/GameState")
23var build_info = BuildInfo.new()
27 build_info.load_info()
30func go_to_splash() -> void:
31 _change_scene(SPLASH_SCENE)
34func go_to_start_menu() -> void:
35 _change_scene(_profile_home_scene())
38func go_to_settings() -> void:
39 _change_scene(SETTINGS_SCENE)
42func go_to_theme_editor() -> void:
43 _change_scene(THEME_EDITOR_SCENE)
46func go_to_level_editor() -> void:
47 _change_scene(LEVEL_EDITOR_SCENE)
50func go_to_scene(scene_path:String) -> void:
51 _change_scene(scene_path)
54func continue_game() -> void:
55 _change_scene(GAME_SCENE)
58func new_game() -> void:
59 GameState.request_new_game()
60 _change_scene(GAME_SCENE)
63func go_to_card_game(slot:int = -1, start_new:bool = false) -> void:
65 GameState.select_card_save_slot(slot, start_new)
66 _change_scene(CARD_GAME_SCENE)
69func go_to_pong() -> void:
70 _change_scene(PONG_SCENE)
73func go_to_platformer_demo(level_id:String =
"") -> void:
74 if level_id.strip_edges() !=
"":
75 GameState.select_platformer_level(level_id)
76 _change_scene(PLATFORMER_DEMO_SCENE)
79func go_to_project_alchemy(start_new:bool = false, slot:int = -1) -> void:
81 GameState.select_project_alchemy_save_slot(slot, start_new)
83 GameState.request_project_alchemy_new_game()
84 _change_scene(PROJECT_ALCHEMY_SCENE)
87func _change_scene(scene_path:String) -> void:
88 get_tree().change_scene_to_file(scene_path)
91func _profile_home_scene() -> String:
92 build_info.load_info()
93 var state := build_info.get_state()
94 if str(state.get(
"game_id",
"all_demos")) ==
"all_demos":
95 return START_MENU_SCENE
96 var launch_scene := build_info.get_launch_scene(START_MENU_SCENE)
97 if launch_scene == SPLASH_SCENE
or launch_scene.strip_edges() ==
"":
98 return START_MENU_SCENE