* Reapply "Remove some BUI boilerplate" (#30214)
This reverts commit cb0ba66be3.
* Fix gas tank
* Fix PA
* Fix microwave
* Comms console underwrap
* Fix rcd
* log wehs
74 lines
1.6 KiB
C#
74 lines
1.6 KiB
C#
using Content.Shared.Power.Generator;
|
|
using JetBrains.Annotations;
|
|
using Robust.Client.GameObjects;
|
|
using Robust.Client.UserInterface;
|
|
|
|
namespace Content.Client.Power.Generator;
|
|
|
|
[UsedImplicitly]
|
|
public sealed class PortableGeneratorBoundUserInterface : BoundUserInterface
|
|
{
|
|
private GeneratorWindow? _window;
|
|
|
|
public PortableGeneratorBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
|
{
|
|
}
|
|
|
|
protected override void Open()
|
|
{
|
|
base.Open();
|
|
_window = this.CreateWindow<GeneratorWindow>();
|
|
_window.SetEntity(Owner);
|
|
_window.OnState += args =>
|
|
{
|
|
if (args)
|
|
{
|
|
Start();
|
|
}
|
|
else
|
|
{
|
|
Stop();
|
|
}
|
|
};
|
|
|
|
_window.OnPower += SetTargetPower;
|
|
_window.OnEjectFuel += EjectFuel;
|
|
_window.OnSwitchOutput += SwitchOutput;
|
|
|
|
_window.OpenCenteredLeft();
|
|
}
|
|
|
|
protected override void UpdateState(BoundUserInterfaceState state)
|
|
{
|
|
if (state is not PortableGeneratorComponentBuiState msg)
|
|
return;
|
|
|
|
_window?.Update(msg);
|
|
}
|
|
|
|
public void SetTargetPower(int target)
|
|
{
|
|
SendMessage(new PortableGeneratorSetTargetPowerMessage(target));
|
|
}
|
|
|
|
public void Start()
|
|
{
|
|
SendMessage(new PortableGeneratorStartMessage());
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
SendMessage(new PortableGeneratorStopMessage());
|
|
}
|
|
|
|
public void SwitchOutput()
|
|
{
|
|
SendMessage(new PortableGeneratorSwitchOutputMessage());
|
|
}
|
|
|
|
public void EjectFuel()
|
|
{
|
|
SendMessage(new PortableGeneratorEjectFuelMessage());
|
|
}
|
|
}
|