namespace Content.Server.Shuttles.Components { [RegisterComponent] public sealed class ShuttleComponent : Component { [ViewVariables] public bool Enabled = true; [ViewVariables] public Vector2[] CenterOfThrust = new Vector2[4]; /// /// Thrust gets multiplied by this value if it's for braking. /// public const float BrakeCoefficient = 1.5f; public const float MaxLinearVelocity = 20f; public const float MaxAngularVelocity = 4f; /// /// The cached thrust available for each cardinal direction /// [ViewVariables] public readonly float[] LinearThrust = new float[4]; /// /// The thrusters contributing to each direction for impulse. /// public readonly List[] LinearThrusters = new List[4]; /// /// The thrusters contributing to the angular impulse of the shuttle. /// public readonly List AngularThrusters = new(); [ViewVariables] public float AngularThrust = 0f; /// /// A bitmask of all the directions we are considered thrusting. /// [ViewVariables] public DirectionFlag ThrustDirections = DirectionFlag.None; } }