load jets to a collection; wire up cpu controller pattern

This commit is contained in:
2026-10-25 16:22:34 -05:00
parent 22413fabd5
commit cffc4de55f
16 changed files with 102 additions and 32 deletions
+2
View File
@@ -1,6 +1,8 @@
class_name BaseController extends Node
@export var jets_collection: JetsCollection
var controller_message_bus: ControllerMessageBus = null
+8 -6
View File
@@ -8,6 +8,14 @@ func _init() -> void:
_connect_signals()
_bind_callables()
func _ready() -> void:
var timer = get_tree().create_timer(0.200)
await timer.timeout
controller_message_bus.message.call(
GameReadyEvent.new()
)
func _connect_signals() -> void:
connect("child_entered_tree", register_controller)
connect("child_exiting_tree", unregister_controller)
@@ -18,12 +26,6 @@ func _bind_callables() -> void:
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)
@@ -0,0 +1,18 @@
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:
continue
set_jet_action(jet)
func set_jet_action(jet: Jet) -> void:
jet.controller.cpu.yaw_left()
@@ -0,0 +1 @@
uid://u1tiecau7p8g
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://gb85fimcn0ya"]
[ext_resource type="Script" uid="uid://u1tiecau7p8g" path="res://scripts/controllers/cpu_system/cpu_controller.gd" id="1_0c7ho"]
[node name="cpu_controller" type="Node"]
script = ExtResource("1_0c7ho")
@@ -22,8 +22,6 @@ func _get_jet_type(faction: int) -> Jet:
else:
jet = create_neutral_jet()
get_tree().root.add_child.call_deferred(jet)
return jet
@@ -40,6 +40,8 @@ func spawn_jet(faction: Globals.Faction, callback: Callable) -> Jet:
if not spawner.is_available: continue
jet = callback.call(faction)
jets_collection.add_child.call(jet)
spawner.align_to_position.call_deferred(jet)
return jet
@@ -16,9 +16,6 @@ func _debug_setup() -> void:
visible = false
return
var timer = get_tree().create_timer(0.200)
await timer.timeout
visible = true
var visual_node: MeshInstance3D = get_node("visual")
var visual_node2: MeshInstance3D = get_node("visual_direction")