aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/Autoload/Events.gd
diff options
context:
space:
mode:
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
commit1d8accc1ca6b30120732c56233e5d74e860de1bb (patch)
tree97c167b06a8b2f2b868107414b5676ccb5fcb53b /game/src/Game/Autoload/Events.gd
parentd05bff0c40a482a9bb44877fe76b1e0efb2e1a68 (diff)
parent86bee7b44c7cc7adaef8cdf441667a99223dd98a (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.gd61
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()