diff --git a/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs b/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs index 3765d45fa2..aaeaf538f3 100644 --- a/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs +++ b/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs @@ -19,14 +19,9 @@ namespace Content.Client.AME.UI { base.Open(); - _window = new AMEWindow(); + _window = new AMEWindow(this); _window.OnClose += Close; _window.OpenCentered(); - - _window.EjectButton.OnPressed += _ => ButtonPressed(UiButton.Eject); - _window.ToggleInjection.OnPressed += _ => ButtonPressed(UiButton.ToggleInjection); - _window.IncreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.IncreaseFuel); - _window.DecreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.DecreaseFuel); } /// @@ -44,7 +39,7 @@ namespace Content.Client.AME.UI _window?.UpdateState(castState); //Update window state } - private void ButtonPressed(UiButton button, int dispenseIndex = -1) + public void ButtonPressed(UiButton button, int dispenseIndex = -1) { SendMessage(new UiButtonPressedMessage(button)); } diff --git a/Content.Client/AME/UI/AMEWindow.cs b/Content.Client/AME/UI/AMEWindow.cs deleted file mode 100644 index e9104e6f67..0000000000 --- a/Content.Client/AME/UI/AMEWindow.cs +++ /dev/null @@ -1,173 +0,0 @@ -using Content.Client.Stylesheets; -using Robust.Client.UserInterface; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using static Content.Shared.AME.SharedAMEControllerComponent; -using static Robust.Client.UserInterface.Controls.BoxContainer; - -namespace Content.Client.AME.UI -{ - public class AMEWindow : SS14Window - { - public Label InjectionStatus { get; set; } - public Button EjectButton { get; set; } - public Button ToggleInjection { get; set; } - public Button IncreaseFuelButton { get; set; } - public Button DecreaseFuelButton { get; set; } - public ProgressBar? FuelMeter { get; set; } - public Label FuelAmount { get; set; } - public Label InjectionAmount { get; set; } - public Label CoreCount { get; set; } - - - public AMEWindow() - { - IoCManager.InjectDependencies(this); - - Title = Loc.GetString("ame-window-title"); - - MinSize = SetSize = (250, 250); - - Contents.AddChild(new BoxContainer - { - Orientation = LayoutOrientation.Vertical, - Children = - { - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-engine-status-label") + " "}, - (InjectionStatus = new Label {Text = Loc.GetString("ame-window-engine-injection-status-not-injecting-label")}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (ToggleInjection = new Button {Text = Loc.GetString("ame-window-toggle-injection-button"), StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-fuel-status-label") + " "}, - (FuelAmount = new Label {Text = Loc.GetString("ame-window-fuel-not-inserted-text")}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (EjectButton = new Button {Text = Loc.GetString("ame-window-eject-button"), StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-injection-amount-label") + " "}, - (InjectionAmount = new Label {Text = "0"}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (IncreaseFuelButton = new Button {Text = Loc.GetString("ame-window-increase-fuel-button"), StyleClasses = {StyleBase.ButtonOpenRight}}), - (DecreaseFuelButton = new Button {Text = Loc.GetString("ame-window-decrease-fuel-button"), StyleClasses = {StyleBase.ButtonOpenLeft}}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label { Text = Loc.GetString("ame-window-core-count-label") + " "}, - (CoreCount = new Label { Text = "0"}), - } - } - } - }); - } - - /// - /// This searches recursively through all the children of "parent" - /// and sets the Disabled value of any buttons found to "val" - /// - /// The control which childrens get searched - /// The value to which disabled gets set - private void SetButtonDisabledRecursive(Control parent, bool val) - { - foreach (var child in parent.Children) - { - if (child is Button but) - { - but.Disabled = val; - continue; - } - - if (child.Children != null) - { - SetButtonDisabledRecursive(child, val); - } - } - } - - /// - /// 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) - { - 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}"; - } - } -} diff --git a/Content.Client/AME/UI/AMEWindow.xaml b/Content.Client/AME/UI/AMEWindow.xaml new file mode 100644 index 0000000000..bc1e7d9ded --- /dev/null +++ b/Content.Client/AME/UI/AMEWindow.xaml @@ -0,0 +1,46 @@ + + + + + +