From 85155df0972218c8ace67cd6aefeb389d45eb145 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sat, 24 Oct 2026 21:41:44 -0500 Subject: [PATCH] Refactored to be controller centric; added message buss pattern with early support eent types --- game.tscn | 28 +++++++---- scripts/controllers/base_controller.gd | 36 ++++++++++++++ scripts/controllers/base_controller.gd.uid | 1 + scripts/controllers/controller_manager.gd | 49 +++++++++++++++++++ scripts/controllers/controller_manager.gd.uid | 1 + scripts/controllers/controller_manager.tscn | 6 +++ .../factory_systems/factories/factory_base.gd | 1 + .../factories/factory_base.gd.uid | 1 + .../factory_systems}/factories/jet_factory.gd | 2 +- .../factories/jet_factory.gd.uid | 0 .../factories/jet_factory.tscn | 2 +- .../factory_systems/factory_controller.gd | 10 ++++ .../factory_systems/factory_controller.gd.uid | 1 + .../factory_systems/factory_controller.tscn | 6 +++ .../game_system/game_controller.gd | 15 ++++++ .../game_system/game_controller.gd.uid | 1 + .../game_system/game_controller.tscn | 6 +++ .../game_system}/game_modes/base_game_mode.gd | 0 .../game_modes/base_game_mode.gd.uid | 0 .../game_system}/game_modes/dog_fight.gd | 0 .../game_system}/game_modes/dog_fight.gd.uid | 0 .../game_modes/dog_fight_waves.gd | 0 .../game_modes/dog_fight_waves.gd.uid | 0 .../game_system}/game_modes/game_mode.gd | 4 +- .../game_system}/game_modes/game_mode.gd.uid | 0 .../game_system/game_modes/game_mode.tscn | 3 ++ .../spawn_system/spawn_controller.gd | 17 ++++--- .../spawn_system/spawn_controller.tscn | 2 +- scripts/game_modes/game_mode.tscn | 6 --- scripts/jet_controls/controller.gd | 13 ++--- scripts/message_bus/controller_message_bus.gd | 25 ++++++++++ .../message_bus/controller_message_bus.gd.uid | 1 + .../events/base_create_jet_event.gd | 1 + .../events/base_create_jet_event.gd.uid | 1 + scripts/message_bus/events/base_event.gd | 1 + scripts/message_bus/events/base_event.gd.uid | 1 + .../message_bus/events/base_factory_event.gd | 1 + .../events/base_factory_event.gd.uid | 1 + .../events/create_allies_jet_event.gd | 1 + .../events/create_allies_jet_event.gd.uid | 1 + .../events/create_axis_jet_event.gd | 1 + .../events/create_axis_jet_event.gd.uid | 1 + .../events/create_neutral_jet_event.gd | 1 + .../events/create_neutral_jet_event.gd.uid | 1 + .../message_bus/events/game_ready_event.gd | 1 + .../events/game_ready_event.gd.uid | 1 + scripts/message_bus/message_bus.gd | 9 ++++ scripts/message_bus/message_bus.gd.uid | 1 + scripts/message_bus/message_bus.tscn | 6 +++ 49 files changed, 234 insertions(+), 33 deletions(-) create mode 100644 scripts/controllers/base_controller.gd create mode 100644 scripts/controllers/base_controller.gd.uid create mode 100644 scripts/controllers/controller_manager.gd create mode 100644 scripts/controllers/controller_manager.gd.uid create mode 100644 scripts/controllers/controller_manager.tscn create mode 100644 scripts/controllers/factory_systems/factories/factory_base.gd create mode 100644 scripts/controllers/factory_systems/factories/factory_base.gd.uid rename scripts/{ => controllers/factory_systems}/factories/jet_factory.gd (97%) rename scripts/{ => controllers/factory_systems}/factories/jet_factory.gd.uid (100%) rename scripts/{ => controllers/factory_systems}/factories/jet_factory.tscn (71%) create mode 100644 scripts/controllers/factory_systems/factory_controller.gd create mode 100644 scripts/controllers/factory_systems/factory_controller.gd.uid create mode 100644 scripts/controllers/factory_systems/factory_controller.tscn create mode 100644 scripts/controllers/game_system/game_controller.gd create mode 100644 scripts/controllers/game_system/game_controller.gd.uid create mode 100644 scripts/controllers/game_system/game_controller.tscn rename scripts/{ => controllers/game_system}/game_modes/base_game_mode.gd (100%) rename scripts/{ => controllers/game_system}/game_modes/base_game_mode.gd.uid (100%) rename scripts/{ => controllers/game_system}/game_modes/dog_fight.gd (100%) rename scripts/{ => controllers/game_system}/game_modes/dog_fight.gd.uid (100%) rename scripts/{ => controllers/game_system}/game_modes/dog_fight_waves.gd (100%) rename scripts/{ => controllers/game_system}/game_modes/dog_fight_waves.gd.uid (100%) rename scripts/{ => controllers/game_system}/game_modes/game_mode.gd (59%) rename scripts/{ => controllers/game_system}/game_modes/game_mode.gd.uid (100%) create mode 100644 scripts/controllers/game_system/game_modes/game_mode.tscn delete mode 100644 scripts/game_modes/game_mode.tscn create mode 100644 scripts/message_bus/controller_message_bus.gd create mode 100644 scripts/message_bus/controller_message_bus.gd.uid create mode 100644 scripts/message_bus/events/base_create_jet_event.gd create mode 100644 scripts/message_bus/events/base_create_jet_event.gd.uid create mode 100644 scripts/message_bus/events/base_event.gd create mode 100644 scripts/message_bus/events/base_event.gd.uid create mode 100644 scripts/message_bus/events/base_factory_event.gd create mode 100644 scripts/message_bus/events/base_factory_event.gd.uid create mode 100644 scripts/message_bus/events/create_allies_jet_event.gd create mode 100644 scripts/message_bus/events/create_allies_jet_event.gd.uid create mode 100644 scripts/message_bus/events/create_axis_jet_event.gd create mode 100644 scripts/message_bus/events/create_axis_jet_event.gd.uid create mode 100644 scripts/message_bus/events/create_neutral_jet_event.gd create mode 100644 scripts/message_bus/events/create_neutral_jet_event.gd.uid create mode 100644 scripts/message_bus/events/game_ready_event.gd create mode 100644 scripts/message_bus/events/game_ready_event.gd.uid create mode 100644 scripts/message_bus/message_bus.gd create mode 100644 scripts/message_bus/message_bus.gd.uid create mode 100644 scripts/message_bus/message_bus.tscn diff --git a/game.tscn b/game.tscn index a671fca..b3f4bc4 100644 --- a/game.tscn +++ b/game.tscn @@ -1,10 +1,13 @@ -[gd_scene load_steps=6 format=3 uid="uid://cx5ewmp2xcuia"] +[gd_scene load_steps=9 format=3 uid="uid://cx5ewmp2xcuia"] [ext_resource type="PackedScene" uid="uid://bhjfvc7gkrvah" path="res://base_environment.tscn" id="1_80nbo"] -[ext_resource type="PackedScene" uid="uid://dk32bn35qku60" path="res://scripts/factories/jet_factory.tscn" id="2_e2o6t"] -[ext_resource type="PackedScene" uid="uid://nlwfoq6opqck" path="res://scripts/game_modes/game_mode.tscn" id="3_fc0e3"] +[ext_resource type="PackedScene" uid="uid://dk32bn35qku60" path="res://scripts/controllers/factory_systems/factories/jet_factory.tscn" id="2_e2o6t"] +[ext_resource type="PackedScene" uid="uid://vcteetx5wu8r" path="res://scripts/controllers/controller_manager.tscn" id="2_j5wjh"] +[ext_resource type="PackedScene" uid="uid://cn0pa8rp6uvue" path="res://scripts/controllers/factory_systems/factory_controller.tscn" id="2_ryrav"] +[ext_resource type="PackedScene" uid="uid://nlwfoq6opqck" path="res://scripts/controllers/game_system/game_modes/game_mode.tscn" id="3_fc0e3"] [ext_resource type="PackedScene" uid="uid://cuqllmpojcml5" path="res://scripts/controllers/spawn_system/spawn_controller.tscn" id="4_7jktm"] [ext_resource type="PackedScene" uid="uid://bgrku2wvaadgg" path="res://scripts/controllers/spawn_system/spawner.tscn" id="5_ryrav"] +[ext_resource type="PackedScene" uid="uid://ir8lwj1gx7m2" path="res://scripts/controllers/game_system/game_controller.tscn" id="7_vef74"] [node name="game" type="Node3D"] @@ -15,18 +18,23 @@ transform = Transform3D(0.15819459, -0.4996306, 0.85167116, 0, 0.8625322, 0.5060 current = true far = 8000.0 -[node name="jet_factory" parent="." instance=ExtResource("2_e2o6t")] +[node name="controller_manager" parent="." instance=ExtResource("2_j5wjh")] -[node name="game_mode" parent="." node_paths=PackedStringArray("jet_factory") instance=ExtResource("3_fc0e3")] -jet_factory = NodePath("../jet_factory") +[node name="factory_controller" parent="controller_manager" instance=ExtResource("2_ryrav")] -[node name="spawn_controller" parent="." node_paths=PackedStringArray("jet_factory") instance=ExtResource("4_7jktm")] -jet_factory = NodePath("../jet_factory") +[node name="jet_factory" parent="controller_manager/factory_controller" instance=ExtResource("2_e2o6t")] -[node name="spawner" parent="spawn_controller" instance=ExtResource("5_ryrav")] +[node name="spawn_controller" parent="controller_manager" node_paths=PackedStringArray("jet_factory") instance=ExtResource("4_7jktm")] +jet_factory = NodePath("../factory_controller/jet_factory") + +[node name="spawner" parent="controller_manager/spawn_controller" instance=ExtResource("5_ryrav")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 214.19254, 80.63972, 0) faction = 0 -[node name="spawner2" parent="spawn_controller" instance=ExtResource("5_ryrav")] +[node name="spawner2" parent="controller_manager/spawn_controller" instance=ExtResource("5_ryrav")] transform = Transform3D(0.4382143, 0, 0.8988705, 0, 1, 0, -0.8988705, 0, 0.4382143, 0, 100.550575, 0) faction = 1 + +[node name="game_controller" parent="controller_manager" instance=ExtResource("7_vef74")] + +[node name="game_mode" parent="controller_manager/game_controller" instance=ExtResource("3_fc0e3")] diff --git a/scripts/controllers/base_controller.gd b/scripts/controllers/base_controller.gd new file mode 100644 index 0000000..e4199cd --- /dev/null +++ b/scripts/controllers/base_controller.gd @@ -0,0 +1,36 @@ +class_name BaseController extends Node + + +var controller_message_bus: ControllerMessageBus = null + + +func _controller_message(_event: BaseEvent) -> void: + assert(false, "Controller Base '_controller_message' must be overridden...") + +func set_controller_message_bus(message_bus: ControllerMessageBus) -> void: + controller_message_bus = message_bus + +func unset_controller_message_bus() -> void: + controller_message_bus = null + +func message(event: BaseEvent): + return controller_message_bus.message.call(event) + +func message_to(message_str: String, event: BaseEvent): + return controller_message_bus.message_to.call(message_str, event) + +func message_to_selected(cnames: Array[String], event: BaseEvent): + var responses: Array = Array() + + for cname: String in cnames: + responses.append( + controller_message_bus.message_to.call(name, event) + ) + + return responses + +func register_controller(cname: String, controller: BaseController) -> void: + controller_message_bus.register_controller.call(cname, controller) + +func unregister_controller(cname: String) -> void: + controller_message_bus.unregister_controller.call(cname) diff --git a/scripts/controllers/base_controller.gd.uid b/scripts/controllers/base_controller.gd.uid new file mode 100644 index 0000000..eccaebf --- /dev/null +++ b/scripts/controllers/base_controller.gd.uid @@ -0,0 +1 @@ +uid://c8i66sp2l1d0f diff --git a/scripts/controllers/controller_manager.gd b/scripts/controllers/controller_manager.gd new file mode 100644 index 0000000..f63f6f1 --- /dev/null +++ b/scripts/controllers/controller_manager.gd @@ -0,0 +1,49 @@ +class_name ControllerManager extends Node + + +var controller_message_bus: ControllerMessageBus = ControllerMessageBus.new() + + +func _init() -> void: + _connect_signals() + _bind_callables() + +func _connect_signals() -> void: + connect("child_entered_tree", register_controller) + connect("child_exiting_tree", unregister_controller) + +func _bind_callables() -> void: + controller_message_bus.message = Callable(self, "message") + controller_message_bus.message_to = Callable(self, "message_to") + controller_message_bus.register_controller = Callable(self, "register_controller") + controller_message_bus.unregister_controller = Callable(self, "unregister_controller") + +func _ready() -> void: + controller_message_bus.message.call( + GameReadyEvent.new() + ) + + +func register_controller(controller: BaseController) -> void: + controller.set_controller_message_bus(controller_message_bus) + +func unregister_controller(controller: BaseController) -> void: + controller.unset_controller_message_bus() + + +func message(event: BaseEvent): + for controller: BaseController in get_children(): + controller._controller_message(event) + +func message_to(cname: String, event: BaseEvent): + get_node(cname)._controller_message(event) + +func message_to_selected(cnames: Array[String], event: BaseEvent): + var results: Array = Array() + + for cname: String in cnames: + results.append( + controller_message_bus.message_to.call(name, event) + ) + + return results diff --git a/scripts/controllers/controller_manager.gd.uid b/scripts/controllers/controller_manager.gd.uid new file mode 100644 index 0000000..4286a9c --- /dev/null +++ b/scripts/controllers/controller_manager.gd.uid @@ -0,0 +1 @@ +uid://d20ceb66ipyp diff --git a/scripts/controllers/controller_manager.tscn b/scripts/controllers/controller_manager.tscn new file mode 100644 index 0000000..9b65bf4 --- /dev/null +++ b/scripts/controllers/controller_manager.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://vcteetx5wu8r"] + +[ext_resource type="Script" uid="uid://d20ceb66ipyp" path="res://scripts/controllers/controller_manager.gd" id="1_rd3hb"] + +[node name="controller_manager" type="Node"] +script = ExtResource("1_rd3hb") diff --git a/scripts/controllers/factory_systems/factories/factory_base.gd b/scripts/controllers/factory_systems/factories/factory_base.gd new file mode 100644 index 0000000..3c40a6a --- /dev/null +++ b/scripts/controllers/factory_systems/factories/factory_base.gd @@ -0,0 +1 @@ +class_name FactoryBase extends Node diff --git a/scripts/controllers/factory_systems/factories/factory_base.gd.uid b/scripts/controllers/factory_systems/factories/factory_base.gd.uid new file mode 100644 index 0000000..a5b4bc1 --- /dev/null +++ b/scripts/controllers/factory_systems/factories/factory_base.gd.uid @@ -0,0 +1 @@ +uid://cwip0ysw4l6qp diff --git a/scripts/factories/jet_factory.gd b/scripts/controllers/factory_systems/factories/jet_factory.gd similarity index 97% rename from scripts/factories/jet_factory.gd rename to scripts/controllers/factory_systems/factories/jet_factory.gd index 559ca32..4367669 100644 --- a/scripts/factories/jet_factory.gd +++ b/scripts/controllers/factory_systems/factories/jet_factory.gd @@ -1,4 +1,4 @@ -class_name JetFactory extends Node +class_name JetFactory extends FactoryBase const JET = preload("res://scenes/jet.tscn") diff --git a/scripts/factories/jet_factory.gd.uid b/scripts/controllers/factory_systems/factories/jet_factory.gd.uid similarity index 100% rename from scripts/factories/jet_factory.gd.uid rename to scripts/controllers/factory_systems/factories/jet_factory.gd.uid diff --git a/scripts/factories/jet_factory.tscn b/scripts/controllers/factory_systems/factories/jet_factory.tscn similarity index 71% rename from scripts/factories/jet_factory.tscn rename to scripts/controllers/factory_systems/factories/jet_factory.tscn index 0ab121d..734ee05 100644 --- a/scripts/factories/jet_factory.tscn +++ b/scripts/controllers/factory_systems/factories/jet_factory.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://dk32bn35qku60"] -[ext_resource type="Script" uid="uid://c6b0hhfg0xdi4" path="res://scripts/factories/jet_factory.gd" id="1_k26y6"] +[ext_resource type="Script" uid="uid://c6b0hhfg0xdi4" path="res://scripts/controllers/factory_systems/factories/jet_factory.gd" id="1_k26y6"] [node name="jet_factory" type="Node"] script = ExtResource("1_k26y6") diff --git a/scripts/controllers/factory_systems/factory_controller.gd b/scripts/controllers/factory_systems/factory_controller.gd new file mode 100644 index 0000000..355ac6f --- /dev/null +++ b/scripts/controllers/factory_systems/factory_controller.gd @@ -0,0 +1,10 @@ +class_name FactoryController extends BaseController + + +func _ready() -> void: + for factory: FactoryBase in get_children(): + pass + +func _controller_message(event: BaseEvent) -> void: + if event is BaseEvent: + pass diff --git a/scripts/controllers/factory_systems/factory_controller.gd.uid b/scripts/controllers/factory_systems/factory_controller.gd.uid new file mode 100644 index 0000000..e4ad818 --- /dev/null +++ b/scripts/controllers/factory_systems/factory_controller.gd.uid @@ -0,0 +1 @@ +uid://dnb2440074qh5 diff --git a/scripts/controllers/factory_systems/factory_controller.tscn b/scripts/controllers/factory_systems/factory_controller.tscn new file mode 100644 index 0000000..31aa33a --- /dev/null +++ b/scripts/controllers/factory_systems/factory_controller.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://cn0pa8rp6uvue"] + +[ext_resource type="Script" uid="uid://dnb2440074qh5" path="res://scripts/controllers/factory_systems/factory_controller.gd" id="1_yovwh"] + +[node name="factory_controller" type="Node"] +script = ExtResource("1_yovwh") diff --git a/scripts/controllers/game_system/game_controller.gd b/scripts/controllers/game_system/game_controller.gd new file mode 100644 index 0000000..45c5fef --- /dev/null +++ b/scripts/controllers/game_system/game_controller.gd @@ -0,0 +1,15 @@ +class_name GameController extends BaseController + + +func _controller_message(event: BaseEvent) -> void: + if event is GameReadyEvent: + handle_game_ready_event() + +func handle_game_ready_event() -> void: + controller_message_bus.message.call( + CreateAlliesJetEvent.new() + ) + + controller_message_bus.message.call( + CreateAxisJetEvent.new() + ) diff --git a/scripts/controllers/game_system/game_controller.gd.uid b/scripts/controllers/game_system/game_controller.gd.uid new file mode 100644 index 0000000..e4d41d5 --- /dev/null +++ b/scripts/controllers/game_system/game_controller.gd.uid @@ -0,0 +1 @@ +uid://cj1b7xcnaiuu6 diff --git a/scripts/controllers/game_system/game_controller.tscn b/scripts/controllers/game_system/game_controller.tscn new file mode 100644 index 0000000..3a23c91 --- /dev/null +++ b/scripts/controllers/game_system/game_controller.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://ir8lwj1gx7m2"] + +[ext_resource type="Script" uid="uid://cj1b7xcnaiuu6" path="res://scripts/controllers/game_system/game_controller.gd" id="1_itum8"] + +[node name="game_controller" type="Node"] +script = ExtResource("1_itum8") diff --git a/scripts/game_modes/base_game_mode.gd b/scripts/controllers/game_system/game_modes/base_game_mode.gd similarity index 100% rename from scripts/game_modes/base_game_mode.gd rename to scripts/controllers/game_system/game_modes/base_game_mode.gd diff --git a/scripts/game_modes/base_game_mode.gd.uid b/scripts/controllers/game_system/game_modes/base_game_mode.gd.uid similarity index 100% rename from scripts/game_modes/base_game_mode.gd.uid rename to scripts/controllers/game_system/game_modes/base_game_mode.gd.uid diff --git a/scripts/game_modes/dog_fight.gd b/scripts/controllers/game_system/game_modes/dog_fight.gd similarity index 100% rename from scripts/game_modes/dog_fight.gd rename to scripts/controllers/game_system/game_modes/dog_fight.gd diff --git a/scripts/game_modes/dog_fight.gd.uid b/scripts/controllers/game_system/game_modes/dog_fight.gd.uid similarity index 100% rename from scripts/game_modes/dog_fight.gd.uid rename to scripts/controllers/game_system/game_modes/dog_fight.gd.uid diff --git a/scripts/game_modes/dog_fight_waves.gd b/scripts/controllers/game_system/game_modes/dog_fight_waves.gd similarity index 100% rename from scripts/game_modes/dog_fight_waves.gd rename to scripts/controllers/game_system/game_modes/dog_fight_waves.gd diff --git a/scripts/game_modes/dog_fight_waves.gd.uid b/scripts/controllers/game_system/game_modes/dog_fight_waves.gd.uid similarity index 100% rename from scripts/game_modes/dog_fight_waves.gd.uid rename to scripts/controllers/game_system/game_modes/dog_fight_waves.gd.uid diff --git a/scripts/game_modes/game_mode.gd b/scripts/controllers/game_system/game_modes/game_mode.gd similarity index 59% rename from scripts/game_modes/game_mode.gd rename to scripts/controllers/game_system/game_modes/game_mode.gd index 8c1f831..85c1984 100644 --- a/scripts/game_modes/game_mode.gd +++ b/scripts/controllers/game_system/game_modes/game_mode.gd @@ -2,8 +2,8 @@ class_name GameMode extends Node const MODES: Dictionary = { - 0: preload("res://scripts/game_modes/dog_fight.gd"), - 1: preload("res://scripts/game_modes/dog_fight_waves.gd") + 0: preload("res://scripts/controllers/game_system/game_modes/dog_fight.gd"), + 1: preload("res://scripts/controllers/game_system/game_modes/dog_fight_waves.gd") } @export_enum( diff --git a/scripts/game_modes/game_mode.gd.uid b/scripts/controllers/game_system/game_modes/game_mode.gd.uid similarity index 100% rename from scripts/game_modes/game_mode.gd.uid rename to scripts/controllers/game_system/game_modes/game_mode.gd.uid diff --git a/scripts/controllers/game_system/game_modes/game_mode.tscn b/scripts/controllers/game_system/game_modes/game_mode.tscn new file mode 100644 index 0000000..a873af2 --- /dev/null +++ b/scripts/controllers/game_system/game_modes/game_mode.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://nlwfoq6opqck"] + +[node name="game_mode" type="Node"] diff --git a/scripts/controllers/spawn_system/spawn_controller.gd b/scripts/controllers/spawn_system/spawn_controller.gd index 9a85787..d87768d 100644 --- a/scripts/controllers/spawn_system/spawn_controller.gd +++ b/scripts/controllers/spawn_system/spawn_controller.gd @@ -1,16 +1,21 @@ -class_name SpawnController extends Node +class_name SpawnController extends BaseController @export var jet_factory: JetFactory func _ready() -> void: - spawn_sides() + pass +func _controller_message(event: BaseEvent) -> void: + if event is BaseCreateJetEvent: + if event is CreateAlliesJetEvent: + spawn_allies_jet() + elif event is CreateAxisJetEvent: + spawn_axis_jet() + elif event is CreateNeutralJetEvent: + spawn_neutral_jet() -func spawn_sides() -> void: - spawn_allies_jet() - spawn_axis_jet() func spawn_neutral_jet(): var _jet = spawn_jet( @@ -18,7 +23,7 @@ func spawn_neutral_jet(): ) func spawn_allies_jet(): - var _jet = spawn_jet( + var _jet = spawn_jet.call( Globals.Faction.ALLIES, jet_factory.create_cpu_jet ) diff --git a/scripts/controllers/spawn_system/spawn_controller.tscn b/scripts/controllers/spawn_system/spawn_controller.tscn index 680356e..3a69708 100644 --- a/scripts/controllers/spawn_system/spawn_controller.tscn +++ b/scripts/controllers/spawn_system/spawn_controller.tscn @@ -2,5 +2,5 @@ [ext_resource type="Script" uid="uid://bd8ae65orh663" path="res://scripts/controllers/spawn_system/spawn_controller.gd" id="1_xcv1c"] -[node name="spawn_controller" type="Node3D"] +[node name="spawn_controller" type="Node"] script = ExtResource("1_xcv1c") diff --git a/scripts/game_modes/game_mode.tscn b/scripts/game_modes/game_mode.tscn deleted file mode 100644 index 53f67da..0000000 --- a/scripts/game_modes/game_mode.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://nlwfoq6opqck"] - -[ext_resource type="Script" uid="uid://dwkkrl7unxqau" path="res://scripts/game_modes/game_mode.gd" id="1_7wd16"] - -[node name="game_mode" type="Node"] -script = ExtResource("1_7wd16") diff --git a/scripts/jet_controls/controller.gd b/scripts/jet_controls/controller.gd index ea742d9..00161d2 100644 --- a/scripts/jet_controls/controller.gd +++ b/scripts/jet_controls/controller.gd @@ -15,12 +15,13 @@ const PLAYER_MODE: int = 1 func process(delta: float) -> Globals.ControllerCommand: - if CPU_MODE == control_mode: - return cpu.process(delta) - elif PLAYER_MODE == control_mode: - return player.process(delta) - - return Globals.ControllerCommand.NONE + match control_mode: + CPU_MODE: + return cpu.process(delta) + PLAYER_MODE: + return player.process(delta) + _: + return Globals.ControllerCommand.NONE func physics_process(delta: float) -> Globals.ControllerCommand: if CPU_MODE == control_mode: diff --git a/scripts/message_bus/controller_message_bus.gd b/scripts/message_bus/controller_message_bus.gd new file mode 100644 index 0000000..2214c67 --- /dev/null +++ b/scripts/message_bus/controller_message_bus.gd @@ -0,0 +1,25 @@ +class_name ControllerMessageBus extends Node + + + +var message: Callable = Callable(self, "_message") +var message_to: Callable = Callable(self, "_message_to") +var message_to_selected: Callable = Callable(self, "_message_to_selected") +var register_controller: Callable = Callable(self, "_register_controller") +var unregister_controller: Callable = Callable(self, "_unregister_controller") + + +func _message(_event: BaseEvent): + assert(false, "Controller Message Bus 'message' must be overriden by Controller Manager...") + +func _message_to(_ename: String, _event: BaseEvent): + assert(false, "Controller Message Bus 'message_to' must be overriden by Controller Manager...") + +func _message_to_selected(_ename: Array, _event: BaseEvent): + assert(false, "Controller Message Bus 'message_to_selected' must be overriden by Controller Manager...") + +func _register_controller(_ename: String, _controller: BaseController): + assert(false, "Controller Message Bus 'register_controller' must be overriden by Controller Manager...") + +func _unregister_controller(_ename: String): + assert(false, "Controller Message Bus 'unregister_controller' must be overriden by Controller Manager...") diff --git a/scripts/message_bus/controller_message_bus.gd.uid b/scripts/message_bus/controller_message_bus.gd.uid new file mode 100644 index 0000000..452195c --- /dev/null +++ b/scripts/message_bus/controller_message_bus.gd.uid @@ -0,0 +1 @@ +uid://cgv5ev5tk7kqk diff --git a/scripts/message_bus/events/base_create_jet_event.gd b/scripts/message_bus/events/base_create_jet_event.gd new file mode 100644 index 0000000..c74eb0e --- /dev/null +++ b/scripts/message_bus/events/base_create_jet_event.gd @@ -0,0 +1 @@ +class_name BaseCreateJetEvent extends BaseFactoryEvent diff --git a/scripts/message_bus/events/base_create_jet_event.gd.uid b/scripts/message_bus/events/base_create_jet_event.gd.uid new file mode 100644 index 0000000..a636753 --- /dev/null +++ b/scripts/message_bus/events/base_create_jet_event.gd.uid @@ -0,0 +1 @@ +uid://bsjs01g58nv7h diff --git a/scripts/message_bus/events/base_event.gd b/scripts/message_bus/events/base_event.gd new file mode 100644 index 0000000..e1eb7b5 --- /dev/null +++ b/scripts/message_bus/events/base_event.gd @@ -0,0 +1 @@ +class_name BaseEvent extends Node diff --git a/scripts/message_bus/events/base_event.gd.uid b/scripts/message_bus/events/base_event.gd.uid new file mode 100644 index 0000000..d5e4065 --- /dev/null +++ b/scripts/message_bus/events/base_event.gd.uid @@ -0,0 +1 @@ +uid://bpd4j7rj2xe0j diff --git a/scripts/message_bus/events/base_factory_event.gd b/scripts/message_bus/events/base_factory_event.gd new file mode 100644 index 0000000..e0a7121 --- /dev/null +++ b/scripts/message_bus/events/base_factory_event.gd @@ -0,0 +1 @@ +class_name BaseFactoryEvent extends BaseEvent diff --git a/scripts/message_bus/events/base_factory_event.gd.uid b/scripts/message_bus/events/base_factory_event.gd.uid new file mode 100644 index 0000000..d1890d6 --- /dev/null +++ b/scripts/message_bus/events/base_factory_event.gd.uid @@ -0,0 +1 @@ +uid://87yd8iurl2af diff --git a/scripts/message_bus/events/create_allies_jet_event.gd b/scripts/message_bus/events/create_allies_jet_event.gd new file mode 100644 index 0000000..27346e1 --- /dev/null +++ b/scripts/message_bus/events/create_allies_jet_event.gd @@ -0,0 +1 @@ +class_name CreateAlliesJetEvent extends BaseCreateJetEvent diff --git a/scripts/message_bus/events/create_allies_jet_event.gd.uid b/scripts/message_bus/events/create_allies_jet_event.gd.uid new file mode 100644 index 0000000..34ea2ee --- /dev/null +++ b/scripts/message_bus/events/create_allies_jet_event.gd.uid @@ -0,0 +1 @@ +uid://bnvkuhn12sq16 diff --git a/scripts/message_bus/events/create_axis_jet_event.gd b/scripts/message_bus/events/create_axis_jet_event.gd new file mode 100644 index 0000000..e975492 --- /dev/null +++ b/scripts/message_bus/events/create_axis_jet_event.gd @@ -0,0 +1 @@ +class_name CreateAxisJetEvent extends BaseCreateJetEvent diff --git a/scripts/message_bus/events/create_axis_jet_event.gd.uid b/scripts/message_bus/events/create_axis_jet_event.gd.uid new file mode 100644 index 0000000..6fa154b --- /dev/null +++ b/scripts/message_bus/events/create_axis_jet_event.gd.uid @@ -0,0 +1 @@ +uid://b1pxjdwfxur45 diff --git a/scripts/message_bus/events/create_neutral_jet_event.gd b/scripts/message_bus/events/create_neutral_jet_event.gd new file mode 100644 index 0000000..61a77bc --- /dev/null +++ b/scripts/message_bus/events/create_neutral_jet_event.gd @@ -0,0 +1 @@ +class_name CreateNeutralJetEvent extends BaseCreateJetEvent diff --git a/scripts/message_bus/events/create_neutral_jet_event.gd.uid b/scripts/message_bus/events/create_neutral_jet_event.gd.uid new file mode 100644 index 0000000..d5e8f67 --- /dev/null +++ b/scripts/message_bus/events/create_neutral_jet_event.gd.uid @@ -0,0 +1 @@ +uid://ml1cwry7qnxa diff --git a/scripts/message_bus/events/game_ready_event.gd b/scripts/message_bus/events/game_ready_event.gd new file mode 100644 index 0000000..151651e --- /dev/null +++ b/scripts/message_bus/events/game_ready_event.gd @@ -0,0 +1 @@ +class_name GameReadyEvent extends BaseEvent diff --git a/scripts/message_bus/events/game_ready_event.gd.uid b/scripts/message_bus/events/game_ready_event.gd.uid new file mode 100644 index 0000000..ff5f297 --- /dev/null +++ b/scripts/message_bus/events/game_ready_event.gd.uid @@ -0,0 +1 @@ +uid://6i1gnfxc83tx diff --git a/scripts/message_bus/message_bus.gd b/scripts/message_bus/message_bus.gd new file mode 100644 index 0000000..91c1e8e --- /dev/null +++ b/scripts/message_bus/message_bus.gd @@ -0,0 +1,9 @@ +class_name MessageBus extends Node + + + +func register_listener(listener) -> void: + pass + +func unregister_listener(listener) -> void: + pass diff --git a/scripts/message_bus/message_bus.gd.uid b/scripts/message_bus/message_bus.gd.uid new file mode 100644 index 0000000..6c8504c --- /dev/null +++ b/scripts/message_bus/message_bus.gd.uid @@ -0,0 +1 @@ +uid://gros71i53nx8 diff --git a/scripts/message_bus/message_bus.tscn b/scripts/message_bus/message_bus.tscn new file mode 100644 index 0000000..164d1bd --- /dev/null +++ b/scripts/message_bus/message_bus.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://k82r6e6quh5l"] + +[ext_resource type="Script" uid="uid://gros71i53nx8" path="res://scripts/message_bus/message_bus.gd" id="1_kwdl0"] + +[node name="message_bus" type="Node"] +script = ExtResource("1_kwdl0")