class_name JetFactory extends Node 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() 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 = await _get_jet_type(faction) jet.set_as_player() return jet func create_cpu_jet(faction: int = 0) -> Jet: var jet = await _get_jet_type(faction) jet.set_as_cpu() 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