Refactor systems to use EventBus for communication

- Removed direct dependencies on GameState in multiple systems, replacing them with EventBus for event-driven architecture.
- Updated CameraShakeSystem to handle focus changes and trauma through EventBus.
- Modified DeadliftSystem to manage lift efforts and hazards using EventBus.
- Refactored GameManager to handle lift results and day transitions via EventBus.
- Adjusted HazardController and HazardSystem to publish and respond to hazard events through EventBus.
- Enhanced PlayerInputSystem to publish lift efforts and focus releases using EventBus.
- Updated SoundManager to handle various audio events through EventBus, improving sound management.
- Refined TunnelSystem to manage focus changes and lift efforts using EventBus.
- Adjusted LiftProgressBar to update progress based on events from EventBus.
- Enhanced LiftSyncController to synchronize animations based on lift efforts and focus events via EventBus.
This commit is contained in:
2026-01-24 18:15:34 +01:00
parent 140e0f1cff
commit 266fa4ac1d
24 changed files with 738 additions and 540 deletions

View File

@@ -1,6 +1,5 @@
[gd_scene load_steps=12 format=3 uid="uid://xtm08af0e82g"]
[ext_resource type="GameState" uid="uid://2gma8vvisnqo" path="res://Resources/GameState.tres" id="1_bo1nx"]
[ext_resource type="Shader" uid="uid://dndm4jfifooyk" path="res://Shaders/TunnelVision.gdshader" id="1_jjgbg"]
[ext_resource type="DayConfig" uid="uid://d30pwvrr7m72j" path="res://Resources/Day_Day1.tres" id="2_8gbba"]
[ext_resource type="SoundBank" uid="uid://b8ouri8tqw8vp" path="res://Resources/SoundBank.tres" id="2_21xkr"]
@@ -27,20 +26,16 @@ shader_parameter/vignette_color = Color(0, 0, 0, 1)
[node name="Systems" type="Node" parent="."]
[node name="PlayerInputSystem" type="PlayerInputSystem" parent="Systems"]
game_state = ExtResource("1_bo1nx")
[node name="TunnelSystem" type="TunnelSystem" parent="Systems" node_paths=PackedStringArray("vignette_overlay")]
game_state = ExtResource("1_bo1nx")
config = SubResource("TunnelConfig_8gbba")
vignette_overlay = NodePath("../../Ui/Vignette")
[node name="SoundManager" type="SoundManager" parent="Systems"]
bank = ExtResource("2_21xkr")
game_state = ExtResource("1_bo1nx")
[node name="GameManager" type="GameManager" parent="Systems" node_paths=PackedStringArray("hazard_system", "minigame_container", "win_screen", "lose_screen")]
days = Array[DayConfig]([ExtResource("2_8gbba"), ExtResource("4_344ge")])
game_state = ExtResource("1_bo1nx")
hazard_system = NodePath("../HazardSystem")
minigame_container = NodePath("../../GameContainer")
win_screen = NodePath("../../Ui/Win")
@@ -49,14 +44,12 @@ main_menu_scene = ExtResource("4_6bp64")
[node name="CameraShakeSystem" type="CameraShakeSystem" parent="Systems" node_paths=PackedStringArray("camera")]
camera = NodePath("../../Camera2D")
game_state = ExtResource("1_bo1nx")
min_focus_for_shake = 0.7
[node name="HazardSystem" type="HazardSystem" parent="Systems" node_paths=PackedStringArray("spawn_locations")]
possible_hazards = Array[HazardDef]([ExtResource("3_kry3j")])
spawn_locations = [NodePath("../../HazardSpots/Right"), NodePath("../../HazardSpots/Left")]
hazard_prefab = ExtResource("4_21xkr")
game_state = ExtResource("1_bo1nx")
[node name="GameContainer" type="Node" parent="."]
@@ -80,7 +73,6 @@ grow_vertical = 2
mouse_filter = 2
[node name="LiftProgressBar" type="LiftProgressBar" parent="Ui"]
game_state = ExtResource("1_bo1nx")
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0