* 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
61 lines
1.5 KiB
C#
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
|
|
}
|
|
}
|