[Sci] Non-destructive XenoArch Research (#15398)
* Non-destructive XenoArch research * nerf the price * Points -> Extract
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user