Files
tbd-station-14/Content.Shared/Solar/SharedSolarControlConsoleComponent.cs
20kdc a2f5c953dc Refactoring of solar control console (#4072)
* Refactor/fix client-side of solar control computer (introduce ComputerBoundUserInterface & fix bugs)

* Refactor server side of solar control computer (introduce BaseComputerUserInterfaceComponent)

* If you can't interact, then messages to computers are blocked.

* Add 'not powered' messages, migrate activation logic partially to an EntitySystem

* Move solar control console to a XAML UI

* Remove useless comment on UserInterfaceKey

* BaseComputerUserInterfaceComponent: Remove EnsureComponent<PowerReceiver>, it's not necessary

* Fix solar panel occlusion check direction

* Solar Control Console refactors/etc. : Handle namespace renames
2021-06-17 00:49:02 +10:00

61 lines
1.5 KiB
C#

#nullable enable
using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
using Robust.Shared.Serialization;
namespace Content.Shared.Solar
{
[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
}
}