Files
wwdpublic/Content.Client/Nyanotrasen/ReverseEngineering/ReverseEngineeringMachineBoundUserInterface.cs
PHCodes 20f8772242 Reverse Engineering. (#91)
* Reverse Engineering.

It's engineering. It's reversed. I implemented Bluespace Crystals to get everything to work. I may have missed some recipes in the Lathes. Otherwise, everything seems like it just works. Blukie suits baby.

* Fixing the Bonus mechanic out of testing.

* Fixing Attributions.

* Fixing Attributions again because it won't let me put in multiple links into one string.

* Not dealing with Techfabs right now, integration tests will not pass with them.

* Added appropriate comments

---------

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
2023-10-03 22:54:23 +00:00

76 lines
2.0 KiB
C#

using Content.Shared.ReverseEngineering;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
namespace Content.Client.Nyanotrasen.ReverseEngineering;
[UsedImplicitly]
public sealed class ReverseEngineeringMachineBoundUserInterface : BoundUserInterface
{
private ReverseEngineeringMachineMenu? _revMenu;
public ReverseEngineeringMachineBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
}
protected override void Open()
{
base.Open();
_revMenu = new ReverseEngineeringMachineMenu();
_revMenu.OnClose += Close;
_revMenu.OpenCentered();
_revMenu.OnScanButtonPressed += _ =>
{
SendMessage(new ReverseEngineeringMachineScanButtonPressedMessage());
};
_revMenu.OnSafetyButtonToggled += safetyArgs =>
{
SendMessage(new ReverseEngineeringMachineSafetyButtonToggledMessage(safetyArgs.Pressed));
};
_revMenu.OnAutoScanButtonToggled += autoArgs =>
{
SendMessage(new ReverseEngineeringMachineAutoScanButtonToggledMessage(autoArgs.Pressed));
};
_revMenu.OnStopButtonPressed += _ =>
{
SendMessage(new ReverseEngineeringMachineStopButtonPressedMessage());
};
_revMenu.OnEjectButtonPressed += _ =>
{
SendMessage(new ReverseEngineeringMachineEjectButtonPressedMessage());
};
}
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
switch (state)
{
case ReverseEngineeringMachineScanUpdateState msg:
_revMenu?.SetButtonsDisabled(msg);
_revMenu?.UpdateInformationDisplay(msg);
_revMenu?.UpdateProbeTickProgressBar(msg);
break;
}
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;
_revMenu?.Dispose();
}
}