class_name ShipController extends Node # Base class for anything that drives a Ship: local player input, an AI # policy, or network replication. The ship pulls exactly one action per # physics tick, so controllers stay deterministic and ordering-free. # The base implementation returns a zero action — a ship with a base # controller (or none) is inert but still physically simulated. func get_action() -> ShipAction: return ShipAction.new()