Solar panels occlusion and tracking (#961)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameObjects.Components.UserInterface;
|
||||
using Robust.Shared.Serialization;
|
||||
using Robust.Shared.Maths;
|
||||
|
||||
namespace Content.Shared.GameObjects.Components.Power
|
||||
{
|
||||
public class SharedSolarControlConsoleComponent : Component
|
||||
{
|
||||
public override string Name => "SolarControlConsole";
|
||||
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public class SolarControlConsoleBoundInterfaceState : BoundUserInterfaceState
|
||||
{
|
||||
/// <summary>
|
||||
/// The target rotation of the panels in radians.
|
||||
/// </summary>
|
||||
public Angle Rotation;
|
||||
|
||||
/// <summary>
|
||||
/// The target velocity of the panels in radians/minute.
|
||||
/// </summary>
|
||||
public Angle AngularVelocity;
|
||||
|
||||
/// <summary>
|
||||
/// The total amount of power the panels are supplying.
|
||||
/// </summary>
|
||||
public float OutputPower;
|
||||
|
||||
/// <summary>
|
||||
/// The current sun angle.
|
||||
/// </summary>
|
||||
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
|
||||
{
|
||||
/// <summary>
|
||||
/// New target rotation of the panels in radians.
|
||||
/// </summary>
|
||||
public Angle Rotation;
|
||||
|
||||
/// <summary>
|
||||
/// New target velocity of the panels in radians/second.
|
||||
/// </summary>
|
||||
public Angle AngularVelocity;
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public enum SolarControlConsoleUiKey
|
||||
{
|
||||
Key
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user