| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System.Linq;
- using Content.Client.UserInterface;
- using Content.Shared.Ame.Components;
- using Robust.Client.AutoGenerated;
- using Robust.Client.UserInterface.CustomControls;
- using Robust.Client.UserInterface.XAML;
- namespace Content.Client.Ame.UI
- {
- [GenerateTypedNameReferences]
- public sealed partial class AmeWindow : DefaultWindow
- {
- public event Action<UiButton>? OnAmeButton;
- public AmeWindow()
- {
- RobustXamlLoader.Load(this);
- IoCManager.InjectDependencies(this);
- EjectButton.OnPressed += _ => OnAmeButton?.Invoke(UiButton.Eject);
- ToggleInjection.OnPressed += _ => OnAmeButton?.Invoke(UiButton.ToggleInjection);
- IncreaseFuelButton.OnPressed += _ => OnAmeButton?.Invoke(UiButton.IncreaseFuel);
- DecreaseFuelButton.OnPressed += _ => OnAmeButton?.Invoke(UiButton.DecreaseFuel);
- }
- /// <summary>
- /// Update the UI state when new state data is received from the server.
- /// </summary>
- /// <param name="state">State data sent by the server.</param>
- public void UpdateState(BoundUserInterfaceState state)
- {
- var castState = (AmeControllerBoundUserInterfaceState) state;
- // Disable all buttons if not powered
- if (Contents.Children.Any())
- {
- ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
- EjectButton.Disabled = false;
- }
- if (!castState.HasFuelJar)
- {
- EjectButton.Disabled = true;
- ToggleInjection.Disabled = true;
- FuelAmount.Text = Loc.GetString("ame-window-fuel-not-inserted-text");
- }
- else
- {
- EjectButton.Disabled = false;
- ToggleInjection.Disabled = false;
- FuelAmount.Text = $"{castState.FuelAmount}";
- }
- if (!castState.IsMaster)
- {
- ToggleInjection.Disabled = true;
- }
- if (!castState.Injecting)
- {
- InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-not-injecting-label") + " ";
- }
- else
- {
- InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-injecting-label") + " ";
- }
- CoreCount.Text = $"{castState.CoreCount}";
- InjectionAmount.Text = $"{castState.InjectionAmount}";
- // format power statistics to pretty numbers
- CurrentPowerSupply.Text = $"{castState.CurrentPowerSupply:N1}";
- TargetedPowerSupply.Text = $"{castState.TargetedPowerSupply:N1}";
- }
- }
- }
|