Refactored jet factory; added ControllerCommand enum to remove magic strings

This commit is contained in:
2026-10-20 21:38:30 -05:00
parent 44e973f1f1
commit bf1623d771
11 changed files with 130 additions and 78 deletions
+31 -37
View File
@@ -1,69 +1,63 @@
class_name JetFactory extends Node
const JET = preload("res://scenes/jet.tscn")
var ALLIES_JET: EaglePlus = EaglePlus.new()
var AXIS_JET: SakerFalcon = SakerFalcon.new()
var NEUTRAL_JET: EaglePlus = EaglePlus.new()
const JET = preload("res://scenes/jet.tscn")
func _ready() -> void:
pass
func _get_jet_type(faction: int) -> Jet:
if faction == Globals.FACTION.ALLIES:
return create_allies_jet()
if faction == Globals.FACTION.AXIS:
return create_axis_jet()
if faction == Globals.FACTION.NEUTRAL:
return create_neutral_jet()
var jet: Jet = null
return create_neutral_jet()
if faction == Globals.Faction.ALLIES:
jet = create_allies_jet()
elif faction == Globals.Faction.AXIS:
jet = create_axis_jet()
elif faction == Globals.Faction.NEUTRAL:
jet = create_neutral_jet()
else:
jet = create_neutral_jet()
get_tree().root.add_child.call_deferred(jet)
await jet.ready
return jet
func create_player_jet(faction: int = 0) -> Jet:
var jet: Jet = _get_jet_type(faction)
get_tree().root.add_child.call_deferred(jet)
await jet.ready
var jet: Jet = await _get_jet_type(faction)
jet.set_as_player()
return jet
func create_cpu_jet(faction: int = 0) -> Jet:
var jet = _get_jet_type(faction)
get_tree().root.add_child.call_deferred(jet)
await jet.ready
var jet = await _get_jet_type(faction)
jet.set_as_cpu()
return jet
func create_neutral_jet() -> Jet:
var jet = JET.new()
jet.add_child( NEUTRAL_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.NEUTRAL
jet.control_frame = NEUTRAL_JET
return jet
return create_jet_frame(
Globals.Faction.NEUTRAL, EaglePlus.new()
)
func create_allies_jet() -> Jet:
var jet = JET.instantiate()
jet.add_child( ALLIES_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.ALLIES
jet.control_frame = ALLIES_JET
return 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( AXIS_JET.MODEL.instantiate() )
jet.faction = Globals.FACTION.AXIS
jet.control_frame = AXIS_JET
jet.add_child( frame.MODEL.instantiate() )
jet.faction = faction
jet.control_frame = frame
return jet