diff --git a/Content.Client/Gravity/GravityGeneratorVisualizer.cs b/Content.Client/Gravity/GravityGeneratorVisualizer.cs index 2dffc2826b..e9e5c0766e 100644 --- a/Content.Client/Gravity/GravityGeneratorVisualizer.cs +++ b/Content.Client/Gravity/GravityGeneratorVisualizer.cs @@ -63,10 +63,31 @@ namespace Content.Client.Gravity } } - if (component.TryGetData(GravityGeneratorVisuals.CoreVisible, out bool visible)) + if (component.TryGetData(GravityGeneratorVisuals.Charge, out float charge)) { var layer = sprite.LayerMapGet(GravityGeneratorVisualLayers.Core); - sprite.LayerSetVisible(layer, visible); + switch (charge) + { + case < 0.2f: + sprite.LayerSetVisible(layer, false); + break; + case >= 0.2f and < 0.4f: + sprite.LayerSetVisible(layer, true); + sprite.LayerSetState(layer, "startup"); + break; + case >= 0.4f and < 0.6f: + sprite.LayerSetVisible(layer, true); + sprite.LayerSetState(layer, "idle"); + break; + case >= 0.6f and < 0.8f: + sprite.LayerSetVisible(layer, true); + sprite.LayerSetState(layer, "activating"); + break; + default: + sprite.LayerSetVisible(layer, true); + sprite.LayerSetState(layer, "activated"); + break; + } } } diff --git a/Content.Client/Gravity/UI/GravityGeneratorBoundUserInterface.cs b/Content.Client/Gravity/UI/GravityGeneratorBoundUserInterface.cs index 0cf77a4fc5..efef226b61 100644 --- a/Content.Client/Gravity/UI/GravityGeneratorBoundUserInterface.cs +++ b/Content.Client/Gravity/UI/GravityGeneratorBoundUserInterface.cs @@ -10,28 +10,25 @@ namespace Content.Client.Gravity.UI { private GravityGeneratorWindow? _window; - public bool IsOn; - public GravityGeneratorBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base (owner, uiKey) { - SendMessage(new SharedGravityGeneratorComponent.GeneratorStatusRequestMessage()); } protected override void Open() { base.Open(); - IsOn = false; - - _window = new GravityGeneratorWindow(this); + _window = new GravityGeneratorWindow(this, Owner); + /* _window.Switch.OnPressed += _ => { SendMessage(new SharedGravityGeneratorComponent.SwitchGeneratorMessage(!IsOn)); - SendMessage(new SharedGravityGeneratorComponent.GeneratorStatusRequestMessage()); }; + */ _window.OpenCentered(); + _window.OnClose += Close; } protected override void UpdateState(BoundUserInterfaceState state) @@ -39,8 +36,7 @@ namespace Content.Client.Gravity.UI base.UpdateState(state); var castState = (SharedGravityGeneratorComponent.GeneratorState) state; - IsOn = castState.On; - _window?.UpdateButton(); + _window?.UpdateState(castState); } protected override void Dispose(bool disposing) @@ -50,5 +46,10 @@ namespace Content.Client.Gravity.UI _window?.Dispose(); } + + public void SetPowerSwitch(bool on) + { + SendMessage(new SharedGravityGeneratorComponent.SwitchGeneratorMessage(on)); + } } } diff --git a/Content.Client/Gravity/UI/GravityGeneratorWindow.xaml b/Content.Client/Gravity/UI/GravityGeneratorWindow.xaml index 29100d72a9..2b789f3be7 100644 --- a/Content.Client/Gravity/UI/GravityGeneratorWindow.xaml +++ b/Content.Client/Gravity/UI/GravityGeneratorWindow.xaml @@ -1,14 +1,35 @@ - - - - + + + + + +