From: jicksaw Date: Sun, 5 Feb 2023 20:22:36 +0000 (+0200) Subject: Airlock painter fixes (#13877) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=a008024b3778c5148ac5a307ccbdc4a41c513893;p=space-station-14.git Airlock painter fixes (#13877) fix undefined --- diff --git a/Content.Client/AirlockPainter/UI/AirlockPainterBoundUserInterface.cs b/Content.Client/AirlockPainter/UI/AirlockPainterBoundUserInterface.cs index 12c8de926e..62ded3ecb3 100644 --- a/Content.Client/AirlockPainter/UI/AirlockPainterBoundUserInterface.cs +++ b/Content.Client/AirlockPainter/UI/AirlockPainterBoundUserInterface.cs @@ -1,12 +1,15 @@ using Content.Shared.AirlockPainter; using Robust.Client.GameObjects; +using Robust.Client.UserInterface.Controls; namespace Content.Client.AirlockPainter.UI { public sealed class AirlockPainterBoundUserInterface : BoundUserInterface { private AirlockPainterWindow? _window; - public List Styles = new(); + private AirlockPainterSystem? _painter; + + [Dependency] private readonly IEntitySystemManager _entitySystems = default!; public AirlockPainterBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) { @@ -17,22 +20,33 @@ namespace Content.Client.AirlockPainter.UI base.Open(); _window = new AirlockPainterWindow(); - if (State != null) - UpdateState(State); - // Add styles - var painterSystem = EntitySystem.Get(); - _window.Populate(painterSystem.Entries); + _painter = _entitySystems.GetEntitySystem(); _window.OpenCentered(); - _window.OnClose += Close; - _window.OnSpritePicked += OnSpritePicked; + _window.OnSpritePicked = OnSpritePicked; + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (_window == null) + return; + + if (_painter == null) + return; + + if (state is not AirlockPainterBoundUserInterfaceState stateCast) + return; + + _window.Populate(_painter.Entries, stateCast.SelectedStyle); } - private void OnSpritePicked(int index) + private void OnSpritePicked(ItemList.ItemListSelectedEventArgs args) { - SendMessage(new AirlockPainterSpritePickedMessage(index)); + SendMessage(new AirlockPainterSpritePickedMessage(args.ItemIndex)); } } } diff --git a/Content.Client/AirlockPainter/UI/AirlockPainterWindow.xaml b/Content.Client/AirlockPainter/UI/AirlockPainterWindow.xaml index 2989ce9c4b..564eccb38f 100644 --- a/Content.Client/AirlockPainter/UI/AirlockPainterWindow.xaml +++ b/Content.Client/AirlockPainter/UI/AirlockPainterWindow.xaml @@ -1,6 +1,6 @@