]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Corner Clothing UI (#22883)
authorNemanja <98561806+EmoGarbage404@users.noreply.github.com>
Sat, 23 Dec 2023 06:32:23 +0000 (01:32 -0500)
committerGitHub <noreply@github.com>
Sat, 23 Dec 2023 06:32:23 +0000 (23:32 -0700)
* Corner clothing (save point)

* IT WORKS. YIPPEE

* the last of it

* template rejigs

32 files changed:
Content.Client/UserInterface/Screens/DefaultGameScreen.xaml
Content.Client/UserInterface/Screens/DefaultGameScreen.xaml.cs
Content.Client/UserInterface/Screens/SeparatedChatGameScreen.xaml
Content.Client/UserInterface/Screens/SeparatedChatGameScreen.xaml.cs
Content.Client/UserInterface/Systems/Hotbar/HotbarUIController.cs
Content.Client/UserInterface/Systems/Hotbar/Widgets/HotbarGui.xaml
Content.Client/UserInterface/Systems/Hotbar/Widgets/HotbarGui.xaml.cs
Content.Client/UserInterface/Systems/Inventory/Controls/ItemSlotUIContainer.cs
Content.Client/UserInterface/Systems/Inventory/InventoryUIController.cs
Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml [new file with mode: 0644]
Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml.cs [new file with mode: 0644]
Content.Client/UserInterface/Systems/MenuBar/GameTopMenuBarUIController.cs
Content.Client/UserInterface/Systems/MenuBar/Widgets/GameTopMenuBar.xaml
Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml
Resources/Prototypes/InventoryTemplates/borg.yml
Resources/Prototypes/InventoryTemplates/corpse_inventory_template.yml
Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml
Resources/Prototypes/InventoryTemplates/drone_inventory_template.yml
Resources/Prototypes/InventoryTemplates/hamster_inventory_template.yml
Resources/Prototypes/InventoryTemplates/head_inventory_template.yml
Resources/Prototypes/InventoryTemplates/human_inventory_template.yml
Resources/Prototypes/InventoryTemplates/kangaroo_inventory_template.yml
Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml
Resources/Prototypes/InventoryTemplates/pet_inventory_template.yml
Resources/Textures/Interface/Clockwork/Slots/toggle.png [new file with mode: 0644]
Resources/Textures/Interface/Default/Slots/toggle.png [new file with mode: 0644]
Resources/Textures/Interface/Eris/Slots/toggle.png [moved from Resources/Textures/Interface/Eris/Slots/inventory.png with 100% similarity]
Resources/Textures/Interface/Minimalist/Slots/inventory.png [deleted file]
Resources/Textures/Interface/Minimalist/Slots/toggle.png [moved from Resources/Textures/Interface/Default/Slots/inventory.png with 100% similarity]
Resources/Textures/Interface/Plasmafire/Slots/toggle.png [new file with mode: 0644]
Resources/Textures/Interface/Retro/Slots/toggle.png [new file with mode: 0644]
Resources/Textures/Interface/Slimecore/Slots/toggle.png [new file with mode: 0644]

index 5c09574005b9c0e10e513581bea21fc43f3fab63..54aeffe72c97168cc1b8ecc52ef20af34f2e2745 100644 (file)
@@ -8,6 +8,7 @@
     xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
     xmlns:hotbar="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
     xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
+    xmlns:inventory="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Widgets"
     Name="DefaultHud"
     VerticalExpand="False"
     VerticalAlignment="Bottom"
@@ -25,6 +26,7 @@
         <actions:ActionsBar Name="Actions" Access="Protected" />
     </BoxContainer>
     <widgets:GhostGui Name="Ghost" Access="Protected" />
+    <inventory:InventoryGui Name="Inventory" Access="Protected" />
     <hotbar:HotbarGui Name="Hotbar" Access="Protected" />
     <chat:ResizableChatBox Name="Chat" Access="Protected" />
     <alerts:AlertsUI Name="Alerts" Access="Protected" />
index a8a53e83c786932f8d91eb7d484b3f4fc7308112..0fb1b7d507f8c5142910d306ac85a32517e60816 100644 (file)
@@ -18,6 +18,7 @@ public sealed partial class DefaultGameScreen : InGameScreen
         SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
         SetAnchorAndMarginPreset(TopLeft, LayoutPreset.TopLeft, margin: 10);
         SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
+        SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
         SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
         SetAnchorAndMarginPreset(Chat, LayoutPreset.TopRight, margin: 10);
         SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
index d62ad33dfc1848ff4fcbe4b35405d1ed9626b2ff..7f1d1bcd5b19a1c2cea1d0063aa51886b35cf3ed 100644 (file)
@@ -9,6 +9,7 @@
     xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
     xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
     xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
+    xmlns:inventory="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Widgets"
     Name="SeparatedChatHud"
     VerticalExpand="False"
     VerticalAlignment="Bottom"
@@ -17,7 +18,8 @@
         <LayoutContainer Name="ViewportContainer" HorizontalExpand="True" VerticalExpand="True">
             <controls:MainViewport Name="MainViewport"/>
             <widgets:GhostGui Name="Ghost" Access="Protected" />
-            <hotbar:HotbarGui Name="Hotbar" Access="Protected" />
+            <inventory:InventoryGui Name="Inventory" Access="Protected"/>
+            <hotbar:HotbarGui Name="Hotbar" Access="Protected"/>
             <BoxContainer Name="TopLeftContainer" Orientation="Vertical">
                 <actions:ActionsBar Name="Actions" Access="Protected" />
                 <BoxContainer Name="VoteMenu" Access="Public" Orientation="Vertical"/>
index 7816cf1be194275e92964acb6e55486bf49120c9..45a29e03f1dda73ab115c067961a75c6960c16a5 100644 (file)
@@ -18,6 +18,7 @@ public sealed partial class SeparatedChatGameScreen : InGameScreen
         SetAnchorPreset(ScreenContainer, LayoutPreset.Wide);
         SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
         SetAnchorPreset(MainViewport, LayoutPreset.Wide);
+        SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
         SetAnchorAndMarginPreset(TopLeftContainer, LayoutPreset.TopLeft, margin: 10);
         SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
         SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
index 397da978d8acd246e6890e3161d7b428b9a4d9aa..daececcd35a222adb58d2d2f697d856966a97e28 100644 (file)
@@ -4,6 +4,7 @@ using Content.Client.UserInterface.Systems.Hands.Controls;
 using Content.Client.UserInterface.Systems.Hotbar.Widgets;
 using Content.Client.UserInterface.Systems.Inventory;
 using Content.Client.UserInterface.Systems.Inventory.Controls;
+using Content.Client.UserInterface.Systems.Inventory.Widgets;
 using Content.Client.UserInterface.Systems.Storage;
 using Content.Client.UserInterface.Systems.Storage.Controls;
 using Robust.Client.UserInterface;
@@ -30,13 +31,12 @@ public sealed class HotbarUIController : UIController
         ReloadHotbar();
     }
 
-    public void Setup(HandsContainer handsContainer, ItemSlotButtonContainer inventoryBar, ItemStatusPanel handStatus, StorageContainer storageContainer)
+    public void Setup(HandsContainer handsContainer, ItemStatusPanel handStatus, StorageContainer storageContainer)
     {
         _inventory = UIManager.GetUIController<InventoryUIController>();
         _hands = UIManager.GetUIController<HandsUIController>();
         _storage = UIManager.GetUIController<StorageUIController>();
         _hands.RegisterHandContainer(handsContainer);
-        _inventory.RegisterInventoryBarContainer(inventoryBar);
         _storage.RegisterStorageContainer(storageContainer);
     }
 
@@ -47,25 +47,35 @@ public sealed class HotbarUIController : UIController
             return;
         }
 
-        var hotbar = UIManager.ActiveScreen.GetWidget<HotbarGui>();
+        if (UIManager.ActiveScreen.GetWidget<HotbarGui>() is { } hotbar)
+        {
+            foreach (var container in GetAllItemSlotContainers(hotbar))
+            {
+                // Yes, this is dirty.
+                container.SlotGroup = container.SlotGroup;
+            }
+        }
 
-        if (hotbar == null)
+        _hands?.ReloadHands();
+        _inventory?.ReloadSlots();
+
+        //todo move this over to its own hellhole
+        var inventory = UIManager.ActiveScreen.GetWidget<InventoryGui>();
+        if (inventory == null)
         {
             return;
         }
 
-        foreach (var container in GetAllItemSlotContainers(hotbar))
+        foreach (var container in GetAllItemSlotContainers(inventory))
         {
             // Yes, this is dirty.
             container.SlotGroup = container.SlotGroup;
         }
 
-        _hands?.ReloadHands();
-        _inventory?.ReloadSlots();
-        _inventory?.RegisterInventoryBarContainer(hotbar.InventoryHotbar);
+        _inventory?.RegisterInventoryBarContainer(inventory.InventoryHotbar);
     }
 
-    private IEnumerable<ItemSlotButtonContainer> GetAllItemSlotContainers(Control gui)
+    private static IEnumerable<ItemSlotButtonContainer> GetAllItemSlotContainers(Control gui)
     {
         var result = new List<ItemSlotButtonContainer>();
 
index 04b606de0808c1945ce068d4e99aa93aae6c6d88..0e9f0c77f97431f47e9c3f518f753acc3636a1cc 100644 (file)
@@ -5,38 +5,26 @@
     xmlns:hands="clr-namespace:Content.Client.UserInterface.Systems.Hands.Controls"
     xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
     Name="HotbarInterface"
-    VerticalExpand="False"
+    VerticalExpand="True"
     VerticalAlignment="Bottom"
     Orientation="Vertical"
     HorizontalAlignment="Center">
-    <Control HorizontalAlignment="Center">
-        <inventory:ItemStatusPanel
-            Name="StatusPanel"
-            Visible="False"
-            HorizontalAlignment="Center"
-        />
-        <BoxContainer Name="StorageContainer"
-                      Access="Public"
-                      HorizontalAlignment="Center"
-                      Margin="10">
-            <storage:StorageContainer
-                Name="StoragePanel"
-                Visible="False"/>
-        </BoxContainer>
-    </Control>
     <BoxContainer Orientation="Vertical">
-        <inventory:ItemSlotButtonContainer
-            Name="InventoryHotbar"
-            Access="Public"
-            Visible="False"
-            Columns="10"
-            SlotGroup="Default"
-            ExpandBackwards="True"
-            VerticalExpand="True"
-            HorizontalAlignment="Center"
-            VerticalAlignment="Bottom"
-            Margin="0 0 0 4"
-        />
+        <Control HorizontalAlignment="Center">
+            <inventory:ItemStatusPanel
+                Name="StatusPanel"
+                Visible="False"
+                HorizontalAlignment="Center"
+            />
+            <BoxContainer Name="StorageContainer"
+                          Access="Public"
+                          HorizontalAlignment="Center"
+                          Margin="10">
+                <storage:StorageContainer
+                    Name="StoragePanel"
+                    Visible="False"/>
+            </BoxContainer>
+        </Control>
         <BoxContainer Orientation="Horizontal" Name="Hotbar" HorizontalAlignment="Center">
             <inventory:ItemSlotButtonContainer
                 Name="SecondHotbar"
index 0e670d978f8e0eb06008bdadfd5a8a7ce1c6a48b..a6f12a63ac1bb8b714e665c5582a7758fc23488d 100644 (file)
@@ -13,7 +13,7 @@ public sealed partial class HotbarGui : UIWidget
         StatusPanel.Update(null);
         var hotbarController = UserInterfaceManager.GetUIController<HotbarUIController>();
 
-        hotbarController.Setup(HandContainer, InventoryHotbar, StatusPanel, StoragePanel);
+        hotbarController.Setup(HandContainer, StatusPanel, StoragePanel);
         LayoutContainer.SetGrowVertical(this, LayoutContainer.GrowDirection.Begin);
     }
 
index d44a4a2d765f826ca1d73a9def53b24b1b12dd0e..df45ceabf627cfd2db3aade345e03e5558b5a2e5 100644 (file)
@@ -16,6 +16,14 @@ public abstract class ItemSlotUIContainer<T> : GridContainer, IItemslotUIContain
 {
     protected readonly Dictionary<string, T> Buttons = new();
 
+    private int? _maxColumns;
+
+    public int? MaxColumns
+    {
+        get => _maxColumns;
+        set => _maxColumns = value;
+    }
+
     public virtual bool TryAddButton(T newButton, out T button)
     {
         var tempButton = AddButton(newButton);
@@ -68,7 +76,7 @@ public abstract class ItemSlotUIContainer<T> : GridContainer, IItemslotUIContain
     {
         if (!Children.Contains(newButton) && newButton.Parent == null && newButton.SlotName != "")
             AddChild(newButton);
-        Columns = ChildCount;
+        Columns = _maxColumns ?? ChildCount;
         return AddButtonToDict(newButton);
     }
 
index 59beaa5a0294ccb1576ab753845347fb427c7744..8af68282f30103eb7e0c9026d6a08bf7a7819c8c 100644 (file)
@@ -1,8 +1,12 @@
+using System.Linq;
+using System.Numerics;
 using Content.Client.Gameplay;
 using Content.Client.Hands.Systems;
 using Content.Client.Inventory;
 using Content.Client.UserInterface.Controls;
+using Content.Client.UserInterface.Systems.Gameplay;
 using Content.Client.UserInterface.Systems.Inventory.Controls;
+using Content.Client.UserInterface.Systems.Inventory.Widgets;
 using Content.Client.UserInterface.Systems.Inventory.Windows;
 using Content.Shared.Hands.Components;
 using Content.Shared.Input;
@@ -16,7 +20,6 @@ using Robust.Shared.Input.Binding;
 using Robust.Shared.Map;
 using Robust.Shared.Utility;
 using static Content.Client.Inventory.ClientInventorySystem;
-using static Robust.Client.UserInterface.Controls.BaseButton;
 
 namespace Content.Client.UserInterface.Systems.Inventory;
 
@@ -35,9 +38,26 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
 
     private StrippingWindow? _strippingWindow;
     private ItemSlotButtonContainer? _inventoryHotbar;
-    private MenuButton? InventoryButton => UIManager.ActiveScreen?.GetWidget<MenuBar.Widgets.GameTopMenuBar>()?.InventoryButton;
+    private SlotButton? _inventoryButton;
 
-    private SlotControl? _lastHovered = null;
+    private SlotControl? _lastHovered;
+
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        var gameplayStateLoad = UIManager.GetUIController<GameplayStateLoadController>();
+        gameplayStateLoad.OnScreenLoad += OnScreenLoad;
+    }
+
+    private void OnScreenLoad()
+    {
+        if (UIManager.ActiveScreen == null)
+            return;
+
+        var inventoryGui = UIManager.GetActiveUIWidget<InventoryGui>();
+        RegisterInventoryButton(inventoryGui.InventoryButton);
+    }
 
     public void OnStateEntered(GameplayState state)
     {
@@ -67,26 +87,6 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
         CommandBinds.Unregister<ClientInventorySystem>();
     }
 
-    public void UnloadButton()
-    {
-        if (InventoryButton == null)
-        {
-            return;
-        }
-
-        InventoryButton.OnPressed -= InventoryButtonPressed;
-    }
-
-    public void LoadButton()
-    {
-        if (InventoryButton == null)
-        {
-            return;
-        }
-
-        InventoryButton.OnPressed += InventoryButtonPressed;
-    }
-
     private SlotButton CreateSlotButton(SlotData data)
     {
         var button = new SlotButton(data);
@@ -102,8 +102,25 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
         _inventoryHotbar = inventoryHotbar;
     }
 
-    private void InventoryButtonPressed(ButtonEventArgs args)
+    public void RegisterInventoryButton(SlotButton? button)
+    {
+        if (_inventoryButton != null)
+        {
+            _inventoryButton.Pressed -= InventoryButtonPressed;
+        }
+
+        if (button != null)
+        {
+            _inventoryButton = button;
+            _inventoryButton.Pressed += InventoryButtonPressed;
+        }
+    }
+
+    private void InventoryButtonPressed(GUIBoundKeyEventArgs args, SlotControl control)
     {
+        if (args.Function != EngineKeyFunctions.UIClick)
+            return;
+
         ToggleInventoryBar();
     }
 
@@ -130,6 +147,52 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
             var update = new SlotSpriteUpdate(data.HeldEntity, data.SlotGroup, data.SlotName, showStorage);
             SpriteUpdated(update);
         }
+
+        if (_inventoryHotbar == null)
+            return;
+
+        var clothing = clientInv.SlotData.Where(p => !p.Value.HasSlotGroup).ToList();
+
+        if (_inventoryButton != null)
+            _inventoryButton.Visible = clothing.Count != 0;
+        if (clothing.Count == 0)
+            return;
+
+        foreach (var child in new List<Control>(_inventoryHotbar.Children))
+        {
+            if (child is not SlotControl)
+                _inventoryHotbar.RemoveChild(child);
+        }
+
+        var maxWidth = clothing.Max(p => p.Value.ButtonOffset.X) + 1;
+        var maxIndex = clothing.Select(p => GetIndex(p.Value.ButtonOffset)).Max();
+
+        _inventoryHotbar.MaxColumns = maxWidth;
+        _inventoryHotbar.Columns = maxWidth;
+
+        for (var i = 0; i <= maxIndex; i++)
+        {
+            var index = i;
+            if (clothing.FirstOrNull(p => GetIndex(p.Value.ButtonOffset) == index) is { } pair)
+            {
+                if (_inventoryHotbar.TryGetButton(pair.Key, out var slot))
+                    slot.SetPositionLast();
+            }
+            else
+            {
+                _inventoryHotbar.AddChild(new Control
+                {
+                    MinSize = new Vector2(64, 64)
+                });
+            }
+        }
+
+        return;
+
+        int GetIndex(Vector2i position)
+        {
+            return position.Y * maxWidth + position.X;
+        }
     }
 
     private void UpdateStrippingWindow(InventorySlotsComponent? clientInv)
@@ -178,18 +241,7 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
         }
 
         UpdateInventoryHotbar(_playerInventory);
-        if (_inventoryHotbar.Visible)
-        {
-            _inventoryHotbar.Visible = false;
-            if (InventoryButton != null)
-                InventoryButton.Pressed = false;
-        }
-        else
-        {
-            _inventoryHotbar.Visible = true;
-            if (InventoryButton != null)
-                InventoryButton.Pressed = true;
-        }
+        _inventoryHotbar.Visible = !_inventoryHotbar.Visible;
     }
 
     // Neuron Activation
diff --git a/Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml b/Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml
new file mode 100644 (file)
index 0000000..576d06d
--- /dev/null
@@ -0,0 +1,30 @@
+<widgets:InventoryGui
+    xmlns="https://spacestation14.io"
+    xmlns:inventory="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Controls"
+    xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Widgets"
+    xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
+    Name="InventoryInterface"
+    VerticalExpand="True"
+    VerticalAlignment="Bottom"
+    Orientation="Horizontal"
+    HorizontalAlignment="Center">
+    <Control HorizontalAlignment="Center">
+        <controls:SlotButton
+            Name="InventoryButton"
+            Access="Public"
+            VerticalAlignment="Bottom"
+            HorizontalExpand="False"
+            VerticalExpand="False"
+            ButtonTexturePath="Slots/toggle"/>
+        <inventory:ItemSlotButtonContainer
+            Name="InventoryHotbar"
+            Access="Public"
+            Visible="False"
+            MaxColumns="3"
+            SlotGroup="Default"
+            ExpandBackwards="True"
+            VerticalExpand="True"
+            HorizontalAlignment="Center"
+        />
+    </Control>
+</widgets:InventoryGui>
diff --git a/Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml.cs b/Content.Client/UserInterface/Systems/Inventory/Widgets/InventoryGui.xaml.cs
new file mode 100644 (file)
index 0000000..90154c5
--- /dev/null
@@ -0,0 +1,19 @@
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.XAML;
+
+namespace Content.Client.UserInterface.Systems.Inventory.Widgets;
+
+[GenerateTypedNameReferences]
+public sealed partial class InventoryGui : UIWidget
+{
+    public InventoryGui()
+    {
+        RobustXamlLoader.Load(this);
+
+        var inventoryUIController = UserInterfaceManager.GetUIController<InventoryUIController>();
+        inventoryUIController.RegisterInventoryBarContainer(InventoryHotbar);
+
+        LayoutContainer.SetGrowVertical(this, LayoutContainer.GrowDirection.Begin);
+    }
+}
index b399e83fc61db88e13a5e0603ae1d51cc9a52902..1505db48a796ec2ecaf36ce81bbcba34116ff712 100644 (file)
@@ -6,7 +6,6 @@ using Content.Client.UserInterface.Systems.Crafting;
 using Content.Client.UserInterface.Systems.EscapeMenu;
 using Content.Client.UserInterface.Systems.Gameplay;
 using Content.Client.UserInterface.Systems.Guidebook;
-using Content.Client.UserInterface.Systems.Inventory;
 using Content.Client.UserInterface.Systems.MenuBar.Widgets;
 using Content.Client.UserInterface.Systems.Sandbox;
 using Robust.Client.UserInterface.Controllers;
@@ -16,7 +15,6 @@ namespace Content.Client.UserInterface.Systems.MenuBar;
 public sealed class GameTopMenuBarUIController : UIController
 {
     [Dependency] private readonly EscapeUIController _escape = default!;
-    [Dependency] private readonly InventoryUIController _inventory = default!;
     [Dependency] private readonly AdminUIController _admin = default!;
     [Dependency] private readonly CharacterUIController _character = default!;
     [Dependency] private readonly CraftingUIController _crafting = default!;
@@ -40,7 +38,6 @@ public sealed class GameTopMenuBarUIController : UIController
     {
         _escape.UnloadButton();
         _guidebook.UnloadButton();
-        _inventory.UnloadButton();
         _admin.UnloadButton();
         _character.UnloadButton();
         _crafting.UnloadButton();
@@ -53,7 +50,6 @@ public sealed class GameTopMenuBarUIController : UIController
     {
         _escape.LoadButton();
         _guidebook.LoadButton();
-        _inventory.LoadButton();
         _admin.LoadButton();
         _character.LoadButton();
         _crafting.LoadButton();
index 6765699531b3956e383809e62b8ab17298aa33e9..3c8cd1d164f2dbf6284b6ef4345db136d8d38e1d 100644 (file)
         HorizontalExpand="True"
         AppendStyleClass="{x:Static style:StyleBase.ButtonSquare}"
         />
-    <ui:MenuButton
-        Name="InventoryButton"
-        Access="Internal"
-        Icon="{xe:Tex '/Textures/Interface/inventory.svg.192dpi.png'}"
-        BoundKey = "{x:Static is:ContentKeyFunctions.OpenInventoryMenu}"
-        ToolTip="{Loc 'game-hud-open-inventory-menu-button-tooltip'}"
-        MinSize="42 64"
-        HorizontalExpand="True"
-        AppendStyleClass="{x:Static style:StyleBase.ButtonSquare}"
-        />
     <ui:MenuButton
         Name="CraftingButton"
         Access="Internal"
index b2559d6f179677530de1e841c0e6fb76da8a8642..daf0161b7cb19610579862dca4a0172dd8ddb4d7 100644 (file)
@@ -5,52 +5,52 @@
       slotTexture: shoes
       slotFlags: FEET
       stripTime: 3
-      uiWindowPos: 1,3
+      uiWindowPos: 1,0
       strippingWindowPos: 1,3
       displayName: Shoes
     - name: jumpsuit
       slotTexture: uniform
       slotFlags: INNERCLOTHING
       stripTime: 6
-      uiWindowPos: 0,2
+      uiWindowPos: 0,1
       strippingWindowPos: 0,2
       displayName: Jumpsuit
     - name: gloves
       slotTexture: gloves
       slotFlags: GLOVES
-      uiWindowPos: 2,2
+      uiWindowPos: 2,1
       strippingWindowPos: 2,2
       displayName: Gloves
     - name: neck
       slotTexture: neck
       slotFlags: NECK
-      uiWindowPos: 0,1
+      uiWindowPos: 0,2
       strippingWindowPos: 0,1
       displayName: Neck
     - name: mask
       slotTexture: mask
       slotFlags: MASK
-      uiWindowPos: 1,1
+      uiWindowPos: 1,2
       strippingWindowPos: 1,1
       displayName: Mask
     - name: eyes
       slotTexture: glasses
       slotFlags: EYES
       stripTime: 3
-      uiWindowPos: 0,0
+      uiWindowPos: 0,3
       strippingWindowPos: 0,0
       displayName: Eyes
     - name: ears
       slotTexture: ears
       slotFlags: EARS
       stripTime: 3
-      uiWindowPos: 2,0
+      uiWindowPos: 2,2
       strippingWindowPos: 2,0
       displayName: Ears
     - name: head
       slotTexture: head
       slotFlags: HEAD
-      uiWindowPos: 1,0
+      uiWindowPos: 1,3
       strippingWindowPos: 1,0
       displayName: Head
     - name: id
@@ -99,7 +99,7 @@
       slotTexture: suit
       slotFlags: OUTERCLOTHING
       stripTime: 6
-      uiWindowPos: 1,2
+      uiWindowPos: 1,1
       strippingWindowPos: 1,2
       displayName: Suit
     - name: pocket1
index 9d7a3dddbdff6fd5c054bc5cb41966a932ce55c5..a03be16708d5284405fe1528c05cf9df0defddd0 100644 (file)
@@ -4,8 +4,7 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    slotGroup: MainHotbar
-    uiWindowPos: 0,0
+    uiWindowPos: 1,0
     strippingWindowPos: 0,0
     displayName: Head
     offset: 0, -0.09375
@@ -16,8 +15,7 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    slotGroup: MainHotbar
-    uiWindowPos: 0,0
+    uiWindowPos: 1,0
     strippingWindowPos: 0,0
     displayName: Head
     offset: 0, -0.1875
@@ -40,8 +38,7 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    slotGroup: MainHotbar
-    uiWindowPos: 0,0
+    uiWindowPos: 1,0
     strippingWindowPos: 0,0
     displayName: Head
     offset: 0, 0.09375
index 227624c690f131b5a72b2bd53fe529cd2d018217..41fa7dc375f87b425c1346afdb618bf6f0f0c214 100644 (file)
@@ -5,52 +5,52 @@
       slotTexture: shoes
       slotFlags: FEET
       stripTime: 3
-      uiWindowPos: 1,3
+      uiWindowPos: 1,0
       strippingWindowPos: 1,3
       displayName: Shoes
     - name: jumpsuit
       slotTexture: uniform
       slotFlags: INNERCLOTHING
       stripTime: 6
-      uiWindowPos: 0,2
+      uiWindowPos: 0,1
       strippingWindowPos: 0,2
       displayName: Jumpsuit
     - name: outerClothing
       slotTexture: suit
       slotFlags: OUTERCLOTHING
       stripTime: 6
-      uiWindowPos: 1,2
+      uiWindowPos: 1,1
       strippingWindowPos: 1,2
       displayName: Suit
     - name: gloves
       slotTexture: gloves
       slotFlags: GLOVES
-      uiWindowPos: 2,2
+      uiWindowPos: 2,1
       strippingWindowPos: 2,2
       displayName: Gloves
     - name: neck
       slotTexture: neck
       slotFlags: NECK
-      uiWindowPos: 0,1
+      uiWindowPos: 0,2
       strippingWindowPos: 0,1
       displayName: Neck
     - name: mask
       slotTexture: mask
       slotFlags: MASK
-      uiWindowPos: 1,1
+      uiWindowPos: 1,2
       strippingWindowPos: 1,1
       displayName: Mask
     - name: eyes
       slotTexture: glasses
       slotFlags: EYES
       stripTime: 3
-      uiWindowPos: 0,0
+      uiWindowPos: 0,3
       strippingWindowPos: 0,0
       displayName: Eyes
     - name: head
       slotTexture: head
       slotFlags: HEAD
-      uiWindowPos: 1,0
+      uiWindowPos: 1,3
       strippingWindowPos: 1,0
       displayName: Head
     - name: pocket1
index 3fcbd8df6b4daf74683c576b06fc5d3ce0739d9d..4bbd18b13645d2d0964b723e5b8da2ec728f56c1 100644 (file)
@@ -6,52 +6,52 @@
       slotTexture: uniform
       slotFlags: INNERCLOTHING
       stripTime: 6
-      uiWindowPos: 0,2
+      uiWindowPos: 0,1
       strippingWindowPos: 0,2
       displayName: Jumpsuit
     - name: outerClothing
       slotTexture: suit
       slotFlags: OUTERCLOTHING
       stripTime: 6
-      uiWindowPos: 1,2
+      uiWindowPos: 1,1
       strippingWindowPos: 1,2
       displayName: Suit
     - name: gloves
       slotTexture: gloves
       slotFlags: GLOVES
-      uiWindowPos: 2,2
+      uiWindowPos: 2,1
       strippingWindowPos: 2,2
       displayName: Gloves
     - name: neck
       slotTexture: neck
       slotFlags: NECK
-      uiWindowPos: 0,1
+      uiWindowPos: 0,2
       strippingWindowPos: 0,1
       displayName: Neck
     - name: mask
       slotTexture: mask
       slotFlags: MASK
-      uiWindowPos: 1,1
+      uiWindowPos: 1,2
       strippingWindowPos: 1,1
       displayName: Mask
     - name: eyes
       slotTexture: glasses
       slotFlags: EYES
       stripTime: 3
-      uiWindowPos: 0,0
+      uiWindowPos: 0,3
       strippingWindowPos: 0,0
       displayName: Eyes
     - name: ears
       slotTexture: ears
       slotFlags: EARS
       stripTime: 3
-      uiWindowPos: 2,0
+      uiWindowPos: 2,2
       strippingWindowPos: 2,0
       displayName: Ears
     - name: head
       slotTexture: head
       slotFlags: HEAD
-      uiWindowPos: 1,0
+      uiWindowPos: 1,3
       strippingWindowPos: 1,0
       displayName: Head
     - name: pocket1
index e7b49c37e5ba84ca4631c436c143cc06005e60cf..be61d9c029ba34e7b66d1691b49cbe481b8afd60 100644 (file)
@@ -4,8 +4,7 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    slotGroup: MainHotbar
-    uiWindowPos: 0,0
+    uiWindowPos: 1,0
     strippingWindowPos: 0,0
     displayName: Head
     offset: 0, -0.45
index cb94e6848503d912ff08cd0139ace123ba63bca5..3170417d9d76f1bbfd4e0cca5105fed29080bcf0 100644 (file)
@@ -15,7 +15,7 @@
     slotTexture: neck
     slotFlags: NECK
     uiWindowPos: 0,1
-    strippingWindowPos: 0,1
+    strippingWindowPos: 1,0
     displayName: Neck
     whitelist:
       tags:
@@ -24,7 +24,7 @@
     slotTexture: glasses
     slotFlags: EYES
     stripTime: 3
-    uiWindowPos: 0,0
+    uiWindowPos: 0,1
     strippingWindowPos: 0,0
     displayName: Eyes
     whitelist:
@@ -44,9 +44,9 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    uiWindowPos: 1,0
+    uiWindowPos: 1,2
     strippingWindowPos: 1,0
     displayName: Head
     whitelist:
       tags:
-        - HamsterWearable
\ No newline at end of file
+        - HamsterWearable
index bf62e4283b65daf57bcac19eaadb5934b013e609..4e3c40c81d431670e3d5e847a4427da5d39127ff 100644 (file)
@@ -4,7 +4,6 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    slotGroup: MainHotbar
-    uiWindowPos: 0,0
+    uiWindowPos: 0,1
     strippingWindowPos: 0,0
     displayName: Head
index aaf22ac34c56b2fc382b5fe9887c890799b779af..574ecca35f492226271de33262bc9c2ad5762eb6 100644 (file)
@@ -5,59 +5,59 @@
       slotTexture: shoes
       slotFlags: FEET
       stripTime: 3
-      uiWindowPos: 1,3
+      uiWindowPos: 1,0
       strippingWindowPos: 1,3
       displayName: Shoes
     - name: jumpsuit
       slotTexture: uniform
       slotFlags: INNERCLOTHING
       stripTime: 6
-      uiWindowPos: 0,2
+      uiWindowPos: 0,1
       strippingWindowPos: 0,2
       displayName: Jumpsuit
     - name: outerClothing
       slotTexture: suit
       slotFlags: OUTERCLOTHING
       stripTime: 6
-      uiWindowPos: 1,2
+      uiWindowPos: 1,1
       strippingWindowPos: 1,2
       displayName: Suit
     - name: gloves
       slotTexture: gloves
       slotFlags: GLOVES
-      uiWindowPos: 2,2
+      uiWindowPos: 2,1
       strippingWindowPos: 2,2
       displayName: Gloves
     - name: neck
       slotTexture: neck
       slotFlags: NECK
-      uiWindowPos: 0,1
+      uiWindowPos: 0,2
       strippingWindowPos: 0,1
       displayName: Neck
     - name: mask
       slotTexture: mask
       slotFlags: MASK
-      uiWindowPos: 1,1
+      uiWindowPos: 1,2
       strippingWindowPos: 1,1
       displayName: Mask
     - name: eyes
       slotTexture: glasses
       slotFlags: EYES
       stripTime: 3
-      uiWindowPos: 0,0
+      uiWindowPos: 0,3
       strippingWindowPos: 0,0
       displayName: Eyes
     - name: ears
       slotTexture: ears
       slotFlags: EARS
       stripTime: 3
-      uiWindowPos: 2,0
+      uiWindowPos: 2,2
       strippingWindowPos: 2,0
       displayName: Ears
     - name: head
       slotTexture: head
       slotFlags: HEAD
-      uiWindowPos: 1,0
+      uiWindowPos: 1,3
       strippingWindowPos: 1,0
       displayName: Head
     - name: pocket1
index 775c5acfe601343d4dadff4cafd71a5c85a3d185..fb7dee1ec2b711b664aab5b9a970e31b0421e21f 100644 (file)
@@ -26,7 +26,7 @@
   - name: gloves
     slotTexture: gloves
     slotFlags: GLOVES
-    uiWindowPos: 2,2
+    uiWindowPos: 0,1
     strippingWindowPos: 2,2
     displayName: Gloves
     whitelist:
@@ -71,7 +71,7 @@
   - name: gloves
     slotTexture: gloves
     slotFlags: GLOVES
-    uiWindowPos: 2,2
+    uiWindowPos: 1,0
     strippingWindowPos: 2,2
     displayName: Gloves
     whitelist:
index 121648ebabbe4d2d7b72f18a2bb23d253ac828b1..9a28b2d7bc879eae7fe3f20c72f7e7e7f68290f5 100644 (file)
@@ -4,20 +4,20 @@
   - name: head
     slotTexture: head
     slotFlags: HEAD
-    uiWindowPos: 0,0
+    uiWindowPos: 1,2
     strippingWindowPos: 0,0
     displayName: Head
   - name: ears
     slotTexture: ears
     slotFlags: EARS
     stripTime: 3
-    uiWindowPos: 1,2
+    uiWindowPos: 0,2
     strippingWindowPos: 1,2
     displayName: Ears
   - name: mask
     slotTexture: mask
     slotFlags: MASK
-    uiWindowPos: 1,1
+    uiWindowPos: 0,1
     strippingWindowPos: 1,1
     displayName: Mask
     whitelist:
@@ -30,7 +30,7 @@
     slotTexture: uniform
     slotFlags: INNERCLOTHING
     stripTime: 6
-    uiWindowPos: 0,2
+    uiWindowPos: 1,0
     strippingWindowPos: 0,2
     displayName: Jumpsuit
   - name: id
@@ -55,7 +55,7 @@
     slotTexture: suit
     slotFlags: OUTERCLOTHING
     stripTime: 6
-    uiWindowPos: 1,3
+    uiWindowPos: 1,1
     strippingWindowPos: 1,3
     displayName: Suit
     whitelist:
index 91f9ca20f4c366d70ccb9d2a300666dc4a61efcf..1297b65d8d9a94378bd238514c52fcf7814208d1 100644 (file)
@@ -4,7 +4,7 @@
   - name: mask
     slotTexture: mask
     slotFlags: MASK
-    uiWindowPos: 1,1
+    uiWindowPos: 1,0
     strippingWindowPos: 1,1
     displayName: Mask
     whitelist:
diff --git a/Resources/Textures/Interface/Clockwork/Slots/toggle.png b/Resources/Textures/Interface/Clockwork/Slots/toggle.png
new file mode 100644 (file)
index 0000000..732a80a
Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/Slots/toggle.png differ
diff --git a/Resources/Textures/Interface/Default/Slots/toggle.png b/Resources/Textures/Interface/Default/Slots/toggle.png
new file mode 100644 (file)
index 0000000..72e6526
Binary files /dev/null and b/Resources/Textures/Interface/Default/Slots/toggle.png differ
diff --git a/Resources/Textures/Interface/Minimalist/Slots/inventory.png b/Resources/Textures/Interface/Minimalist/Slots/inventory.png
deleted file mode 100644 (file)
index 33fa9db..0000000
Binary files a/Resources/Textures/Interface/Minimalist/Slots/inventory.png and /dev/null differ
diff --git a/Resources/Textures/Interface/Plasmafire/Slots/toggle.png b/Resources/Textures/Interface/Plasmafire/Slots/toggle.png
new file mode 100644 (file)
index 0000000..0af8cb9
Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/Slots/toggle.png differ
diff --git a/Resources/Textures/Interface/Retro/Slots/toggle.png b/Resources/Textures/Interface/Retro/Slots/toggle.png
new file mode 100644 (file)
index 0000000..ec196eb
Binary files /dev/null and b/Resources/Textures/Interface/Retro/Slots/toggle.png differ
diff --git a/Resources/Textures/Interface/Slimecore/Slots/toggle.png b/Resources/Textures/Interface/Slimecore/Slots/toggle.png
new file mode 100644 (file)
index 0000000..995926d
Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/Slots/toggle.png differ