Refactored to be controller centric; added message buss pattern with early support eent types

This commit is contained in:
2026-10-24 21:41:44 -05:00
parent d70d4de95e
commit 85155df097
49 changed files with 234 additions and 33 deletions
@@ -0,0 +1 @@
class_name FactoryBase extends Node
@@ -0,0 +1 @@
uid://cwip0ysw4l6qp
@@ -0,0 +1,65 @@
class_name JetFactory extends FactoryBase
const JET = preload("res://scenes/jet.tscn")
func _ready() -> void:
pass
func _get_jet_type(faction: int) -> Jet:
var jet: Jet = null
if faction == Globals.Faction.ALLIES:
jet = create_allies_jet()
jet.name = Globals.Faction.keys()[Globals.Faction.ALLIES] + "_JET"
elif faction == Globals.Faction.AXIS:
jet = create_axis_jet()
jet.name = Globals.Faction.keys()[Globals.Faction.AXIS] + "_JET"
elif faction == Globals.Faction.NEUTRAL:
jet = create_neutral_jet()
jet.name = Globals.Faction.keys()[Globals.Faction.NEUTRAL] + "_JET"
else:
jet = create_neutral_jet()
get_tree().root.add_child.call_deferred(jet)
return jet
func create_player_jet(faction: int = 0) -> Jet:
var jet: Jet = _get_jet_type(faction)
jet.set_as_player.call_deferred()
return jet
func create_cpu_jet(faction: int = 0) -> Jet:
var jet = _get_jet_type(faction)
jet.set_as_cpu.call_deferred()
return jet
func create_neutral_jet() -> Jet:
return create_jet_frame(
Globals.Faction.NEUTRAL, EaglePlus.new()
)
func create_allies_jet() -> Jet:
return create_jet_frame(
Globals.Faction.ALLIES, EaglePlus.new()
)
func create_axis_jet() -> Jet:
return create_jet_frame(
Globals.Faction.AXIS, SakerFalcon.new()
)
func create_jet_frame(faction: Globals.Faction, frame: BaseJet) -> Jet:
var jet = JET.instantiate()
jet.add_child( frame.MODEL.instantiate() )
jet.faction = faction
jet.control_frame = frame
return jet
@@ -0,0 +1 @@
uid://c6b0hhfg0xdi4
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dk32bn35qku60"]
[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")