2026-10-18 17:18:59 -05:00
|
|
|
class_name JetFactory extends Node
|
|
|
|
|
|
|
|
|
|
|
2026-10-20 21:38:30 -05:00
|
|
|
const JET = preload("res://scenes/jet.tscn")
|
2026-10-18 17:18:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
func _get_jet_type(faction: int) -> Jet:
|
2026-10-20 21:38:30 -05:00
|
|
|
var jet: Jet = null
|
2026-10-18 17:18:59 -05:00
|
|
|
|
2026-10-20 21:38:30 -05:00
|
|
|
if faction == Globals.Faction.ALLIES:
|
|
|
|
|
jet = create_allies_jet()
|
2026-10-21 01:42:31 -05:00
|
|
|
jet.name = Globals.Faction.keys()[Globals.Faction.ALLIES] + "_JET"
|
2026-10-20 21:38:30 -05:00
|
|
|
elif faction == Globals.Faction.AXIS:
|
|
|
|
|
jet = create_axis_jet()
|
2026-10-21 01:42:31 -05:00
|
|
|
jet.name = Globals.Faction.keys()[Globals.Faction.AXIS] + "_JET"
|
2026-10-20 21:38:30 -05:00
|
|
|
elif faction == Globals.Faction.NEUTRAL:
|
|
|
|
|
jet = create_neutral_jet()
|
2026-10-21 01:42:31 -05:00
|
|
|
jet.name = Globals.Faction.keys()[Globals.Faction.NEUTRAL] + "_JET"
|
2026-10-20 21:38:30 -05:00
|
|
|
else:
|
|
|
|
|
jet = create_neutral_jet()
|
2026-10-18 17:18:59 -05:00
|
|
|
|
2026-10-18 18:11:32 -05:00
|
|
|
get_tree().root.add_child.call_deferred(jet)
|
2026-10-20 21:38:30 -05:00
|
|
|
|
|
|
|
|
return jet
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func create_player_jet(faction: int = 0) -> Jet:
|
2026-10-21 01:42:31 -05:00
|
|
|
var jet: Jet = _get_jet_type(faction)
|
2026-10-18 18:11:32 -05:00
|
|
|
|
2026-10-21 01:42:31 -05:00
|
|
|
jet.set_as_player.call_deferred()
|
2026-10-18 17:18:59 -05:00
|
|
|
return jet
|
|
|
|
|
|
|
|
|
|
func create_cpu_jet(faction: int = 0) -> Jet:
|
2026-10-21 01:42:31 -05:00
|
|
|
var jet = _get_jet_type(faction)
|
2026-10-18 17:18:59 -05:00
|
|
|
|
2026-10-21 01:42:31 -05:00
|
|
|
jet.set_as_cpu.call_deferred()
|
2026-10-18 17:18:59 -05:00
|
|
|
return jet
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func create_neutral_jet() -> Jet:
|
2026-10-20 21:38:30 -05:00
|
|
|
return create_jet_frame(
|
|
|
|
|
Globals.Faction.NEUTRAL, EaglePlus.new()
|
|
|
|
|
)
|
2026-10-18 17:18:59 -05:00
|
|
|
|
|
|
|
|
func create_allies_jet() -> Jet:
|
2026-10-20 21:38:30 -05:00
|
|
|
return create_jet_frame(
|
|
|
|
|
Globals.Faction.ALLIES, EaglePlus.new()
|
|
|
|
|
)
|
2026-10-18 17:18:59 -05:00
|
|
|
|
|
|
|
|
func create_axis_jet() -> Jet:
|
2026-10-20 21:38:30 -05:00
|
|
|
return create_jet_frame(
|
|
|
|
|
Globals.Faction.AXIS, SakerFalcon.new()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func create_jet_frame(faction: Globals.Faction, frame: BaseJet) -> Jet:
|
2026-10-18 17:18:59 -05:00
|
|
|
var jet = JET.instantiate()
|
2026-10-18 22:58:58 -05:00
|
|
|
|
2026-10-20 21:38:30 -05:00
|
|
|
jet.add_child( frame.MODEL.instantiate() )
|
|
|
|
|
jet.faction = faction
|
|
|
|
|
jet.control_frame = frame
|
2026-10-18 22:58:58 -05:00
|
|
|
|
2026-10-18 17:18:59 -05:00
|
|
|
return jet
|