using Content.Client.UserInterface; using Content.Shared.Ame; 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 AmeWindow(AmeControllerBoundUserInterface ui) { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); EjectButton.OnPressed += _ => ui.ButtonPressed(UiButton.Eject); ToggleInjection.OnPressed += _ => ui.ButtonPressed(UiButton.ToggleInjection); IncreaseFuelButton.OnPressed += _ => ui.ButtonPressed(UiButton.IncreaseFuel); DecreaseFuelButton.OnPressed += _ => ui.ButtonPressed(UiButton.DecreaseFuel); } /// /// Update the UI state when new state data is received from the server. /// /// State data sent by the server. public void UpdateState(BoundUserInterfaceState state) { var castState = (AmeControllerBoundUserInterfaceState) state; // Disable all buttons if not powered if (Contents.Children != null) { 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}"; } } }