From 69dbb9f65406443237de50622b09982b5c175aca Mon Sep 17 00:00:00 2001 From: ike709 Date: Sun, 11 Apr 2021 17:43:53 -0500 Subject: [PATCH] HUD Themes (#3774) * HUD Themes * Prototypes * field * oops * ugh * Fixes * Update Content.Client/UserInterface/GameHud.cs Co-authored-by: ike709 --- .../HumanInventoryInterfaceController.cs | 46 ++++++++++++---- Content.Client/UserInterface/GameHud.cs | 46 +++++++++++++++- Content.Client/UserInterface/HandButton.cs | 2 +- Content.Client/UserInterface/HandsGui.cs | 39 +++++++++++--- .../UserInterface/ItemSlotButton.cs | 8 ++- .../UserInterface/OptionsMenu.Graphics.cs | 50 +++++++++++++++--- Content.Client/UserInterface/OptionsMenu.cs | 4 +- Content.Shared/CCVars.cs | 7 +++ .../Prototypes/HUD/HudThemePrototype.cs | 18 +++++++ Resources/Locale/en-US/ui/options.ftl | 4 ++ Resources/Prototypes/hud.yml | 14 +++++ .../{nostalgia-ui => Classic}/back.png | Bin .../{nostalgia-ui => Classic}/belt.png | Bin .../{nostalgia-ui => Classic}/ears.png | Bin .../{nostalgia-ui => Classic}/glasses.png | Bin .../{nostalgia-ui => Classic}/gloves.png | Bin .../{nostalgia-ui => Classic}/hand_l.png | Bin .../hand_l_no_letter.png | Bin .../{nostalgia-ui => Classic}/hand_r.png | Bin .../hand_r_no_letter.png | Bin .../{nostalgia-ui => Classic}/head.png | Bin .../{nostalgia-ui => Classic}/id.png | Bin .../{nostalgia-ui => Classic}/mask.png | Bin .../Interface/Inventory/Classic/neck.png | Bin 0 -> 846 bytes .../{nostalgia-ui => Classic}/pocket.png | Bin .../{nostalgia-ui => Classic}/shoes.png | Bin .../{nostalgia-ui => Classic}/suit.png | Bin .../suit_storage.png | Bin .../{nostalgia-ui => Classic}/uniform.png | Bin .../Inventory/{ => Default}/back.png | Bin .../Inventory/{ => Default}/belt.png | Bin .../Inventory/{ => Default}/ears.png | Bin .../Inventory/{ => Default}/ears_headset.png | Bin .../Inventory/{ => Default}/glasses.png | Bin .../Inventory/{ => Default}/gloves.png | Bin .../Inventory/{ => Default}/hand_l.png | Bin .../{ => Default}/hand_l_no_letter.png | Bin .../Inventory/{ => Default}/hand_r.png | Bin .../{ => Default}/hand_r_no_letter.png | Bin .../Inventory/{ => Default}/head.png | Bin .../Interface/Inventory/{ => Default}/id.png | Bin .../Inventory/{ => Default}/inventory.png | Bin .../Inventory/{ => Default}/mask.png | Bin .../Inventory/{ => Default}/meta.json | 0 .../Inventory/{ => Default}/neck.png | Bin .../Interface/Inventory/{ => Default}/pda.png | Bin .../Inventory/{ => Default}/pocket.png | Bin .../Inventory/{ => Default}/shoes.png | Bin .../Inventory/{ => Default}/suit.png | Bin .../Inventory/{ => Default}/suit_storage.png | Bin .../Inventory/{ => Default}/uniform.png | Bin .../Inventory/{ike-ui => Modernized}/back.png | Bin .../Inventory/{ike-ui => Modernized}/belt.png | Bin .../{ike-ui => Modernized}/block.png | Bin .../Inventory/{ike-ui => Modernized}/ears.png | Bin .../{ike-ui => Modernized}/glasses.png | Bin .../{ike-ui => Modernized}/gloves.png | Bin .../{ike-ui => Modernized}/hand_l.png | Bin .../{ike-ui => Modernized}/hand_l_active.png | Bin .../{ike-ui => Modernized}/hand_r.png | Bin .../{ike-ui => Modernized}/hand_r_active.png | Bin .../Inventory/{ike-ui => Modernized}/head.png | Bin .../Inventory/{ike-ui => Modernized}/id.png | Bin .../{ike-ui => Modernized}/inventory.png | Bin .../Inventory/{ike-ui => Modernized}/mask.png | Bin .../Inventory/{ike-ui => Modernized}/meta | 0 .../Inventory/{ike-ui => Modernized}/neck.png | Bin .../{ike-ui => Modernized}/pocket.png | Bin .../{ike-ui => Modernized}/sheet.png | Bin .../{ike-ui => Modernized}/shoes.png | Bin .../Inventory/{ike-ui => Modernized}/suit.png | Bin .../{ike-ui => Modernized}/suit_storage.png | Bin .../{ike-ui => Modernized}/uniform.png | Bin .../Inventory/current-ui-layer/back.png | Bin 700 -> 0 bytes .../Inventory/current-ui-layer/belt.png | Bin 454 -> 0 bytes .../Inventory/current-ui-layer/ears.png | Bin 594 -> 0 bytes .../current-ui-layer/ears_headset.png | Bin 342 -> 0 bytes .../Inventory/current-ui-layer/glasses.png | Bin 398 -> 0 bytes .../Inventory/current-ui-layer/gloves.png | Bin 727 -> 0 bytes .../Inventory/current-ui-layer/hand_l.png | Bin 557 -> 0 bytes .../current-ui-layer/hand_l_no_letter.png | Bin 485 -> 0 bytes .../Inventory/current-ui-layer/hand_r.png | Bin 568 -> 0 bytes .../current-ui-layer/hand_r_no_letter.png | Bin 486 -> 0 bytes .../Inventory/current-ui-layer/head.png | Bin 335 -> 0 bytes .../Inventory/current-ui-layer/id.png | Bin 261 -> 0 bytes .../Inventory/current-ui-layer/mask.png | Bin 387 -> 0 bytes .../Inventory/current-ui-layer/neck.png | Bin 620 -> 0 bytes .../Inventory/current-ui-layer/pda.png | Bin 340 -> 0 bytes .../Inventory/current-ui-layer/pocket.png | Bin 541 -> 0 bytes .../Inventory/current-ui-layer/shoes.png | Bin 416 -> 0 bytes .../Inventory/current-ui-layer/suit.png | Bin 617 -> 0 bytes .../current-ui-layer/suit_storage.png | Bin 881 -> 0 bytes .../Inventory/current-ui-layer/uniform.png | Bin 506 -> 0 bytes 93 files changed, 210 insertions(+), 28 deletions(-) create mode 100644 Content.Shared/Prototypes/HUD/HudThemePrototype.cs create mode 100644 Resources/Prototypes/hud.yml rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/back.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/belt.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/ears.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/glasses.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/gloves.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/hand_l.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/hand_l_no_letter.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/hand_r.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/hand_r_no_letter.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/head.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/id.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/mask.png (100%) create mode 100644 Resources/Textures/Interface/Inventory/Classic/neck.png rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/pocket.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/shoes.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/suit.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/suit_storage.png (100%) rename Resources/Textures/Interface/Inventory/{nostalgia-ui => Classic}/uniform.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/back.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/belt.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/ears.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/ears_headset.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/glasses.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/gloves.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/hand_l.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/hand_l_no_letter.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/hand_r.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/hand_r_no_letter.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/head.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/id.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/inventory.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/mask.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/meta.json (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/neck.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/pda.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/pocket.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/shoes.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/suit.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/suit_storage.png (100%) rename Resources/Textures/Interface/Inventory/{ => Default}/uniform.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/back.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/belt.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/block.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/ears.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/glasses.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/gloves.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/hand_l.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/hand_l_active.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/hand_r.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/hand_r_active.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/head.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/id.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/inventory.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/mask.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/meta (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/neck.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/pocket.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/sheet.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/shoes.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/suit.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/suit_storage.png (100%) rename Resources/Textures/Interface/Inventory/{ike-ui => Modernized}/uniform.png (100%) delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/back.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/belt.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/ears.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/ears_headset.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/glasses.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/gloves.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/hand_l.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/hand_l_no_letter.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/hand_r.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/hand_r_no_letter.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/head.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/id.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/mask.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/neck.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/pda.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/pocket.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/shoes.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/suit.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/suit_storage.png delete mode 100644 Resources/Textures/Interface/Inventory/current-ui-layer/uniform.png diff --git a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs index e7336d73f3..a64bdbfffd 100644 --- a/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs +++ b/Content.Client/GameObjects/Components/HUD/Inventory/HumanInventoryInterfaceController.cs @@ -1,16 +1,22 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using Content.Client.UserInterface; using Content.Client.Utility; +using Content.Shared; +using Content.Shared.Prototypes.HUD; using JetBrains.Annotations; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.Configuration; using Robust.Shared.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Localization; +using Robust.Shared.Log; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines; namespace Content.Client.GameObjects.Components.HUD.Inventory @@ -20,7 +26,10 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory public class HumanInventoryInterfaceController : InventoryInterfaceController { [Dependency] private readonly IResourceCache _resourceCache = default!; + [Dependency] private readonly IGameHud _gameHud = default!; [Dependency] private readonly IItemSlotManager _itemSlotManager = default!; + [Dependency] private readonly INetConfigurationManager _configManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; private readonly Dictionary> _inventoryButtons = new(); @@ -51,8 +60,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory public override void Initialize() { base.Initialize(); + _configManager.OnValueChanged(CCVars.HudTheme, UpdateHudTheme, invokeImmediately: true); - _window = new HumanInventoryWindow(_resourceCache); + _window = new HumanInventoryWindow(_gameHud); _window.OnClose += () => GameHud.InventoryButtonDown = false; foreach (var (slot, button) in _window.Buttons) { @@ -64,9 +74,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory void AddButton(out ItemSlotButton variable, Slots slot, string textureName) { - var texture = _resourceCache.GetTexture($"/Textures/Interface/Inventory/{textureName}.png"); - var storageTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/back.png"); - variable = new ItemSlotButton(texture, storageTexture) + var texture = _gameHud.GetHudTexture($"{textureName}.png"); + var storageTexture = _gameHud.GetHudTexture("back.png"); + variable = new ItemSlotButton(texture, storageTexture, textureName) { OnPressed = (e) => AddToInventory(e, slot), OnStoragePressed = (e) => OpenStorage(e, slot), @@ -247,6 +257,23 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory } } + public void UpdateHudTheme(int idx) + { + if (!_gameHud.ValidateHudTheme(idx)) + { + return; + } + + foreach (var (_, list) in _inventoryButtons) + { + foreach (var button in list) + { + button.Button.Texture = _gameHud.GetHudTexture($"{button.TextureName}.png"); + button.StorageButton.TextureNormal = _gameHud.GetHudTexture("back.png"); + } + } + } + private class HumanInventoryWindow : SS14Window { private const int ButtonSize = 64; @@ -254,8 +281,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory private const int RightSeparation = 2; public IReadOnlyDictionary Buttons { get; } + [Dependency] private readonly IGameHud _gameHud = default!; - public HumanInventoryWindow(IResourceCache resourceCache) + public HumanInventoryWindow(IGameHud gameHud) { Title = Loc.GetString("Your Inventory"); Resizable = false; @@ -271,9 +299,9 @@ namespace Content.Client.GameObjects.Components.HUD.Inventory void AddButton(Slots slot, string textureName, Vector2 position) { - var texture = resourceCache.GetTexture($"/Textures/Interface/Inventory/{textureName}.png"); - var storageTexture = resourceCache.GetTexture("/Textures/Interface/Inventory/back.png"); - var button = new ItemSlotButton(texture, storageTexture); + var texture = gameHud.GetHudTexture($"{textureName}.png"); + var storageTexture = gameHud.GetHudTexture("back.png"); + var button = new ItemSlotButton(texture, storageTexture, textureName); LayoutContainer.SetPosition(button, position); diff --git a/Content.Client/UserInterface/GameHud.cs b/Content.Client/UserInterface/GameHud.cs index bba6f20f47..f377747cfb 100644 --- a/Content.Client/UserInterface/GameHud.cs +++ b/Content.Client/UserInterface/GameHud.cs @@ -1,18 +1,24 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; +using System.Linq; using Content.Client.UserInterface.Stylesheets; using Content.Client.Utility; +using Content.Shared; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.Input; +using Content.Shared.Prototypes.HUD; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface.Controls; +using Robust.Shared.Configuration; using Robust.Shared.Input; using Robust.Shared.Input.Binding; using Robust.Shared.IoC; using Robust.Shared.Localization; +using Robust.Shared.Log; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; using Robust.Shared.Utility; using static Robust.Client.Input.Keyboard.Key; using Control = Robust.Client.UserInterface.Control; @@ -74,6 +80,10 @@ namespace Content.Client.UserInterface void AddTopNotification(TopNotification notification); + Texture GetHudTexture(string path); + + bool ValidateHudTheme(int idx); + // Init logic. void Initialize(); } @@ -95,7 +105,9 @@ namespace Content.Client.UserInterface private VBoxContainer _topNotificationContainer = default!; [Dependency] private readonly IResourceCache _resourceCache = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IInputManager _inputManager = default!; + [Dependency] private readonly INetConfigurationManager _configManager = default!; public Control HandsContainer { get; private set; } = default!; public Control SuspicionContainer { get; private set; } = default!; @@ -121,6 +133,38 @@ namespace Content.Client.UserInterface _topNotificationContainer.AddChild(notification); } + public bool ValidateHudTheme(int idx) + { + if (!_prototypeManager.TryIndex(idx.ToString(), out HudThemePrototype? _)) + { + Logger.ErrorS("hud", "invalid HUD theme id {0}, using different theme", + idx); + var proto = _prototypeManager.EnumeratePrototypes().FirstOrDefault(); + if (proto == null) + { + throw new NullReferenceException("No valid HUD prototypes!"); + } + var id = int.Parse(proto.ID); + _configManager.SetCVar(CCVars.HudTheme, id); + return false; + } + return true; + } + + public Texture GetHudTexture(string path) + { + var id = _configManager.GetCVar("hud.theme"); + var dir = string.Empty; + if (!_prototypeManager.TryIndex(id.ToString(), out HudThemePrototype? proto)) + { + throw new ArgumentOutOfRangeException(); + } + dir = proto.Path; + + var resourcePath = (new ResourcePath("/Textures/Interface/Inventory") / dir) / path; + return _resourceCache.GetTexture(resourcePath); + } + public void Initialize() { RootControl = new LC { Name = "AAAAAAAAAAAAAAAAAAAAAA"}; diff --git a/Content.Client/UserInterface/HandButton.cs b/Content.Client/UserInterface/HandButton.cs index 224ff049d1..1664741b1b 100644 --- a/Content.Client/UserInterface/HandButton.cs +++ b/Content.Client/UserInterface/HandButton.cs @@ -9,7 +9,7 @@ namespace Content.Client.UserInterface private bool _activeHand; private bool _highlighted; - public HandButton(Texture texture, Texture storageTexture, Texture blockedTexture, HandLocation location) : base(texture, storageTexture) + public HandButton(Texture texture, Texture storageTexture, string textureName, Texture blockedTexture, HandLocation location) : base(texture, storageTexture, textureName) { Location = location; diff --git a/Content.Client/UserInterface/HandsGui.cs b/Content.Client/UserInterface/HandsGui.cs index 50a18c558a..7c3e991a59 100644 --- a/Content.Client/UserInterface/HandsGui.cs +++ b/Content.Client/UserInterface/HandsGui.cs @@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Client.GameObjects.Components.Items; using Content.Client.Utility; +using Content.Shared; using Content.Shared.GameObjects.Components.Items; using Content.Shared.Input; using Robust.Client.Graphics; @@ -10,6 +11,7 @@ using Robust.Client.Player; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; +using Robust.Shared.Configuration; using Robust.Shared.Input; using Robust.Shared.IoC; using Robust.Shared.Timing; @@ -21,10 +23,12 @@ namespace Content.Client.UserInterface [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IResourceCache _resourceCache = default!; [Dependency] private readonly IItemSlotManager _itemSlotManager = default!; + [Dependency] private readonly IGameHud _gameHud = default!; + [Dependency] private readonly INetConfigurationManager _configManager = default!; - private readonly Texture _leftHandTexture; - private readonly Texture _middleHandTexture; - private readonly Texture _rightHandTexture; + private Texture _leftHandTexture; + private Texture _middleHandTexture; + private Texture _rightHandTexture; private readonly ItemStatusPanel _topPanel; @@ -36,6 +40,8 @@ namespace Content.Client.UserInterface { IoCManager.InjectDependencies(this); + _configManager.OnValueChanged(CCVars.HudTheme, UpdateHudTheme, invokeImmediately: true); + AddChild(_guiContainer = new HBoxContainer { SeparationOverride = 0, @@ -52,9 +58,21 @@ namespace Content.Client.UserInterface }), } }); - _leftHandTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/hand_l.png"); - _middleHandTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/hand_l.png"); - _rightHandTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/hand_r.png"); + _leftHandTexture = _gameHud.GetHudTexture("hand_l.png"); + _middleHandTexture = _gameHud.GetHudTexture("hand_l.png"); + _rightHandTexture = _gameHud.GetHudTexture("hand_r.png"); + } + + private void UpdateHudTheme(int idx) + { + if (!_gameHud.ValidateHudTheme(idx)) + { + return; + } + _leftHandTexture = _gameHud.GetHudTexture("hand_l.png"); + _middleHandTexture = _gameHud.GetHudTexture("hand_l.png"); + _rightHandTexture = _gameHud.GetHudTexture("hand_r.png"); + UpdateHandIcons(); } private Texture HandTexture(HandLocation location) @@ -82,10 +100,15 @@ namespace Content.Client.UserInterface /// private void AddHand(Hand hand, HandLocation buttonLocation) { + var textureName = "hand_l.png"; + if(buttonLocation == HandLocation.Right) + { + textureName = "hand_r.png"; + } var buttonTexture = HandTexture(buttonLocation); - var storageTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/back.png"); + var storageTexture = _gameHud.GetHudTexture("back.png"); var blockedTexture = _resourceCache.GetTexture("/Textures/Interface/Inventory/blocked.png"); - var button = new HandButton(buttonTexture, storageTexture, blockedTexture, buttonLocation); + var button = new HandButton(buttonTexture, storageTexture, textureName, blockedTexture, buttonLocation); var slot = hand.Name; button.OnPressed += args => HandKeyBindDown(args, slot); diff --git a/Content.Client/UserInterface/ItemSlotButton.cs b/Content.Client/UserInterface/ItemSlotButton.cs index 4985e8f8f3..44ba70b89d 100644 --- a/Content.Client/UserInterface/ItemSlotButton.cs +++ b/Content.Client/UserInterface/ItemSlotButton.cs @@ -15,7 +15,7 @@ namespace Content.Client.UserInterface public TextureRect Button { get; } public SpriteView SpriteView { get; } public SpriteView HoverSpriteView { get; } - public BaseButton StorageButton { get; } + public TextureButton StorageButton { get; } public CooldownGraphic CooldownDisplay { get; } public Action? OnPressed { get; set; } @@ -27,10 +27,14 @@ namespace Content.Client.UserInterface private readonly PanelContainer _highlightRect; - public ItemSlotButton(Texture texture, Texture storageTexture) + public string TextureName { get; set; } + + public ItemSlotButton(Texture texture, Texture storageTexture, string textureName) { MinSize = (64, 64); + TextureName = textureName; + AddChild(Button = new TextureRect { Texture = texture, diff --git a/Content.Client/UserInterface/OptionsMenu.Graphics.cs b/Content.Client/UserInterface/OptionsMenu.Graphics.cs index 124debbd78..6c4b690f0a 100644 --- a/Content.Client/UserInterface/OptionsMenu.Graphics.cs +++ b/Content.Client/UserInterface/OptionsMenu.Graphics.cs @@ -1,4 +1,8 @@ -using Robust.Client.Graphics; +using System; +using Content.Client.GameObjects.Components.HUD.Inventory; +using Content.Shared; +using Content.Shared.Prototypes.HUD; +using Robust.Client.Graphics; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; @@ -7,6 +11,7 @@ using Robust.Shared.Configuration; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; namespace Content.Client.UserInterface { @@ -26,16 +31,19 @@ namespace Content.Client.UserInterface }; private readonly IConfigurationManager _cfg; + private readonly IPrototypeManager _prototypeManager; private readonly Button ApplyButton; private readonly CheckBox VSyncCheckBox; private readonly CheckBox FullscreenCheckBox; private readonly OptionButton LightingPresetOption; private readonly OptionButton _uiScaleOption; + private readonly OptionButton _hudThemeOption; - public GraphicsControl(IConfigurationManager cfg) + public GraphicsControl(IConfigurationManager cfg, IPrototypeManager proMan) { _cfg = cfg; + _prototypeManager = proMan; var vBox = new VBoxContainer(); var contents = new VBoxContainer @@ -75,10 +83,9 @@ namespace Content.Client.UserInterface HorizontalAlignment = HAlignment.Right }; - var resourceCache = IoCManager.Resolve(); - _uiScaleOption = new OptionButton(); - _uiScaleOption.AddItem(Loc.GetString("ui-options-scale-auto", ("scale", UserInterfaceManager.DefaultUIScale))); + _uiScaleOption.AddItem(Loc.GetString("ui-options-scale-auto", + ("scale", UserInterfaceManager.DefaultUIScale))); _uiScaleOption.AddItem(Loc.GetString("ui-options-scale-75")); _uiScaleOption.AddItem(Loc.GetString("ui-options-scale-100")); _uiScaleOption.AddItem(Loc.GetString("ui-options-scale-125")); @@ -97,6 +104,23 @@ namespace Content.Client.UserInterface } }); + _hudThemeOption = new OptionButton(); + foreach (var gear in _prototypeManager.EnumeratePrototypes()) + { + _hudThemeOption.AddItem(Loc.GetString(gear.Name)); + } + _hudThemeOption.OnItemSelected += OnHudThemeChanged; + + contents.AddChild(new HBoxContainer + { + Children = + { + new Label {Text = Loc.GetString("ui-options-hud-theme")}, + new Control {MinSize = (4, 0)}, + _hudThemeOption + } + }); + contents.AddChild(new Placeholder() { VerticalExpand = true, @@ -120,6 +144,7 @@ namespace Content.Client.UserInterface FullscreenCheckBox.Pressed = ConfigIsFullscreen; LightingPresetOption.SelectId(GetConfigLightingQuality()); _uiScaleOption.SelectId(GetConfigUIScalePreset(ConfigUIScale)); + _hudThemeOption.SelectId(_cfg.GetCVar(CCVars.HudTheme)); AddChild(vBox); } @@ -130,10 +155,21 @@ namespace Content.Client.UserInterface UpdateApplyButton(); } + private void OnHudThemeChanged(OptionButton.ItemSelectedEventArgs args) + { + _hudThemeOption.SelectId(args.Id); + UpdateApplyButton(); + } + private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args) { _cfg.SetCVar(CVars.DisplayVSync, VSyncCheckBox.Pressed); SetConfigLightingQuality(LightingPresetOption.SelectedId); + if (_hudThemeOption.SelectedId != _cfg.GetCVar(CCVars.HudTheme)) // Don't unnecessarily redraw the HUD + { + _cfg.SetCVar(CCVars.HudTheme, _hudThemeOption.SelectedId); + } + _cfg.SetCVar(CVars.DisplayWindowMode, (int) (FullscreenCheckBox.Pressed ? WindowMode.Fullscreen : WindowMode.Windowed)); _cfg.SetCVar(CVars.DisplayUIScale, UIScaleOptions[_uiScaleOption.SelectedId]); @@ -157,8 +193,10 @@ namespace Content.Client.UserInterface var isVSyncSame = VSyncCheckBox.Pressed == _cfg.GetCVar(CVars.DisplayVSync); var isFullscreenSame = FullscreenCheckBox.Pressed == ConfigIsFullscreen; var isLightingQualitySame = LightingPresetOption.SelectedId == GetConfigLightingQuality(); + var isHudThemeSame = _hudThemeOption.SelectedId == _cfg.GetCVar(CCVars.HudTheme); var isUIScaleSame = MathHelper.CloseTo(UIScaleOptions[_uiScaleOption.SelectedId], ConfigUIScale); - ApplyButton.Disabled = isVSyncSame && isFullscreenSame && isLightingQualitySame && isUIScaleSame; + ApplyButton.Disabled = isVSyncSame && isFullscreenSame && isLightingQualitySame && isHudThemeSame && + isUIScaleSame; } private bool ConfigIsFullscreen => diff --git a/Content.Client/UserInterface/OptionsMenu.cs b/Content.Client/UserInterface/OptionsMenu.cs index 8bf5eee596..161faadbb0 100644 --- a/Content.Client/UserInterface/OptionsMenu.cs +++ b/Content.Client/UserInterface/OptionsMenu.cs @@ -5,12 +5,14 @@ using Robust.Shared.Configuration; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; +using Robust.Shared.Prototypes; namespace Content.Client.UserInterface { public sealed partial class OptionsMenu : SS14Window { [Dependency] private readonly IConfigurationManager _configManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IClydeAudio _clydeAudio = default!; public OptionsMenu() @@ -28,7 +30,7 @@ namespace Content.Client.UserInterface { Children = { - (graphicsControl = new GraphicsControl(_configManager)), + (graphicsControl = new GraphicsControl(_configManager, _prototypeManager)), (rebindControl = new KeyRebindControl()), (audioControl = new AudioControl(_configManager, _clydeAudio)), } diff --git a/Content.Shared/CCVars.cs b/Content.Shared/CCVars.cs index ee83abb214..53d5395067 100644 --- a/Content.Shared/CCVars.cs +++ b/Content.Shared/CCVars.cs @@ -190,6 +190,13 @@ namespace Content.Shared public static readonly CVarDef LobbyMusicEnabled = CVarDef.Create("ambience.lobbymusicenabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + /* + * HUD + */ + + public static readonly CVarDef HudTheme = + CVarDef.Create("hud.theme", 0, CVar.ARCHIVE | CVar.CLIENTONLY); + /* * AI */ diff --git a/Content.Shared/Prototypes/HUD/HudThemePrototype.cs b/Content.Shared/Prototypes/HUD/HudThemePrototype.cs new file mode 100644 index 0000000000..4d55d4bd58 --- /dev/null +++ b/Content.Shared/Prototypes/HUD/HudThemePrototype.cs @@ -0,0 +1,18 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager.Attributes; + +namespace Content.Shared.Prototypes.HUD +{ + [Prototype("hudTheme")] + public class HudThemePrototype : IPrototype + { + [field: DataField("name", required: true)] + public string Name { get; } = string.Empty; + + [field: DataField("id", required: true)] + public string ID { get; } = string.Empty; + + [field: DataField("path", required: true)] + public string Path { get; } = string.Empty; + } +} diff --git a/Resources/Locale/en-US/ui/options.ftl b/Resources/Locale/en-US/ui/options.ftl index f997e9e431..0a7b6c433e 100644 --- a/Resources/Locale/en-US/ui/options.ftl +++ b/Resources/Locale/en-US/ui/options.ftl @@ -32,6 +32,10 @@ ui-options-scale-125 = 125% ui-options-scale-150 = 150% ui-options-scale-175 = 175% ui-options-scale-200 = 200% +ui-options-hud-theme = HUD Theme: +ui-options-hud-theme-default = Default +ui-options-hud-theme-modernized = Modernized +ui-options-hud-theme-classic = Classic ui-options-placeholder-viewport = Viewport settings ## Controls menu diff --git a/Resources/Prototypes/hud.yml b/Resources/Prototypes/hud.yml new file mode 100644 index 0000000000..0443f9f54a --- /dev/null +++ b/Resources/Prototypes/hud.yml @@ -0,0 +1,14 @@ +- type: hudTheme + id: 0 + name: ui-options-hud-theme-default + path: Default + +- type: hudTheme + id: 1 + name: ui-options-hud-theme-modernized + path: Modernized + +- type: hudTheme + id: 2 + name: ui-options-hud-theme-classic + path: Classic diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/back.png b/Resources/Textures/Interface/Inventory/Classic/back.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/back.png rename to Resources/Textures/Interface/Inventory/Classic/back.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/belt.png b/Resources/Textures/Interface/Inventory/Classic/belt.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/belt.png rename to Resources/Textures/Interface/Inventory/Classic/belt.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/ears.png b/Resources/Textures/Interface/Inventory/Classic/ears.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/ears.png rename to Resources/Textures/Interface/Inventory/Classic/ears.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/glasses.png b/Resources/Textures/Interface/Inventory/Classic/glasses.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/glasses.png rename to Resources/Textures/Interface/Inventory/Classic/glasses.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/gloves.png b/Resources/Textures/Interface/Inventory/Classic/gloves.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/gloves.png rename to Resources/Textures/Interface/Inventory/Classic/gloves.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/hand_l.png b/Resources/Textures/Interface/Inventory/Classic/hand_l.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/hand_l.png rename to Resources/Textures/Interface/Inventory/Classic/hand_l.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/hand_l_no_letter.png b/Resources/Textures/Interface/Inventory/Classic/hand_l_no_letter.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/hand_l_no_letter.png rename to Resources/Textures/Interface/Inventory/Classic/hand_l_no_letter.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/hand_r.png b/Resources/Textures/Interface/Inventory/Classic/hand_r.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/hand_r.png rename to Resources/Textures/Interface/Inventory/Classic/hand_r.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/hand_r_no_letter.png b/Resources/Textures/Interface/Inventory/Classic/hand_r_no_letter.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/hand_r_no_letter.png rename to Resources/Textures/Interface/Inventory/Classic/hand_r_no_letter.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/head.png b/Resources/Textures/Interface/Inventory/Classic/head.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/head.png rename to Resources/Textures/Interface/Inventory/Classic/head.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/id.png b/Resources/Textures/Interface/Inventory/Classic/id.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/id.png rename to Resources/Textures/Interface/Inventory/Classic/id.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/mask.png b/Resources/Textures/Interface/Inventory/Classic/mask.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/mask.png rename to Resources/Textures/Interface/Inventory/Classic/mask.png diff --git a/Resources/Textures/Interface/Inventory/Classic/neck.png b/Resources/Textures/Interface/Inventory/Classic/neck.png new file mode 100644 index 0000000000000000000000000000000000000000..d744499516590825accd4939f14e30a356984eda GIT binary patch literal 846 zcmV-U1F`&xP)^R{_kyl=4=ggTiyEY5M5L%}%d^j*zhUJFCTh5xTGr!SjZ+(y!3k_qMgN%U*lgR)q z^~Q8EIJ6L2s0l{|FgWKNYPH6GtFw5(6lDnRbSyF_5(x#KStXeHK7`BVek2Si6bfKj zrNm@{K$UY?ZVRqUiNU5J0Ko3N5!c|lm$;84Tz8@;kd{4T46tj`aMpbfPOA;`M;Gi) z7k>A?BnaeJz?8X0fv0c*C#4$99aj({CAKQy`+jx;22l1$fJk^S0Dm@1SAg%L0Kw4s z4-Wy9%eEjP)~;3~0=Yeq1~q$?h{Y}81;n6#nOG&i2S8tcG#<(hWq|qE6ZcM<4%n@V zAl5#=0Qd99bpq1aCJ(Sx2dEJLz>Z*Y!)d>MCju2&MUZ&%9wYaoG6aJHa`Bx#u;PS0 zuNn`7qwBHm)$_N&k6Ym1k6_mSChi^F12%3riwW43MpS=v{mY9Fa(q96UzeZ6SnUE- zQR@LJEj?^f#eOAsJ2V-rdLQc^TwejNa+vkM#_DRi0B1HlfC{ATbyQOdjO~VQ$DhpJ z{CZ(fK(e%Ldu!nJjMcz6j45~u`iI9ak+6(FA_ zO7Prq#O8t|jyhc^I`ZW~4NT)w@i=n*;%5))HAj0a;PJf-Wdyt$6p&E&fg?j;ykco6z~dqB;UkU3+5>H~SZD$uQy2{{akM*L|8v5;$>)JmVG8PS#wX=R(3TOkF$;qv0+8 Y2ZKh|jr&b!0{{R307*qoM6N<$g1EtYrvLx| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/pocket.png b/Resources/Textures/Interface/Inventory/Classic/pocket.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/pocket.png rename to Resources/Textures/Interface/Inventory/Classic/pocket.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/shoes.png b/Resources/Textures/Interface/Inventory/Classic/shoes.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/shoes.png rename to Resources/Textures/Interface/Inventory/Classic/shoes.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/suit.png b/Resources/Textures/Interface/Inventory/Classic/suit.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/suit.png rename to Resources/Textures/Interface/Inventory/Classic/suit.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/suit_storage.png b/Resources/Textures/Interface/Inventory/Classic/suit_storage.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/suit_storage.png rename to Resources/Textures/Interface/Inventory/Classic/suit_storage.png diff --git a/Resources/Textures/Interface/Inventory/nostalgia-ui/uniform.png b/Resources/Textures/Interface/Inventory/Classic/uniform.png similarity index 100% rename from Resources/Textures/Interface/Inventory/nostalgia-ui/uniform.png rename to Resources/Textures/Interface/Inventory/Classic/uniform.png diff --git a/Resources/Textures/Interface/Inventory/back.png b/Resources/Textures/Interface/Inventory/Default/back.png similarity index 100% rename from Resources/Textures/Interface/Inventory/back.png rename to Resources/Textures/Interface/Inventory/Default/back.png diff --git a/Resources/Textures/Interface/Inventory/belt.png b/Resources/Textures/Interface/Inventory/Default/belt.png similarity index 100% rename from Resources/Textures/Interface/Inventory/belt.png rename to Resources/Textures/Interface/Inventory/Default/belt.png diff --git a/Resources/Textures/Interface/Inventory/ears.png b/Resources/Textures/Interface/Inventory/Default/ears.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ears.png rename to Resources/Textures/Interface/Inventory/Default/ears.png diff --git a/Resources/Textures/Interface/Inventory/ears_headset.png b/Resources/Textures/Interface/Inventory/Default/ears_headset.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ears_headset.png rename to Resources/Textures/Interface/Inventory/Default/ears_headset.png diff --git a/Resources/Textures/Interface/Inventory/glasses.png b/Resources/Textures/Interface/Inventory/Default/glasses.png similarity index 100% rename from Resources/Textures/Interface/Inventory/glasses.png rename to Resources/Textures/Interface/Inventory/Default/glasses.png diff --git a/Resources/Textures/Interface/Inventory/gloves.png b/Resources/Textures/Interface/Inventory/Default/gloves.png similarity index 100% rename from Resources/Textures/Interface/Inventory/gloves.png rename to Resources/Textures/Interface/Inventory/Default/gloves.png diff --git a/Resources/Textures/Interface/Inventory/hand_l.png b/Resources/Textures/Interface/Inventory/Default/hand_l.png similarity index 100% rename from Resources/Textures/Interface/Inventory/hand_l.png rename to Resources/Textures/Interface/Inventory/Default/hand_l.png diff --git a/Resources/Textures/Interface/Inventory/hand_l_no_letter.png b/Resources/Textures/Interface/Inventory/Default/hand_l_no_letter.png similarity index 100% rename from Resources/Textures/Interface/Inventory/hand_l_no_letter.png rename to Resources/Textures/Interface/Inventory/Default/hand_l_no_letter.png diff --git a/Resources/Textures/Interface/Inventory/hand_r.png b/Resources/Textures/Interface/Inventory/Default/hand_r.png similarity index 100% rename from Resources/Textures/Interface/Inventory/hand_r.png rename to Resources/Textures/Interface/Inventory/Default/hand_r.png diff --git a/Resources/Textures/Interface/Inventory/hand_r_no_letter.png b/Resources/Textures/Interface/Inventory/Default/hand_r_no_letter.png similarity index 100% rename from Resources/Textures/Interface/Inventory/hand_r_no_letter.png rename to Resources/Textures/Interface/Inventory/Default/hand_r_no_letter.png diff --git a/Resources/Textures/Interface/Inventory/head.png b/Resources/Textures/Interface/Inventory/Default/head.png similarity index 100% rename from Resources/Textures/Interface/Inventory/head.png rename to Resources/Textures/Interface/Inventory/Default/head.png diff --git a/Resources/Textures/Interface/Inventory/id.png b/Resources/Textures/Interface/Inventory/Default/id.png similarity index 100% rename from Resources/Textures/Interface/Inventory/id.png rename to Resources/Textures/Interface/Inventory/Default/id.png diff --git a/Resources/Textures/Interface/Inventory/inventory.png b/Resources/Textures/Interface/Inventory/Default/inventory.png similarity index 100% rename from Resources/Textures/Interface/Inventory/inventory.png rename to Resources/Textures/Interface/Inventory/Default/inventory.png diff --git a/Resources/Textures/Interface/Inventory/mask.png b/Resources/Textures/Interface/Inventory/Default/mask.png similarity index 100% rename from Resources/Textures/Interface/Inventory/mask.png rename to Resources/Textures/Interface/Inventory/Default/mask.png diff --git a/Resources/Textures/Interface/Inventory/meta.json b/Resources/Textures/Interface/Inventory/Default/meta.json similarity index 100% rename from Resources/Textures/Interface/Inventory/meta.json rename to Resources/Textures/Interface/Inventory/Default/meta.json diff --git a/Resources/Textures/Interface/Inventory/neck.png b/Resources/Textures/Interface/Inventory/Default/neck.png similarity index 100% rename from Resources/Textures/Interface/Inventory/neck.png rename to Resources/Textures/Interface/Inventory/Default/neck.png diff --git a/Resources/Textures/Interface/Inventory/pda.png b/Resources/Textures/Interface/Inventory/Default/pda.png similarity index 100% rename from Resources/Textures/Interface/Inventory/pda.png rename to Resources/Textures/Interface/Inventory/Default/pda.png diff --git a/Resources/Textures/Interface/Inventory/pocket.png b/Resources/Textures/Interface/Inventory/Default/pocket.png similarity index 100% rename from Resources/Textures/Interface/Inventory/pocket.png rename to Resources/Textures/Interface/Inventory/Default/pocket.png diff --git a/Resources/Textures/Interface/Inventory/shoes.png b/Resources/Textures/Interface/Inventory/Default/shoes.png similarity index 100% rename from Resources/Textures/Interface/Inventory/shoes.png rename to Resources/Textures/Interface/Inventory/Default/shoes.png diff --git a/Resources/Textures/Interface/Inventory/suit.png b/Resources/Textures/Interface/Inventory/Default/suit.png similarity index 100% rename from Resources/Textures/Interface/Inventory/suit.png rename to Resources/Textures/Interface/Inventory/Default/suit.png diff --git a/Resources/Textures/Interface/Inventory/suit_storage.png b/Resources/Textures/Interface/Inventory/Default/suit_storage.png similarity index 100% rename from Resources/Textures/Interface/Inventory/suit_storage.png rename to Resources/Textures/Interface/Inventory/Default/suit_storage.png diff --git a/Resources/Textures/Interface/Inventory/uniform.png b/Resources/Textures/Interface/Inventory/Default/uniform.png similarity index 100% rename from Resources/Textures/Interface/Inventory/uniform.png rename to Resources/Textures/Interface/Inventory/Default/uniform.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/back.png b/Resources/Textures/Interface/Inventory/Modernized/back.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/back.png rename to Resources/Textures/Interface/Inventory/Modernized/back.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/belt.png b/Resources/Textures/Interface/Inventory/Modernized/belt.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/belt.png rename to Resources/Textures/Interface/Inventory/Modernized/belt.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/block.png b/Resources/Textures/Interface/Inventory/Modernized/block.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/block.png rename to Resources/Textures/Interface/Inventory/Modernized/block.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/ears.png b/Resources/Textures/Interface/Inventory/Modernized/ears.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/ears.png rename to Resources/Textures/Interface/Inventory/Modernized/ears.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/glasses.png b/Resources/Textures/Interface/Inventory/Modernized/glasses.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/glasses.png rename to Resources/Textures/Interface/Inventory/Modernized/glasses.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/gloves.png b/Resources/Textures/Interface/Inventory/Modernized/gloves.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/gloves.png rename to Resources/Textures/Interface/Inventory/Modernized/gloves.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/hand_l.png b/Resources/Textures/Interface/Inventory/Modernized/hand_l.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/hand_l.png rename to Resources/Textures/Interface/Inventory/Modernized/hand_l.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/hand_l_active.png b/Resources/Textures/Interface/Inventory/Modernized/hand_l_active.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/hand_l_active.png rename to Resources/Textures/Interface/Inventory/Modernized/hand_l_active.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/hand_r.png b/Resources/Textures/Interface/Inventory/Modernized/hand_r.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/hand_r.png rename to Resources/Textures/Interface/Inventory/Modernized/hand_r.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/hand_r_active.png b/Resources/Textures/Interface/Inventory/Modernized/hand_r_active.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/hand_r_active.png rename to Resources/Textures/Interface/Inventory/Modernized/hand_r_active.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/head.png b/Resources/Textures/Interface/Inventory/Modernized/head.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/head.png rename to Resources/Textures/Interface/Inventory/Modernized/head.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/id.png b/Resources/Textures/Interface/Inventory/Modernized/id.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/id.png rename to Resources/Textures/Interface/Inventory/Modernized/id.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/inventory.png b/Resources/Textures/Interface/Inventory/Modernized/inventory.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/inventory.png rename to Resources/Textures/Interface/Inventory/Modernized/inventory.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/mask.png b/Resources/Textures/Interface/Inventory/Modernized/mask.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/mask.png rename to Resources/Textures/Interface/Inventory/Modernized/mask.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/meta b/Resources/Textures/Interface/Inventory/Modernized/meta similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/meta rename to Resources/Textures/Interface/Inventory/Modernized/meta diff --git a/Resources/Textures/Interface/Inventory/ike-ui/neck.png b/Resources/Textures/Interface/Inventory/Modernized/neck.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/neck.png rename to Resources/Textures/Interface/Inventory/Modernized/neck.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/pocket.png b/Resources/Textures/Interface/Inventory/Modernized/pocket.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/pocket.png rename to Resources/Textures/Interface/Inventory/Modernized/pocket.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/sheet.png b/Resources/Textures/Interface/Inventory/Modernized/sheet.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/sheet.png rename to Resources/Textures/Interface/Inventory/Modernized/sheet.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/shoes.png b/Resources/Textures/Interface/Inventory/Modernized/shoes.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/shoes.png rename to Resources/Textures/Interface/Inventory/Modernized/shoes.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/suit.png b/Resources/Textures/Interface/Inventory/Modernized/suit.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/suit.png rename to Resources/Textures/Interface/Inventory/Modernized/suit.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/suit_storage.png b/Resources/Textures/Interface/Inventory/Modernized/suit_storage.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/suit_storage.png rename to Resources/Textures/Interface/Inventory/Modernized/suit_storage.png diff --git a/Resources/Textures/Interface/Inventory/ike-ui/uniform.png b/Resources/Textures/Interface/Inventory/Modernized/uniform.png similarity index 100% rename from Resources/Textures/Interface/Inventory/ike-ui/uniform.png rename to Resources/Textures/Interface/Inventory/Modernized/uniform.png diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/back.png b/Resources/Textures/Interface/Inventory/current-ui-layer/back.png deleted file mode 100644 index f48b3c1811a69351a7bd7d80c7ebc189786cc0e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)|v9?9+*o5kGO6A|Y5!l~G&!n+E92tlA> zs|uUt0?BabkHkQ}TDhUv3!_Og#)lOc5W!R>s;Y$6QJcgI0*omTPzW7F*zMMkI_QI6 zfjDuy4`{l2v!li$oj#g)Uf02S3heUw{4s^8iZ)H#dLR z0RijT%&i~blu#PW{jyg9)ulij4_q-xqIj4>5n*_HTT@{mAl-hb#c}ImC-#n)QW#y0 zT)eXgRQVnl-5F~ux8nmgvspc2aXkJGYP9RF9jW#m-5D3J1KuOJ`t)Fu;Q+;U2iN)x zq>~%B7OLn?8_L||HbZHPmY{snITDBY!QlCaHX~L066X#DA zU&DI@;;>(D-y}E*uk0j_6ysS06a}bk)$4c)#9!j{!Arnxxas>3ftony5^zq;_2bi! zuyooPSTr}EOKzJuXI{no>?Nh-cthp6T+ooCs76Xs8D zO|Dar!gjgpt>yzHvAh}5znkZ;E=J#b(D@pQd~yXJ*y~BQcDnYF;JQz%+4DgD2FaCs i3FCKZUvR;{0)XFw2Ra`N_?k8V0000fwSvUe4&H+`Lk7FZ`NoqF=h!qR` zBCAg3&AgY%)CdR&2nY!HYp_axyB#3Iw>vCm`={PiQU~U8x+PE=9d>3kH>V+ z-QeQt8oZ2m_sfMN{w#aLLn_cJtu-yfolZ`9xs?r$j7#58wK+OIA$Al+?qe`>MHE4I z&_hvV-@d;PU1XaSfPz-0AKJADr4;SnUSGJ^f#GQMwTnp9wOHx`d6Lz}4!VP?p2yo} z8*4dY==A%DneaH)jPeXePL!4r&twAAX|u8-0kjp)lN7qJLbUP?y!^_G0Ogq6x{j%7 zTxy@|%|L~o=zDvqBo!6He1f#K13%T#y2+^xNR`_b=bR3gy_fbfRUc{dAl4y=|d#4-k$ruI%3=N|dD w=K$s0-0ze$L&;0b=Ck@72nYxW_~!ud2{}frRzHO+H2?qr07*qoM6N<$f};h^&j0`b diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/ears.png b/Resources/Textures/Interface/Inventory/current-ui-layer/ears.png deleted file mode 100644 index 364876d42e30f967bf8fab71fcad7faec8295f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y08L|d?eiqXsKb1g$3~A>HEdKDFh(TGe{}1 zvJtR(uLUI1Vhu6qTgxb4w1ol67dnU@#+abu1_3lpgBXO>-Gk1G!U+qfF5Uk^7-ZYE z15tq1yKmG%F9)zqwh-I9iFoAJ+pcoYBwj;s(ix;E06ggQbw`&A5D3t96;j+EBR8hU zK{rU^>u~pi^pPc-99s2mJxMrvg=Cd8+VTKV z{Y-6D!HyIYbLk$JhdOz;bKk20%2L7p5m;9>h|&l|@tf!wve{Q|GA;&?W%=0}i*vwj zJBSPG#5sDNh_O48mo11=sTz6Ve~+ht#rwV=&c08Nn}qv4)Y6l1v&mp5xia=Jh-XJ} z24iuQ&qR3)X@a&61L*U6ovr;K;xwPcF%d7Jc8}DdKi-Cm0pQf&kV5=b9OV;Ho?DQ*W?DlIS gzuC=h_HP(~->1J5zT_$2BLDyZ07*qoM6N<$f}|@HR{#J2 diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/ears_headset.png b/Resources/Textures/Interface/Inventory/current-ui-layer/ears_headset.png deleted file mode 100644 index c3cfd7990fb0e2e1af22cbd1e24f5281f905f78a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)#PNB?i8WeUm4%KEox zsDD*AV7W|hmvdAoK>)&>7SmUNYo=fjZvbo#9OMZt=qMWsBnZL_z%;jHL4$-sY(mV* zH)_D9F>A>iKnyOTGMmyUa(un2o7Dh_ig47h8E}C8;YfxS0weRWSOgjj$+i+sEEfU*18 zN-SlphqByh2*!F*F>$S!l~*O4yMbVICe+dU^Im)qRWrFK*rGxkmFy1vYkNuuzz}L+ o>ko;hRDiKRC|OxqzZD_m1J7BM;}T2}UH||907*qoM6N<$g5I5rYybcN diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/glasses.png b/Resources/Textures/Interface/Inventory/current-ui-layer/glasses.png deleted file mode 100644 index 2f78c380feac21aa4bb7c5d8cc88d4ea504dbb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)CztwjnP54(XEB5z5JcUc>)B5ruCIm1sl%;KD8?XK4%z-~??atXCnShhV@|R*TB|7^ zs2Q`GbDW*&G)@1PfW1!}>0x%{>S8j&di=!7zJajMBBHZSw|WC2SQI&yqdQ)d1e)D) z*1Oi@{tde{)&)oHQ@yL%Xn@leX#U1UxzesyIh!PMV)hDHO}K#3RgeaunsS#nMR sc;q;WT{6}rHu)b{?(uj$p1lLWJFrx*6|=2tIRF3v07*qoM6N<$f`kgOZ~y=R diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/gloves.png b/Resources/Textures/Interface/Inventory/current-ui-layer/gloves.png deleted file mode 100644 index d150b43ed4c83da30954d69f65c9ca1450267a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)NklDg}#bARCHrRh}V%vb*+uOhH#g|W?{XKs(H!|&@Nc$^_)k5)8?aa~I<>Q0D z2LZFI>!XRO^f(w_&JCxFr1QI)P<~se@%7wf>69a(#!?I2Rv=9f>!mVQ!UzLLF67)V z?)+VC9eJLGpcE2{6jbCulbI2TKoVz&L>zJ`A&6v7Svs|1j~-AWMwG-pr%r^4G@)KC z)Uj>^0cBb3ef8+_+8`0gk~16lzC8i# z4(ru-G!J({gxeG~>(Woir|M_G2(4ge+7t?y8#$7`$dUEr3}y+)-k$q2%}d3kRb6&V zcjnL(C3w)$`ccU&g|Z5^c4&0hA)biVNT_UtoZ`L!o`gIB?bAvLRjYxw$zN8f>t^2K$Ew;5TJAif6aC2BH7}002ov JPDHLkV1h)LTU-DD diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/hand_l.png b/Resources/Textures/Interface/Inventory/current-ui-layer/hand_l.png deleted file mode 100644 index 363767a8dff0974fec13694a2ead205fc435ba31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)Nkl#uwzE$kK7Qst&&wCjF`Z5~zKh$gzyNSl0DRgD z8UFs0_a;_kOGnv+Gs@$6h|zd^>A&yZzr8kg z6oA$m;_#u>*%-7csRA5#peIi)8^)+uNb3YFS$Os_VdDX4be{ZTM@dSNs1&RijUt;E zMsqxuSGln}fFO8wkhD3R!a>k#96%r^HvhShhCSF{y7Jcam#cu*?nDogjUf&nSzEOz zt7>b6CaEo;~-YTGC7k3>kAt_G8X z9*sex2V0vV3Lx9thbR{^1iz4UrGzAmt;0L54q!|T&vA_y1<2KxqZ zX$L_PY&?o@CrIc-;_)+!G>4!hjBkr7?2s}0K@@<~Vc1y&@C))ch&$A)8gKO)%?{E6%6aZrk)WxMUMFrY3 zYrx9{y7}tF3f4`{&MP=_2ojPDn*>1Xr{K?1#*`z|IYbKvO)j&7;eN}nW#j(=6d{NQ z)4%2v2f^qnf`B)!{9Ut^010x`w@OAmjP_!tW{{$Sy0~(#8_{;%X#jRRkpnIJa)(|V z1RjMx$LiC@eOOhe0qA~id2D;QS86*4o=2t_cIqMIVb&FB{rPA!Bmop>E2y^S==@pG zy)t50*T;WGpTpW7LDCvA31Apo{As$UloK$y0sYj#&4CEJz|#&QXM?dFV&+Z)kQExH zC?CH?fFJ_0zt~RQV`=sfpcyp8%pFtGG4z8)4~vxrd_F-DLu^3v;{h2xFs{Ej|HI diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/hand_r.png b/Resources/Textures/Interface/Inventory/current-ui-layer/hand_r.png deleted file mode 100644 index 59ccf46f97710273f925b3cc2993e229c2b4e544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P){PwNWOv*3UcIU=^yqPDP!s>7$4_|Ym7YI)y0^^PY}R@%TFz**`1PB& zdkg4-Y&qY$(CE^?LXZQ85^y8?<>rp8{Jb;b`8 zpmkn9yR3)D4-6C`QAaNC1{(=UJciC-fOoANK>|i;3K9fG0(5&~T<~V%Ej>_j>Hq0M zP!le+hS4jCyZ1f0xJJJJMG11?&S(rVJ~6R60;5F9Kt#L0{x+-p_+qf_o?$@_P@P)g(x(u#1cn#q}5v9^~}6^ zwlQG9fB^$OJt!rB+4QD&K36)vtE)K&Dl*-?UkmJV5kLO8|9O;Krx+;9VmDT#phZJx z9#YSk48e>FWHj3SBSt`G&i?V?B!7|tYn$CTR6V}BVHiST&O+TiF%pV=0$YQDZ$~wf z3{+(aQUpT^^kv3@ykGcD9%!YFYfeF>7+6^gwi~F6>nN@c#FMsCFOm}YT1}uPQ_js9 z1T9(tGTL7%?-v9=A`mbCQym~F0jj55)DsA`aN7o%(rAU_(+Bp9&8pd*gby1C@WODe zi5o8nJ8s^k@Mb2|989X!gU-j*N#3+muv}++jPJG)L!E3c!UdPlkQ@?gY@aL~h zDl931t`ZNB9EiKE1-VDY)}%d}dKMe*y+Ds@NXGClzqIvWQr&z=&5=toF<`)e cPYeM60JNyK<_cf-_5c6?07*qoM6N<$f?~hb&;S4c diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/head.png b/Resources/Textures/Interface/Inventory/current-ui-layer/head.png deleted file mode 100644 index 0ff0c1c5be418f77e4824a369961434958d2990a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFp7D)IEF;DCQGm`P7vv7YGmvA z@n-#s6$iBTCBB~cUtw13WZpCXKmQfqWRl#loww^(UmxF`GJ}ay3<{@z{&1CWn9<$K z@5=XT!GGy(a*DTX#ENv>*%aJsl7F~#8EP~<5m;cRaFQ|JZvSDeJ~>e!{d<4PQME;9 zR5ZC99^9Rs&ZD#DO~JqU_w66Pk+lu3#O1i^q4wan+v8Vo3c8COWvIB!z^yK=yzAf&h9WD5NUp;Q#vg7q z`U^=hDY*Y>?_8*E!M5W4#9FTtL5pM=v@ULYW6iorBu`;e@&sL0%PEYSS{$r@HJ||y f$iT+K!^5znBj-8y#9vo{0mb0y>gTe~DWM4fXzGL8 diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/id.png b/Resources/Textures/Interface/Inventory/current-ui-layer/id.png deleted file mode 100644 index 760452f9ff3ff7400795d707bf9624ffed5ad602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJGoCJvArY;~60D08M0%P8`6V{8 z9{BU~v*a#yoj=ZN4`}Lkq|kPMwn?g~PsL4e zSE2#CqBYOmiAUPR9N8ZjaYSF4AROz`%CM17*|b;SEkh0`=aj7uk)m$N5Nkl8Jo7Ah%01 zudA1>E>LQhkpT?U0qm`a=rgCDfL%J_%w@uzp%`sJvU?f;?{4oUYb;p&I+RU|D zQ7+70o{e>Q=0pUd+X;w80wTX1ziLg~|8W=ik%Z3XH&?0aNi-_L@1i(6zjTGz`Inx| hfIuJ+2>ujA^a)0BuzpKGyrKXA002ovPDHLkV1lIatJ(kn diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/neck.png b/Resources/Textures/Interface/Inventory/current-ui-layer/neck.png deleted file mode 100644 index cfdbf10d2919d122b7de70235f52794f4148fb3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)^fYPEsznsqAO9g~Tk*JCaI{jz3G8_-?0O~n! z2amuh_0;$A>{7=n@>9upGSy1#iKxwyuX}VF`>9bMa{rq0* zKwGg5OvhS1uN`bbtM9Oh@0S6sm{P7@f=KmT1Jg+0kBe*P`x-QMbs(-24r`86uXW&z z`ZC9eiwd1v)(af4cQpc5n~Oz)oX`u7z2oieKrCYL$%PC>xN*b+*2mFcWKv&d_v|D| zoPbhF<3_dibRaKs@QE9kMgrH%tgrH&93bnv)N9pwI#<9tFYSGy>#vK~I`Ajpm#DT& z!ovYwcAu%*s{6sVo$z*GnWg4E*>O9)|G_IH1~0tSPDN)#tm z6ersKvVWZcOSNFL-Bok;KOXjj3l=KzWw@TC%+5J*UR0_>4hA5&q$hA3w|AcN0^~q# z+Xl|ndy@h{@gN9$=d&z*yj{zKqGFUS#|3~iH%1|OY%1gcglN|ogM4y8S{?Xm3IhLK zWQ?)a7*>1}`CCf>LUd?MoZegcaJv@zZb6p_bkv1N!59Zdw_+3#58`>B#fc7JAD}>T z02__C>oQqZ&ja``ceK}lx*hwiuQ4@1@~Nu_s3^;lv`*;&+KG*Zno}WMr)7Qs*7J`> mvQx%!T;=cHU@-hS0B{E_y?UI2;#tW60000?TBX)8W}auE;w|DVv8qE>zA6ST0|D9&bM5Aq}w7F9H&EAf(}NJ;GR zoHG{>X3Ur|W5)jmP2qp{_C0ja2s&6WT4t7Y#_*=m4H0D^e9%EJgASJ*`Tq0O3<^#fa^$mgplNNq}`0iWK(u*VLGEF6{a+3uE++--u1>{>X8P>#059 zp@`6NhSMDb?pMS8E`WE8ZQY`$ep2+41r)__pHmjPyBmo;O+Oib!pu^Rw3jb)WIW03 fj2Sa#004dfRmIzAK3_4p00000NkvXXu0mjfT_*ZP diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/shoes.png b/Resources/Textures/Interface/Inventory/current-ui-layer/shoes.png deleted file mode 100644 index 16f9a4de38a82e6bec6230467d73d11c99cac917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)}?W@BdD_*-0Rngg`L5)=j3Q0|BK-yV}L_No^X}_HV~QAP@)y z0)LI_(w~g){YpxK4I>*riUM7DS?qUjoaPU5naaZ8bN<3Y0%NVW&F1ed9quY1%Tkac zXv5HKAm|~z%Rwh0VoDHACCU>pMMt~y-miBU4iZ#CsC*ITs!nGCMNuFELysm>6M-Uy zvMit!fqRXZf&#_l*V;%^R9(Va14Z{x>SV-PCn)!Y|F)HX`@ORt zIK;Skm&fJ1rqfwK(^)fTvDNW`vR+W95mt*CtT9+E=6>&wLD@5Z7vFu=Z;W8GUV^qg zKlAep&5d?*w#H(&d16Th@-ch;@kPtu`I@@E*=ryW2n7Bq0KNgeW}*If7@!;g0000< KMNUMnLSTYOM!K&6 diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/suit.png b/Resources/Textures/Interface/Inventory/current-ui-layer/suit.png deleted file mode 100644 index 10857fe792b0adc851054d6825fd673d684ca25e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)jXqiBS;F4Z#pNSCQzJpX#0g{Av@=Hx#zRb1UKAp z!~cfx#sBv39olMOa&MfWc-BT5SfV3G3UQY6`16N%dD=&q#uL0oV-rVX1YwLqDHGO( zCQINZxJiLpP0VEa3Hx1zQc5%3m-=x)cD(|sFfn)O970M2GQxJFVO}cKR-#r0s@71_ zLeFN1MkB~bA{@ua*DEvR{a%6)?JkkUVW?+cjUo#oa`Qq+CN%S8yM7)>AAxKQDHXJg zI0o+LpN~P=&OJY~o#&aycJ>(#3-dAR%#=F5s5S2eIwhj`m#UtEKb1 zN(MHY(xtlVBq2$3`cBq}oZnRhB*|#-ejdPl_PdIJt&R+rUmq3(+qOQK&wfJ$c=t)k z09u77_UHAl<2apv>AqBj&hIJ$niJpKg7z_8w1MpapN|T-glzfL2 zhOw_WDY;$@o;P*n_?Aw~^FsnCU+bb+!&+)Yi1RCR!Fk>in9qJ!5ulR*@ouAwENev6 zl@sB9+}i#aJj)!P{f5A+aH;v6G{v5((@aql+~zBti|!ZG#Rd8ZhdZ6W ze8SyUzhq=&`xpE+IPdvrSL$67K>gkIa>EV(5CDDydZ!O|lq5kP00000NkvXXu0mjf DmsumS diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/suit_storage.png b/Resources/Textures/Interface/Inventory/current-ui-layer/suit_storage.png deleted file mode 100644 index 24e724f2f184f390cc29159635dcbfe7ffeb1a31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 881 zcmV-%1CIQOP)>SA1o_Dkav0shmE|jmOSjNrd<6gG3Mq{yo}sumfD{0dLku-? z$^NvO#o~fS_v?q(0AB3HzI$T>0k^le`2Dv(ptT7&;fz6Q31pY#e&nAeae_AHSw5pL zXZY*yKXHA1?Y`x7aJfujj2^!k7$PIl#4AeT6{1CgTnJjITpDd)FYCiNgAy5K=daPV zH7d^OysKo#$oWi-F&=ye0II4S8L-s2z}Z{6Sib_}91)LE7810tp)`jQ1fe7Z*N|6N zh?h(7m}9X@u)E(-oB!Jb4H-BI;FtlyIf(TWjK=UPuYM$9G>kD|jP+F+KiYZSQO?BOsgXV*P^~mpq0t1fvy-vcxwrVAnTRwcKs) zX#M7$OTfW#v3>)W-HNP#+W$kQ-R2Ids-;MlU#|i59Y98cU#x;jhh*&VoS0pjqNrd+ zc-#q3GLSk3!U+pVG(Fe({=ZqWxp`fr=@KnyHpl= zeOLVR>7xu7$SyDYH|~;7Au7|MEt?V8GCmvP1%6fY;33=YNmB?G1wI~3*p_@U>Ta97 zq0))l-c45m#wTve8m9A!+}%DPm_J~N;O5x5V;mcE5beZwwno;HC=K38lM5O}b_wc} z416ihBS*sl0O{7pVPY;c3)~JzK7yzEv<<$byTHebG!)?opvp`4JQg7)LbL&-T%7C# zpFq1L^}d{KLQ@e=YV&4~N zd0i-}@c!5Lj~~YmMKRk6Bh$(pjIwC$+E9uF+{{5}XpnB){Cs;4v%8n&b9chyvj9E) zi?)#Y7L={mAk+?oFZOU29FlL5w1sTb2;vcqKkFj(d8Bm00000NkvXX Hu0mjf#WA1) diff --git a/Resources/Textures/Interface/Inventory/current-ui-layer/uniform.png b/Resources/Textures/Interface/Inventory/current-ui-layer/uniform.png deleted file mode 100644 index 90de19de07b354dc1ce6e4fafda14578fbae7151..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVpS0*h>9CmxSW)t-|*QbB{JU zmXRpW-%KcgEzXl_)UWOD#|n#OEs@u=M5EIy1Kb4dt-^FF@cFHraVUCSgNP(vU}1$9 zylpts`+PFpIP2W#|6~qBKgRk07QltNrh#+z-*YqMg=Z%g(EeOUZSzBVYOIlB_jemP zsYK#@F9Mm@{#s8v1$kCNm9?QK_CD=BgA{?+^YWds{U%sIm;+tw)kdilVi(RZ5-;C= zJsa^u5TvxobBWD%E6pZv1zs+$@#p^TfyXU~;~Yg%Oe>)6I_Oux)ne&Q64SSQkZo(6sqxcISeh7MY!@+uOnGvGn-{0Rl{iOhZ-xi=pSDSvGa whuy>aIdfj1b>Im&(K%Saj2Sa#JaYi}3$uE?J)@xu!~g&Q07*qoM6N<$f(}*gjQ{`u