From 86434b26d59ca0c1ed19e15a83dfc73879803540 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sun, 25 Oct 2026 19:45:31 -0500 Subject: [PATCH] Prepare CPU Mode GOAP pattern; initial assign player event patterns --- game.tscn | 6 +++-- scenes/jet.gd | 5 ---- .../controllers/cpu_system/cpu_controller.gd | 26 +++++++++++++------ .../game_system/game_controller.gd | 25 +++++++++++++----- scripts/jet_controls/controller.gd | 2 +- scripts/jet_controls/cpu.gd | 14 +++++++--- .../message_bus/events/assign_player_jet.gd | 14 ++++++++++ .../events/assign_player_jet.gd.uid | 1 + .../events/init_spawns_loaded_event.gd | 1 + .../events/init_spawns_loaded_event.gd.uid | 1 + 10 files changed, 70 insertions(+), 25 deletions(-) create mode 100644 scripts/message_bus/events/assign_player_jet.gd create mode 100644 scripts/message_bus/events/assign_player_jet.gd.uid create mode 100644 scripts/message_bus/events/init_spawns_loaded_event.gd create mode 100644 scripts/message_bus/events/init_spawns_loaded_event.gd.uid diff --git a/game.tscn b/game.tscn index 58053b8..88e0867 100644 --- a/game.tscn +++ b/game.tscn @@ -24,7 +24,8 @@ far = 8000.0 [node name="controller_manager" parent="." instance=ExtResource("2_j5wjh")] -[node name="factory_controller" parent="controller_manager" instance=ExtResource("2_ryrav")] +[node name="factory_controller" parent="controller_manager" node_paths=PackedStringArray("jets_collection") instance=ExtResource("2_ryrav")] +jets_collection = NodePath("../../jets_collection") [node name="jet_factory" parent="controller_manager/factory_controller" instance=ExtResource("2_e2o6t")] @@ -43,7 +44,8 @@ faction = 1 [node name="spawner3" parent="controller_manager/spawn_controller" instance=ExtResource("5_ryrav")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 84.06215, 2.5178223, -76.95647) -[node name="game_controller" parent="controller_manager" instance=ExtResource("7_vef74")] +[node name="game_controller" parent="controller_manager" node_paths=PackedStringArray("jets_collection") instance=ExtResource("7_vef74")] +jets_collection = NodePath("../../jets_collection") [node name="game_mode" parent="controller_manager/game_controller" instance=ExtResource("3_fc0e3")] diff --git a/scenes/jet.gd b/scenes/jet.gd index 962f63b..51a620d 100644 --- a/scenes/jet.gd +++ b/scenes/jet.gd @@ -1,11 +1,6 @@ class_name Jet extends CharacterBody3D -@export_enum( - "CPU:0", - "PLAYER:1" -) var control_mode: int = Globals.ControlMode.CPU_MODE - @export_enum( "Allies:0", "Axis:1", diff --git a/scripts/controllers/cpu_system/cpu_controller.gd b/scripts/controllers/cpu_system/cpu_controller.gd index 7f71ea1..f7b5fed 100644 --- a/scripts/controllers/cpu_system/cpu_controller.gd +++ b/scripts/controllers/cpu_system/cpu_controller.gd @@ -1,18 +1,28 @@ class_name CPUController extends BaseController -func _controller_message(_event: BaseEvent) -> void: - pass - - func _process(_delta: float) -> void: if not jets_collection: return for jet: Jet in jets_collection.get_children(): - if jet.controller.control_mode == Globals.ControlMode.PLAYER_MODE: + if Globals.ControlMode.PLAYER_MODE == jet.controller.control_mode: continue - set_jet_action(jet) + process_jet_plan(jet.controller.cpu) -func set_jet_action(jet: Jet) -> void: - jet.controller.cpu.yaw_left() +func _controller_message(event: BaseEvent) -> void: + if event is InitSpawnsLoadedEvent: + handle_init_spawns_loaded_event() + +func handle_init_spawns_loaded_event() -> void: + for jet: Jet in jets_collection.get_children(): + if Globals.ControlMode.PLAYER_MODE == jet.controller.control_mode: + continue + + create_jet_plan(jet) + +func create_jet_plan(jet: Jet) -> void: + print(jet) + +func process_jet_plan(jet: CPU) -> void: + jet.yaw_left() diff --git a/scripts/controllers/game_system/game_controller.gd b/scripts/controllers/game_system/game_controller.gd index 45c5fef..8bd37dd 100644 --- a/scripts/controllers/game_system/game_controller.gd +++ b/scripts/controllers/game_system/game_controller.gd @@ -4,12 +4,25 @@ class_name GameController extends BaseController func _controller_message(event: BaseEvent) -> void: if event is GameReadyEvent: handle_game_ready_event() + elif event is AssignPlayerJet: + assign_player_jet(event) func handle_game_ready_event() -> void: - controller_message_bus.message.call( - CreateAlliesJetEvent.new() - ) + controller_message_bus.message.call( CreateAlliesJetEvent.new() ) + controller_message_bus.message.call( CreateAxisJetEvent.new() ) - controller_message_bus.message.call( - CreateAxisJetEvent.new() - ) + var event: AssignPlayerJet = AssignPlayerJet.new() + event.set_as_allies() + + controller_message_bus.message.call_deferred(event) + controller_message_bus.message.call_deferred( InitSpawnsLoadedEvent.new() ) + + +func assign_player_jet(event: AssignPlayerJet) -> void: + for jet: Jet in jets_collection.get_children(): + if not jet.faction == event.faction: continue + if jet.controller.control_mode == Globals.ControlMode.PLAYER_MODE: continue + + jet.set_as_player() + + break diff --git a/scripts/jet_controls/controller.gd b/scripts/jet_controls/controller.gd index d710b00..b03dde9 100644 --- a/scripts/jet_controls/controller.gd +++ b/scripts/jet_controls/controller.gd @@ -4,7 +4,7 @@ class_name JetController extends Node @export_enum( "CPU:0", "PLAYER:1" -) var control_mode: int = Globals.ControlMode.PLAYER_MODE +) var control_mode: int = Globals.ControlMode.CPU_MODE @onready var cpu: CPU = $cpu @onready var player: Player = $player diff --git a/scripts/jet_controls/cpu.gd b/scripts/jet_controls/cpu.gd index 4778b36..7dfe054 100644 --- a/scripts/jet_controls/cpu.gd +++ b/scripts/jet_controls/cpu.gd @@ -1,7 +1,8 @@ class_name CPU extends Node -var command: Globals.ControllerCommand = Globals.ControllerCommand.NONE +var command: Globals.ControllerCommand = Globals.ControllerCommand.NONE +var throttle: Globals.ControllerCommand = Globals.ControllerCommand.NONE func process(_delta: float) -> Globals.ControllerCommand: @@ -13,6 +14,7 @@ func physics_process(_delta: float) -> Globals.ControllerCommand: func unhandled_input(_event: InputEvent) -> Globals.ControllerCommand: return command + func pull_up() -> void: command = Globals.ControllerCommand.PULL_UP @@ -32,7 +34,13 @@ func roll_right() -> void: command = Globals.ControllerCommand.ROLL_RIGHT func throttle_up() -> void: - command = Globals.ControllerCommand.THROTTLE_UP + throttle = Globals.ControllerCommand.THROTTLE_UP func throttle_down() -> void: - command = Globals.ControllerCommand.THROTTLE_DOWN + throttle = Globals.ControllerCommand.THROTTLE_DOWN + +func throttle_neutral() -> void: + throttle = Globals.ControllerCommand.NONE + +func no_action() -> void: + command = Globals.ControllerCommand.NONE diff --git a/scripts/message_bus/events/assign_player_jet.gd b/scripts/message_bus/events/assign_player_jet.gd new file mode 100644 index 0000000..f34fd7e --- /dev/null +++ b/scripts/message_bus/events/assign_player_jet.gd @@ -0,0 +1,14 @@ +class_name AssignPlayerJet extends BaseEvent + + +var faction: Globals.Faction + + +func set_as_allies() -> void: + faction = Globals.Faction.ALLIES + +func set_as_axis() -> void: + faction = Globals.Faction.AXIS + +func set_as_neutral() -> void: + faction = Globals.Faction.NEUTRAL diff --git a/scripts/message_bus/events/assign_player_jet.gd.uid b/scripts/message_bus/events/assign_player_jet.gd.uid new file mode 100644 index 0000000..83b4c7c --- /dev/null +++ b/scripts/message_bus/events/assign_player_jet.gd.uid @@ -0,0 +1 @@ +uid://do03fjsunvw1l diff --git a/scripts/message_bus/events/init_spawns_loaded_event.gd b/scripts/message_bus/events/init_spawns_loaded_event.gd new file mode 100644 index 0000000..32c82c2 --- /dev/null +++ b/scripts/message_bus/events/init_spawns_loaded_event.gd @@ -0,0 +1 @@ +class_name InitSpawnsLoadedEvent extends BaseEvent diff --git a/scripts/message_bus/events/init_spawns_loaded_event.gd.uid b/scripts/message_bus/events/init_spawns_loaded_event.gd.uid new file mode 100644 index 0000000..886e0b4 --- /dev/null +++ b/scripts/message_bus/events/init_spawns_loaded_event.gd.uid @@ -0,0 +1 @@ +uid://beylxjygmq0pn