[Sci] Non-destructive XenoArch Research (#15398)

* Non-destructive XenoArch research

* nerf the price

* Points -> Extract
This commit is contained in:
Nemanja
2023-04-17 01:57:21 -04:00
committed by GitHub
parent adb6b168b7
commit 2a83a9bc17
11 changed files with 89 additions and 167 deletions

View File

@@ -3,7 +3,6 @@ using Content.Client.UserInterface.Controls;
using Content.Shared.Xenoarchaeology.Equipment;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility;
@@ -13,42 +12,20 @@ namespace Content.Client.Xenoarchaeology.Ui;
public sealed partial class AnalysisConsoleMenu : FancyWindow
{
[Dependency] private readonly IEntityManager _ent = default!;
public AnalysisDestroyWindow? AnalysisDestroyWindow;
public event Action<BaseButton.ButtonEventArgs>? OnServerSelectionButtonPressed;
public event Action<BaseButton.ButtonEventArgs>? OnScanButtonPressed;
public event Action<BaseButton.ButtonEventArgs>? OnPrintButtonPressed;
public event Action<BaseButton.ButtonEventArgs>? OnDestroyButtonPressed;
public event Action? OnServerSelectionButtonPressed;
public event Action? OnScanButtonPressed;
public event Action? OnPrintButtonPressed;
public event Action? OnDestroyButtonPressed;
public AnalysisConsoleMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
ServerSelectionButton.OnPressed += a => OnServerSelectionButtonPressed?.Invoke(a);
ScanButton.OnPressed += a => OnScanButtonPressed?.Invoke(a);
PrintButton.OnPressed += a => OnPrintButtonPressed?.Invoke(a);
DestroyButton.OnPressed += _ => OnDestroyButton();
}
private void OnDestroyButton()
{
// check if window is already open
if (AnalysisDestroyWindow is { IsOpen: true })
{
AnalysisDestroyWindow.MoveToFront();
return;
}
// open a new one
AnalysisDestroyWindow = new ();
AnalysisDestroyWindow.OpenCentered();
AnalysisDestroyWindow.OnYesButton += a =>
{
OnDestroyButtonPressed?.Invoke(a);
};
ServerSelectionButton.OnPressed += _ => OnServerSelectionButtonPressed?.Invoke();
ScanButton.OnPressed += _ => OnScanButtonPressed?.Invoke();
PrintButton.OnPressed += _ => OnPrintButtonPressed?.Invoke();
DestroyButton.OnPressed += _ => OnDestroyButtonPressed?.Invoke();
}
public void SetButtonsDisabled(AnalysisConsoleScanUpdateState state)
@@ -56,7 +33,7 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
ScanButton.Disabled = !state.CanScan;
PrintButton.Disabled = !state.CanPrint;
var disabled = !state.ServerConnected || !state.CanScan;
var disabled = !state.ServerConnected || !state.CanScan || state.PointAmount <= 0;
DestroyButton.Disabled = disabled;
@@ -128,12 +105,5 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
("seconds", (int) state.TotalTime.TotalSeconds - (int) state.TimeRemaining.TotalSeconds));
ProgressBar.Value = (float) state.TimeRemaining.Divide(state.TotalTime);
}
public override void Close()
{
base.Close();
AnalysisDestroyWindow?.Close();
}
}