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() 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() return create_neutral_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 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 jet.set_as_cpu() return jet func create_neutral_jet() -> Jet: var jet = JET.new() jet.add_child( NEUTRAL_JET.MODEL.instantiate() ) return jet func create_allies_jet() -> Jet: var jet = JET.instantiate() jet.add_child( ALLIES_JET.MODEL.instantiate() ) return jet func create_axis_jet() -> Jet: var jet = JET.instantiate() jet.add_child( AXIS_JET.MODEL.instantiate() ) return jet