class_name Jet extends Node3D const ALLIES_SIDE: int = 0 const ALLY_JET = preload("uid://cfcid44xnsbdt") const AXIS_SIDE: int = 1 const AXIS_JET = preload("uid://d07rxx62esueq") @export_enum("CPU:0", "PLAYER:1") var control_mode: int = JetController.CPU_MODE @export_enum("Allies:0", "Axis:1") var CONFLICT_SIDE: int = ALLIES_SIDE const JET_MODEL: Dictionary = { ALLIES_SIDE: ALLY_JET, AXIS_SIDE: AXIS_JET } @onready var camera: Camera3D = $camera @onready var controller: JetController = $controller func _ready() -> void: load_jet(CONFLICT_SIDE) if JetController.CPU_MODE == control_mode: set_as_cpu() elif JetController.PLAYER_MODE == control_mode: set_as_player() func _process(delta: float) -> void: var action = controller.process(delta) if not action: return func _physics_process(delta: float) -> void: controller.physics_process(delta) func _unhandled_input(event: InputEvent) -> void: controller.unhandled_input(event) func load_jet(type: int = CONFLICT_SIDE): add_child( JET_MODEL[type].instantiate() ) func set_as_player(): camera.current = true controller.control_mode = controller.PLAYER_MODE func set_as_cpu(): camera.current = false controller.control_mode = controller.CPU_MODE func pull_up(): pass func push_down(): pass func yaw_left(): pass func yaw_right(): pass func roll_left(): pass func roll_right(): pass