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 PUTT_PUTT_ROGUELIKE_SCENE :=
"res://scenes/putt_putt_roguelike.tscn"
19const OBJECTIVE_SCENE :=
"res://scenes/objective.tscn"
20const THEME_EDITOR_SCENE :=
"res://scenes/theme_editor.tscn"
21const LEVEL_EDITOR_SCENE :=
"res://scenes/level_editor.tscn"
22const SPRITE_MAPPER_SCENE :=
"res://scenes/sprite_mapper.tscn"
23const BuildInfo = preload(
"res://scripts/systems/buildInfo/build_info.gd")
24@onready var GameState = get_node_or_null(
"/root/GameState")
26var build_info = BuildInfo.new()
30 build_info.load_info()
33func go_to_splash() -> void:
34 _change_scene(SPLASH_SCENE)
37func go_to_start_menu() -> void:
38 _change_scene(_profile_home_scene())
41func go_to_settings() -> void:
42 _change_scene(SETTINGS_SCENE)
45func go_to_theme_editor() -> void:
46 _change_scene(THEME_EDITOR_SCENE)
49func go_to_level_editor() -> void:
50 _change_scene(LEVEL_EDITOR_SCENE)
53func go_to_sprite_mapper() -> void:
54 _change_scene(SPRITE_MAPPER_SCENE)
57func go_to_scene(scene_path:String) -> void:
58 _change_scene(scene_path)
61func continue_game() -> void:
62 _change_scene(GAME_SCENE)
65func new_game() -> void:
66 GameState.request_new_game()
67 _change_scene(GAME_SCENE)
70func go_to_card_game(slot:int = -1, start_new:bool = false) -> void:
72 GameState.select_card_save_slot(slot, start_new)
73 _change_scene(CARD_GAME_SCENE)
76func go_to_pong() -> void:
77 _change_scene(PONG_SCENE)
80func go_to_platformer_demo(level_id:String =
"") -> void:
81 if level_id.strip_edges() !=
"":
82 GameState.select_platformer_level(level_id)
83 _change_scene(PLATFORMER_DEMO_SCENE)
86func go_to_putt_putt_roguelike() -> void:
87 _change_scene(PUTT_PUTT_ROGUELIKE_SCENE)
90func go_to_objective() -> void:
91 _change_scene(OBJECTIVE_SCENE)
94func go_to_project_alchemy(start_new:bool = false, slot:int = -1) -> void:
96 GameState.select_project_alchemy_save_slot(slot, start_new)
98 GameState.request_project_alchemy_new_game()
99 _change_scene(PROJECT_ALCHEMY_SCENE)
102func _change_scene(scene_path:String) -> void:
103 get_tree().change_scene_to_file(scene_path)
106func _profile_home_scene() -> String:
107 build_info.load_info()
108 var state := build_info.get_state()
109 if str(state.get(
"game_id",
"all_demos")) ==
"all_demos":
110 return START_MENU_SCENE
111 var launch_scene := build_info.get_launch_scene(START_MENU_SCENE)
112 if launch_scene == SPLASH_SCENE
or launch_scene.strip_edges() ==
"":
113 return START_MENU_SCENE