diff --git a/Content.Client/_Wega/Android/AndroidSystem.cs b/Content.Client/_Wega/Android/AndroidSystem.cs index 31688ebe36..7a942edd39 100644 --- a/Content.Client/_Wega/Android/AndroidSystem.cs +++ b/Content.Client/_Wega/Android/AndroidSystem.cs @@ -1,6 +1,6 @@ -using Content.Shared._Wega.Android; +using Content.Shared.Android; -namespace Content.Client._Wega.Android; +namespace Content.Client.Android; public sealed class AndroidSystem : SharedAndroidSystem { diff --git a/Content.Client/_Wega/BloodCult/BloodCultSystem.cs b/Content.Client/_Wega/BloodCult/BloodCultSystem.cs index f79cb99300..1ce2472b15 100644 --- a/Content.Client/_Wega/BloodCult/BloodCultSystem.cs +++ b/Content.Client/_Wega/BloodCult/BloodCultSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Blood.Cult.Components; using Content.Shared.StatusIcon.Components; using Robust.Client.GameObjects; using Robust.Shared.Prototypes; +using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Client.Blood.Cult @@ -13,6 +14,8 @@ namespace Content.Client.Blood.Cult { [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SpriteSystem _sprite = default!; public override void Initialize() { @@ -28,26 +31,18 @@ namespace Content.Client.Blood.Cult private void OnRuneAppearanceChanged(Entity entity, ref AppearanceChangeEvent args) { - if (args.Sprite == null) - return; - - var sprite = args.Sprite; if (!_appearance.TryGetData(entity, RuneColorVisuals.Color, out Color color)) return; - sprite.Color = color; + _sprite.SetColor(entity.Owner, color); } private void OnRuneAppearanceChanged(Entity entity, ref AppearanceChangeEvent args) { - if (args.Sprite == null) - return; - - var sprite = args.Sprite; if (!_appearance.TryGetData(entity, RuneColorVisuals.Color, out Color color)) return; - sprite.Color = color; + _sprite.SetColor(entity.Owner, color); } private void GetCultistIcons(Entity ent, ref GetStatusIconsEvent args) @@ -61,48 +56,48 @@ namespace Content.Client.Blood.Cult if (!TryComp(uid, out var sprite)) return; - if (sprite.LayerMapTryGet(PentagramKey.Halo, out _)) + if (_sprite.LayerMapTryGet(uid, PentagramKey.Halo, out _, true)) return; - var haloVariant = new Random().Next(1, 6); + var haloVariant = _random.Next(1, 6); var haloState = $"halo{haloVariant}"; - var adj = sprite.Bounds.Height / 2 + 1.0f / 32 * 6.0f; - var layer = sprite.AddLayer(new SpriteSpecifier.Rsi(new ResPath("_Wega/Interface/Misc/bloodcult_halo.rsi"), haloState)); - sprite.LayerMapSet(PentagramKey.Halo, layer); + var bounds = _sprite.GetLocalBounds((uid, sprite)); + var adj = bounds.Height / 2 + 1.0f / 32 * 6.0f; - sprite.LayerSetOffset(layer, new Vector2(0.0f, adj)); - sprite.LayerSetShader(layer, "unshaded"); + var layerData = new PrototypeLayerData + { + Shader = "unshaded", + RsiPath = "_Wega/Interface/Misc/bloodcult_halo.rsi", + State = haloState, + Offset = new Vector2(0.0f, adj) + }; + + var layer = _sprite.AddLayer(uid, layerData, null); + _sprite.LayerMapSet(uid, PentagramKey.Halo, layer); } private void RemoveHalo(EntityUid uid, PentagramDisplayComponent component, ComponentShutdown args) { - if (!TryComp(uid, out var sprite)) - return; - - if (sprite.LayerMapTryGet(PentagramKey.Halo, out var layer)) + if (_sprite.LayerMapTryGet(uid, PentagramKey.Halo, out var layer, true)) { - sprite.RemoveLayer(layer); + _sprite.RemoveLayer(uid, layer); } } private void OnSoulStoneAppearanceChanged(EntityUid uid, StoneSoulComponent component, ref AppearanceChangeEvent args) { - if (args.Sprite == null) - return; - - var sprite = args.Sprite; if (!_appearance.TryGetData(uid, StoneSoulVisuals.HasSoul, out bool hasSoul)) hasSoul = false; - sprite.LayerSetVisible(StoneSoulVisualLayers.Soul, hasSoul); + _sprite.LayerSetVisible(uid, StoneSoulVisualLayers.Soul, hasSoul); if (!hasSoul) { - sprite.LayerSetVisible(StoneSoulVisualLayers.Base, true); + _sprite.LayerSetVisible(uid, StoneSoulVisualLayers.Base, true); } else { - sprite.LayerSetVisible(StoneSoulVisualLayers.Base, false); + _sprite.LayerSetVisible(uid, StoneSoulVisualLayers.Base, false); } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodConstructMenu.xaml.cs b/Content.Client/_Wega/BloodCult/Ui/BloodConstructMenu.xaml.cs index be5201ae3e..81c261e10f 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodConstructMenu.xaml.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodConstructMenu.xaml.cs @@ -14,7 +14,6 @@ public sealed partial class BloodConstructMenu : RadialMenu [Dependency] private readonly ISharedPlayerManager _playerManager = default!; public event Action? OnSelectConstruct; - public bool IsDisposed { get; private set; } private NetEntity _constructUid; private NetEntity _mindUid; @@ -47,14 +46,4 @@ public sealed partial class BloodConstructMenu : RadialMenu _entityNetworkManager.SendSystemNetworkMessage(new BloodConstructMenuClosedEvent(netEntity, _constructUid, _mindUid, constructName)); Close(); } - - public new void Close() - { - if (!IsDisposed) - { - IsDisposed = true; - Dispose(); - } - } } - diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodConstructUIController.cs b/Content.Client/_Wega/BloodCult/Ui/BloodConstructUIController.cs index db1cb049fd..94dad53fe3 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodConstructUIController.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodConstructUIController.cs @@ -12,7 +12,6 @@ namespace Content.Client.Select.Construct.UI [Dependency] private readonly IEntityManager _entityManager = default!; private BloodConstructMenu? _menu; - private bool _menuDisposed = false; public override void Initialize() { @@ -27,10 +26,9 @@ namespace Content.Client.Select.Construct.UI if (session?.AttachedEntity.HasValue == true && session.AttachedEntity.Value == userEntity) { - if (_menu is null || _menu.IsDisposed) + if (_menu is null) { _menu = _uiManager.CreateWindow(); - _menu.OnClose += OnMenuClosed; _menu.SetData(args.ConstructUid, args.Mind); @@ -43,18 +41,12 @@ namespace Content.Client.Select.Construct.UI Timer.Spawn(30000, () => { - if (_menu != null && !_menuDisposed) + if (_menu != null) { _menu.Close(); } }); } } - - private void OnMenuClosed() - { - _menuDisposed = true; - _menu = null; - } } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodMagicMenu.xaml.cs b/Content.Client/_Wega/BloodCult/Ui/BloodMagicMenu.xaml.cs index 64cdc2ece0..c18c4038fc 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodMagicMenu.xaml.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodMagicMenu.xaml.cs @@ -14,7 +14,6 @@ public sealed partial class BloodMagicMenu : RadialMenu [Dependency] private readonly ISharedPlayerManager _playerManager = default!; public event Action? OnSelectSpell; - public bool IsDisposed { get; private set; } public BloodMagicMenu() { @@ -45,14 +44,5 @@ public sealed partial class BloodMagicMenu : RadialMenu _entityNetworkManager.SendSystemNetworkMessage(new BloodMagicMenuClosedEvent(netEntity, spellName)); Close(); } - - public new void Close() - { - if (!IsDisposed) - { - IsDisposed = true; - Dispose(); - } - } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodMagicUIController.cs b/Content.Client/_Wega/BloodCult/Ui/BloodMagicUIController.cs index 130b8d071c..49721973ff 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodMagicUIController.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodMagicUIController.cs @@ -11,7 +11,6 @@ namespace Content.Client.Blood.Magic.UI [Dependency] private readonly IEntityManager _entityManager = default!; private BloodMagicMenu? _menu; - private bool _menuDisposed = false; public override void Initialize() { @@ -25,7 +24,7 @@ namespace Content.Client.Blood.Magic.UI var userEntity = _entityManager.GetEntity(args.Uid); if (session?.AttachedEntity.HasValue == true && session.AttachedEntity.Value == userEntity) { - if (_menu is null || _menu.IsDisposed) + if (_menu is null) { _menu = _uiManager.CreateWindow(); _menu.OnClose += OnMenuClosed; @@ -40,7 +39,6 @@ namespace Content.Client.Blood.Magic.UI private void OnMenuClosed() { - _menuDisposed = true; _menu = null; } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodRitesMenu.xaml.cs b/Content.Client/_Wega/BloodCult/Ui/BloodRitesMenu.xaml.cs index 22bbcca667..1d6f22ead8 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodRitesMenu.xaml.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodRitesMenu.xaml.cs @@ -14,7 +14,6 @@ public sealed partial class BloodRitesMenu : RadialMenu [Dependency] private readonly ISharedPlayerManager _playerManager = default!; public event Action? OnSelectRites; - public bool IsDisposed { get; private set; } public BloodRitesMenu() { @@ -39,14 +38,5 @@ public sealed partial class BloodRitesMenu : RadialMenu _entityNetworkManager.SendSystemNetworkMessage(new BloodRitesMenuClosedEvent(netEntity, ritesName)); Close(); } - - public new void Close() - { - if (!IsDisposed) - { - IsDisposed = true; - Dispose(); - } - } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodRitesUIController.cs b/Content.Client/_Wega/BloodCult/Ui/BloodRitesUIController.cs index 20bed19af1..104175b056 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodRitesUIController.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodRitesUIController.cs @@ -11,7 +11,6 @@ namespace Content.Client.Blood.Rites.UI [Dependency] private readonly IEntityManager _entityManager = default!; private BloodRitesMenu? _menu; - private bool _menuDisposed = false; public override void Initialize() { @@ -25,7 +24,7 @@ namespace Content.Client.Blood.Rites.UI var userEntity = _entityManager.GetEntity(args.Uid); if (session?.AttachedEntity.HasValue == true && session.AttachedEntity.Value == userEntity) { - if (_menu is null || _menu.IsDisposed) + if (_menu is null) { _menu = _uiManager.CreateWindow(); _menu.OnClose += OnMenuClosed; @@ -40,7 +39,6 @@ namespace Content.Client.Blood.Rites.UI private void OnMenuClosed() { - _menuDisposed = true; _menu = null; } } diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodStructureMenu.xaml.cs b/Content.Client/_Wega/BloodCult/Ui/BloodStructureMenu.xaml.cs index cbfb0cba46..6ed14c0591 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodStructureMenu.xaml.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodStructureMenu.xaml.cs @@ -19,7 +19,6 @@ public sealed partial class BloodStructureMenu : RadialMenu [Dependency] private readonly ISharedPlayerManager _playerManager = default!; public event Action? OnSelectItem; - public bool IsDisposed { get; private set; } private NetEntity _structure; public BloodStructureMenu() @@ -80,14 +79,4 @@ public sealed partial class BloodStructureMenu : RadialMenu _entityNetworkManager.SendSystemNetworkMessage(new BloodStructureMenuClosedEvent(netEntity, name, _structure)); Close(); } - - public new void Close() - { - if (!IsDisposed) - { - IsDisposed = true; - Dispose(); - } - } } - diff --git a/Content.Client/_Wega/BloodCult/Ui/BloodStructureUIController.cs b/Content.Client/_Wega/BloodCult/Ui/BloodStructureUIController.cs index e00d801010..7807859b33 100644 --- a/Content.Client/_Wega/BloodCult/Ui/BloodStructureUIController.cs +++ b/Content.Client/_Wega/BloodCult/Ui/BloodStructureUIController.cs @@ -12,7 +12,6 @@ namespace Content.Client.Structure.UI [Dependency] private readonly IEntityManager _entityManager = default!; private BloodStructureMenu? _menu; - private bool _menuDisposed = false; public override void Initialize() { @@ -26,7 +25,7 @@ namespace Content.Client.Structure.UI var userEntity = _entityManager.GetEntity(args.Uid); if (session?.AttachedEntity.HasValue == true && session.AttachedEntity.Value == userEntity) { - if (_menu is null || _menu.IsDisposed) + if (_menu is null) { _menu = _uiManager.CreateWindow(); _menu.OnClose += OnMenuClosed; @@ -42,7 +41,7 @@ namespace Content.Client.Structure.UI Timer.Spawn(30000, () => { - if (_menu != null && !_menuDisposed) + if (_menu != null) { _menu.Close(); } @@ -52,7 +51,6 @@ namespace Content.Client.Structure.UI private void OnMenuClosed() { - _menuDisposed = true; _menu = null; } } diff --git a/Content.Client/_Wega/BloodCult/Ui/RunesMenu.xaml.cs b/Content.Client/_Wega/BloodCult/Ui/RunesMenu.xaml.cs index 1e1b0bbc3d..33213acbcd 100644 --- a/Content.Client/_Wega/BloodCult/Ui/RunesMenu.xaml.cs +++ b/Content.Client/_Wega/BloodCult/Ui/RunesMenu.xaml.cs @@ -78,7 +78,6 @@ public sealed partial class EmpoweringRuneMenu : RadialMenu [Dependency] private readonly ISharedPlayerManager _playerManager = default!; public event Action? OnSelectSpell; - public bool IsDisposed { get; private set; } public EmpoweringRuneMenu() { @@ -109,15 +108,6 @@ public sealed partial class EmpoweringRuneMenu : RadialMenu _entityNetworkManager.SendSystemNetworkMessage(new EmpoweringRuneMenuClosedEvent(netEntity, spellName)); Close(); } - - public new void Close() - { - if (!IsDisposed) - { - IsDisposed = true; - Dispose(); - } - } } public sealed partial class SummoningRunePanelMenu : DefaultWindow @@ -138,13 +128,11 @@ public sealed partial class SummoningRunePanelMenu : DefaultWindow private void InitializeButtons() { - foreach (var cultist in _entityManager.EntityQuery()) + var cultistQuery = _entityManager.EntityQueryEnumerator(); + while (cultistQuery.MoveNext(out var uid, out _, out var metaData)) { - if (_entityManager.TryGetComponent(cultist.Owner, out var metaData)) - { - var entityName = metaData.EntityName; - AddCultistButton(entityName, cultist.Owner); - } + var entityName = metaData.EntityName; + AddCultistButton(entityName, uid); } } diff --git a/Content.Client/_Wega/BloodCult/Ui/RunesMenuUIController.cs b/Content.Client/_Wega/BloodCult/Ui/RunesMenuUIController.cs index b2ba2faa8a..3d57eea8c1 100644 --- a/Content.Client/_Wega/BloodCult/Ui/RunesMenuUIController.cs +++ b/Content.Client/_Wega/BloodCult/Ui/RunesMenuUIController.cs @@ -12,7 +12,6 @@ namespace Content.Client.Runes.Panel.Ui [Dependency] private readonly IEntityManager _entityManager = default!; private RunesPanelMenu? _panel; - private bool _panelDisposed = false; public override void Initialize() { @@ -42,7 +41,6 @@ namespace Content.Client.Runes.Panel.Ui private void OnMenuClosed() { - _panelDisposed = true; _panel = null; } } @@ -68,7 +66,7 @@ namespace Content.Client.Runes.Panel.Ui var userEntity = _entityManager.GetEntity(args.Uid); if (session?.AttachedEntity.HasValue == true && session.AttachedEntity.Value == userEntity) { - if (_menu is null || _menu.IsDisposed) + if (_menu is null) { _menu = _uiManager.CreateWindow(); _menu.OnClose += OnMenuClosed; @@ -103,7 +101,6 @@ namespace Content.Client.Runes.Panel.Ui [Dependency] private readonly IEntityManager _entityManager = default!; private SummoningRunePanelMenu? _panel; - private bool _panelDisposed = false; public override void Initialize() { @@ -131,7 +128,7 @@ namespace Content.Client.Runes.Panel.Ui Timer.Spawn(30000, () => { - if (_panel != null && !_panelDisposed) + if (_panel != null) { _panel.Close(); } @@ -141,7 +138,6 @@ namespace Content.Client.Runes.Panel.Ui private void OnMenuClosed() { - _panelDisposed = true; _panel = null; } } diff --git a/Content.Client/_Wega/CartridgeLoader/Cartridges/NanoChatUiFragment.xaml b/Content.Client/_Wega/CartridgeLoader/Cartridges/NanoChatUiFragment.xaml index 07cc6cb1c5..cdab60e977 100644 --- a/Content.Client/_Wega/CartridgeLoader/Cartridges/NanoChatUiFragment.xaml +++ b/Content.Client/_Wega/CartridgeLoader/Cartridges/NanoChatUiFragment.xaml @@ -62,7 +62,7 @@ - +