| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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.CreateWindowCenteredLeft<GeneratorWindow>();
- _window.SetEntity(Owner);
- _window.OnState += args =>
- {
- if (args)
- {
- Start();
- }
- else
- {
- Stop();
- }
- };
- _window.OnPower += SetTargetPower;
- _window.OnEjectFuel += EjectFuel;
- _window.OnSwitchOutput += SwitchOutput;
- }
- 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());
- }
- }
|