From acda3217349a0ebdb8b48a3787cb15d8eb250e7c Mon Sep 17 00:00:00 2001 From: Joel Machens Date: Sun, 11 Jun 2023 21:27:31 -0500 Subject: Add Loading Screen --- game/src/Game/Autoload/Events.gd | 30 +++++++++++++++++++------- game/src/Game/Autoload/Events/GameDebug.gd | 1 + game/src/Game/Autoload/Events/Localisation.gd | 1 + game/src/Game/Autoload/Events/Options.gd | 1 + game/src/Game/Autoload/Events/ShaderManager.gd | 1 + 5 files changed, 26 insertions(+), 8 deletions(-) (limited to 'game/src/Game/Autoload') diff --git a/game/src/Game/Autoload/Events.gd b/game/src/Game/Autoload/Events.gd index 4387cc7..786ece4 100644 --- a/game/src/Game/Autoload/Events.gd +++ b/game/src/Game/Autoload/Events.gd @@ -1,9 +1,9 @@ extends Node -var GameDebug = preload("Events/GameDebug.gd").new() -var Options = preload("Events/Options.gd").new() -var Localisation = preload("Events/Localisation.gd").new() -var ShaderManager = preload("Events/ShaderManager.gd").new() +var GameDebug: GameDebugSingleton +var Options: OptionsSingleton +var Localisation: LocalisationSingleton +var ShaderManager: ShaderManagerSingleton var _define_filepaths_dict : Dictionary = { GameSingleton.get_province_identifier_file_key(): "res://common/map/provinces.json", @@ -19,9 +19,10 @@ var _define_filepaths_dict : Dictionary = { # REQUIREMENTS # * FS-333, FS-334, FS-335, FS-341 -func _ready(): +func load_events(loading_screen: LoadingScreen): GameSingleton.setup_logger() - + loading_screen.update_loading_screen(5) + # Set this to your Vic2 install dir or a mod's dir to enable compatibility mode # (this won't work for mods which rely on vanilla map assets, copy missing assets # into the mod's dir for a temporary fix) @@ -33,13 +34,26 @@ func _ready(): compatibility_mode_path = arg_dictionary.get(&"compatibility-mode", compatibility_mode_path) var start := Time.get_ticks_usec() - + + GameDebug = GameDebugSingleton.new() + loading_screen.update_loading_screen(15) + Options = OptionsSingleton.new() + loading_screen.update_loading_screen(25) + Localisation = LocalisationSingleton.new() + loading_screen.update_loading_screen(45) + ShaderManager = ShaderManagerSingleton.new() + loading_screen.update_loading_screen(50, true) + if compatibility_mode_path: if GameSingleton.load_defines_compatibility_mode(compatibility_mode_path) != OK: push_error("Errors loading game defines!") else: if GameSingleton.load_defines(_define_filepaths_dict) != OK: push_error("Errors loading game defines!") - + + loading_screen.update_loading_screen(100) var end := Time.get_ticks_usec() print("Loading took ", float(end - start) / 1000000, " seconds") + + # change scene in a thread-safe way + get_tree().call_deferred("change_scene_to_file", "res://src/Game/GameMenu.tscn") diff --git a/game/src/Game/Autoload/Events/GameDebug.gd b/game/src/Game/Autoload/Events/GameDebug.gd index df7a23a..ea4a157 100644 --- a/game/src/Game/Autoload/Events/GameDebug.gd +++ b/game/src/Game/Autoload/Events/GameDebug.gd @@ -1,4 +1,5 @@ extends RefCounted +class_name GameDebugSingleton # REQUIREMENTS: # * SS-56 diff --git a/game/src/Game/Autoload/Events/Localisation.gd b/game/src/Game/Autoload/Events/Localisation.gd index eda7e51..91f9ca0 100644 --- a/game/src/Game/Autoload/Events/Localisation.gd +++ b/game/src/Game/Autoload/Events/Localisation.gd @@ -1,4 +1,5 @@ extends RefCounted +class_name LocalisationSingleton # REQUIREMENTS # * SS-59, SS-60, SS-61 diff --git a/game/src/Game/Autoload/Events/Options.gd b/game/src/Game/Autoload/Events/Options.gd index fbeccef..2e9b90b 100644 --- a/game/src/Game/Autoload/Events/Options.gd +++ b/game/src/Game/Autoload/Events/Options.gd @@ -1,4 +1,5 @@ extends RefCounted +class_name OptionsSingleton signal save_settings(save_file: ConfigFile) signal load_settings(load_file: ConfigFile) diff --git a/game/src/Game/Autoload/Events/ShaderManager.gd b/game/src/Game/Autoload/Events/ShaderManager.gd index a503c52..731dc3c 100644 --- a/game/src/Game/Autoload/Events/ShaderManager.gd +++ b/game/src/Game/Autoload/Events/ShaderManager.gd @@ -1,4 +1,5 @@ extends RefCounted +class_name ShaderManagerSingleton const param_province_shape_tex : StringName = &"province_shape_tex" const param_province_shape_subdivisions : StringName = &"province_shape_subdivisions" -- cgit v1.2.3-56-ga3b1