Prepare CPU Mode GOAP pattern; initial assign player event patterns

This commit is contained in:
2026-10-25 19:45:31 -05:00
parent cffc4de55f
commit 86434b26d5
10 changed files with 70 additions and 25 deletions
+4 -2
View File
@@ -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")]
-5
View File
@@ -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",
@@ -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()
@@ -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
+1 -1
View File
@@ -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
+11 -3
View File
@@ -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
@@ -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
@@ -0,0 +1 @@
uid://do03fjsunvw1l
@@ -0,0 +1 @@
class_name InitSpawnsLoadedEvent extends BaseEvent
@@ -0,0 +1 @@
uid://beylxjygmq0pn