diff options
author | George L. Albany <Megacake1234@gmail.com> | 2023-07-09 02:14:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-09 02:14:54 +0200 |
commit | 1d8accc1ca6b30120732c56233e5d74e860de1bb (patch) | |
tree | 97c167b06a8b2f2b868107414b5676ccb5fcb53b /game/src/Game/Autoload/Events.gd | |
parent | d05bff0c40a482a9bb44877fe76b1e0efb2e1a68 (diff) | |
parent | 86bee7b44c7cc7adaef8cdf441667a99223dd98a (diff) |
Merge pull request #135 from Spartan322/generalize/loading-and-events
Diffstat (limited to 'game/src/Game/Autoload/Events.gd')
-rw-r--r-- | game/src/Game/Autoload/Events.gd | 61 |
1 files changed, 8 insertions, 53 deletions
diff --git a/game/src/Game/Autoload/Events.gd b/game/src/Game/Autoload/Events.gd index f979301..da12bf6 100644 --- a/game/src/Game/Autoload/Events.gd +++ b/game/src/Game/Autoload/Events.gd @@ -1,56 +1,11 @@ +## Events are exclusively for the purpose of handling global signals +## This is to reduce "signal bubbling" which is when a signal callback is used to "bubble" the signal callbacks up the scene tree. +## It does such by providing a global interface of signals that are connected to and emitted by that are garunteed to exist. extends Node -var GameDebug: GameDebugSingleton -var Options: OptionsSingleton -var Localisation: LocalisationSingleton -var ShaderManager: ShaderManagerSingleton +var Loader: LoaderEventsObject +var Options: OptionsEventsObject -var _define_filepaths_dict : Dictionary = { - GameSingleton.get_province_identifier_file_key(): "res://common/map/provinces.json", - GameSingleton.get_water_province_file_key(): "res://common/map/water.json", - GameSingleton.get_region_file_key(): "res://common/map/regions.json", - GameSingleton.get_terrain_variant_file_key(): "res://common/map/terrain.json", - GameSingleton.get_terrain_texture_dir_key(): "res://art/terrain/", - GameSingleton.get_province_image_file_key(): "res://common/map/provinces.png", - GameSingleton.get_terrain_image_file_key(): "res://common/map/terrain.png", - GameSingleton.get_goods_file_key(): "res://common/goods.json", - GameSingleton.get_good_icons_dir_key(): "res://art/economy/goods" -} - -# REQUIREMENTS -# * FS-333, FS-334, FS-335, FS-341 -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) - # Usage: OpenVic --compatibility-mode <path> - - var compatibility_mode_path : String = ArgumentParser.get_argument(&"compatibility-mode") - - 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") +func _init(): + Loader = LoaderEventsObject.new() + Options = OptionsEventsObject.new() |