#nullable enable using System; using Robust.Shared.GameObjects; using Robust.Shared.Maths; using Robust.Shared.Serialization; namespace Content.Shared.Solar { public class SharedSolarControlConsoleComponent : Component { public override string Name => "SolarControlConsole"; } [Serializable, NetSerializable] public class SolarControlConsoleBoundInterfaceState : BoundUserInterfaceState { /// /// The target rotation of the panels in radians. /// public Angle Rotation; /// /// The target velocity of the panels in radians/minute. /// public Angle AngularVelocity; /// /// The total amount of power the panels are supplying. /// public float OutputPower; /// /// The current sun angle. /// public Angle TowardsSun; public SolarControlConsoleBoundInterfaceState(Angle r, Angle vm, float p, Angle tw) { Rotation = r; AngularVelocity = vm; OutputPower = p; TowardsSun = tw; } } [Serializable, NetSerializable] public sealed class SolarControlConsoleAdjustMessage : BoundUserInterfaceMessage { /// /// New target rotation of the panels in radians. /// public Angle Rotation; /// /// New target velocity of the panels in radians/second. /// public Angle AngularVelocity; } [Serializable, NetSerializable] public enum SolarControlConsoleUiKey { Key } }