Corner Clothing UI (#22883)
* Corner clothing (save point) * IT WORKS. YIPPEE * the last of it * template rejigs
@@ -8,6 +8,7 @@
|
|||||||
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
|
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
|
||||||
xmlns:hotbar="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
|
xmlns:hotbar="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
|
||||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
|
xmlns:inventory="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Widgets"
|
||||||
Name="DefaultHud"
|
Name="DefaultHud"
|
||||||
VerticalExpand="False"
|
VerticalExpand="False"
|
||||||
VerticalAlignment="Bottom"
|
VerticalAlignment="Bottom"
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
<actions:ActionsBar Name="Actions" Access="Protected" />
|
<actions:ActionsBar Name="Actions" Access="Protected" />
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
<widgets:GhostGui Name="Ghost" Access="Protected" />
|
<widgets:GhostGui Name="Ghost" Access="Protected" />
|
||||||
|
<inventory:InventoryGui Name="Inventory" Access="Protected" />
|
||||||
<hotbar:HotbarGui Name="Hotbar" Access="Protected" />
|
<hotbar:HotbarGui Name="Hotbar" Access="Protected" />
|
||||||
<chat:ResizableChatBox Name="Chat" Access="Protected" />
|
<chat:ResizableChatBox Name="Chat" Access="Protected" />
|
||||||
<alerts:AlertsUI Name="Alerts" Access="Protected" />
|
<alerts:AlertsUI Name="Alerts" Access="Protected" />
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public sealed partial class DefaultGameScreen : InGameScreen
|
|||||||
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
|
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
|
||||||
SetAnchorAndMarginPreset(TopLeft, LayoutPreset.TopLeft, margin: 10);
|
SetAnchorAndMarginPreset(TopLeft, LayoutPreset.TopLeft, margin: 10);
|
||||||
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
|
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
|
||||||
|
SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
|
||||||
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
|
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
|
||||||
SetAnchorAndMarginPreset(Chat, LayoutPreset.TopRight, margin: 10);
|
SetAnchorAndMarginPreset(Chat, LayoutPreset.TopRight, margin: 10);
|
||||||
SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
|
SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
|
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Ghost.Widgets"
|
||||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
||||||
|
xmlns:inventory="clr-namespace:Content.Client.UserInterface.Systems.Inventory.Widgets"
|
||||||
Name="SeparatedChatHud"
|
Name="SeparatedChatHud"
|
||||||
VerticalExpand="False"
|
VerticalExpand="False"
|
||||||
VerticalAlignment="Bottom"
|
VerticalAlignment="Bottom"
|
||||||
@@ -17,7 +18,8 @@
|
|||||||
<LayoutContainer Name="ViewportContainer" HorizontalExpand="True" VerticalExpand="True">
|
<LayoutContainer Name="ViewportContainer" HorizontalExpand="True" VerticalExpand="True">
|
||||||
<controls:MainViewport Name="MainViewport"/>
|
<controls:MainViewport Name="MainViewport"/>
|
||||||
<widgets:GhostGui Name="Ghost" Access="Protected" />
|
<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">
|
<BoxContainer Name="TopLeftContainer" Orientation="Vertical">
|
||||||
<actions:ActionsBar Name="Actions" Access="Protected" />
|
<actions:ActionsBar Name="Actions" Access="Protected" />
|
||||||
<BoxContainer Name="VoteMenu" Access="Public" Orientation="Vertical"/>
|
<BoxContainer Name="VoteMenu" Access="Public" Orientation="Vertical"/>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public sealed partial class SeparatedChatGameScreen : InGameScreen
|
|||||||
SetAnchorPreset(ScreenContainer, LayoutPreset.Wide);
|
SetAnchorPreset(ScreenContainer, LayoutPreset.Wide);
|
||||||
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
|
SetAnchorPreset(ViewportContainer, LayoutPreset.Wide);
|
||||||
SetAnchorPreset(MainViewport, LayoutPreset.Wide);
|
SetAnchorPreset(MainViewport, LayoutPreset.Wide);
|
||||||
|
SetAnchorAndMarginPreset(Inventory, LayoutPreset.BottomLeft, margin: 5);
|
||||||
SetAnchorAndMarginPreset(TopLeftContainer, LayoutPreset.TopLeft, margin: 10);
|
SetAnchorAndMarginPreset(TopLeftContainer, LayoutPreset.TopLeft, margin: 10);
|
||||||
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
|
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
|
||||||
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
|
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using Content.Client.UserInterface.Systems.Hands.Controls;
|
|||||||
using Content.Client.UserInterface.Systems.Hotbar.Widgets;
|
using Content.Client.UserInterface.Systems.Hotbar.Widgets;
|
||||||
using Content.Client.UserInterface.Systems.Inventory;
|
using Content.Client.UserInterface.Systems.Inventory;
|
||||||
using Content.Client.UserInterface.Systems.Inventory.Controls;
|
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;
|
||||||
using Content.Client.UserInterface.Systems.Storage.Controls;
|
using Content.Client.UserInterface.Systems.Storage.Controls;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
@@ -30,13 +31,12 @@ public sealed class HotbarUIController : UIController
|
|||||||
ReloadHotbar();
|
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>();
|
_inventory = UIManager.GetUIController<InventoryUIController>();
|
||||||
_hands = UIManager.GetUIController<HandsUIController>();
|
_hands = UIManager.GetUIController<HandsUIController>();
|
||||||
_storage = UIManager.GetUIController<StorageUIController>();
|
_storage = UIManager.GetUIController<StorageUIController>();
|
||||||
_hands.RegisterHandContainer(handsContainer);
|
_hands.RegisterHandContainer(handsContainer);
|
||||||
_inventory.RegisterInventoryBarContainer(inventoryBar);
|
|
||||||
_storage.RegisterStorageContainer(storageContainer);
|
_storage.RegisterStorageContainer(storageContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,25 +47,35 @@ public sealed class HotbarUIController : UIController
|
|||||||
return;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var container in GetAllItemSlotContainers(hotbar))
|
foreach (var container in GetAllItemSlotContainers(inventory))
|
||||||
{
|
{
|
||||||
// Yes, this is dirty.
|
// Yes, this is dirty.
|
||||||
container.SlotGroup = container.SlotGroup;
|
container.SlotGroup = container.SlotGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
_hands?.ReloadHands();
|
_inventory?.RegisterInventoryBarContainer(inventory.InventoryHotbar);
|
||||||
_inventory?.ReloadSlots();
|
|
||||||
_inventory?.RegisterInventoryBarContainer(hotbar.InventoryHotbar);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<ItemSlotButtonContainer> GetAllItemSlotContainers(Control gui)
|
private static IEnumerable<ItemSlotButtonContainer> GetAllItemSlotContainers(Control gui)
|
||||||
{
|
{
|
||||||
var result = new List<ItemSlotButtonContainer>();
|
var result = new List<ItemSlotButtonContainer>();
|
||||||
|
|
||||||
|
|||||||
@@ -5,38 +5,26 @@
|
|||||||
xmlns:hands="clr-namespace:Content.Client.UserInterface.Systems.Hands.Controls"
|
xmlns:hands="clr-namespace:Content.Client.UserInterface.Systems.Hands.Controls"
|
||||||
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
|
xmlns:widgets="clr-namespace:Content.Client.UserInterface.Systems.Hotbar.Widgets"
|
||||||
Name="HotbarInterface"
|
Name="HotbarInterface"
|
||||||
VerticalExpand="False"
|
VerticalExpand="True"
|
||||||
VerticalAlignment="Bottom"
|
VerticalAlignment="Bottom"
|
||||||
Orientation="Vertical"
|
Orientation="Vertical"
|
||||||
HorizontalAlignment="Center">
|
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">
|
<BoxContainer Orientation="Vertical">
|
||||||
<inventory:ItemSlotButtonContainer
|
<Control HorizontalAlignment="Center">
|
||||||
Name="InventoryHotbar"
|
<inventory:ItemStatusPanel
|
||||||
Access="Public"
|
Name="StatusPanel"
|
||||||
Visible="False"
|
Visible="False"
|
||||||
Columns="10"
|
HorizontalAlignment="Center"
|
||||||
SlotGroup="Default"
|
/>
|
||||||
ExpandBackwards="True"
|
<BoxContainer Name="StorageContainer"
|
||||||
VerticalExpand="True"
|
Access="Public"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Bottom"
|
Margin="10">
|
||||||
Margin="0 0 0 4"
|
<storage:StorageContainer
|
||||||
/>
|
Name="StoragePanel"
|
||||||
|
Visible="False"/>
|
||||||
|
</BoxContainer>
|
||||||
|
</Control>
|
||||||
<BoxContainer Orientation="Horizontal" Name="Hotbar" HorizontalAlignment="Center">
|
<BoxContainer Orientation="Horizontal" Name="Hotbar" HorizontalAlignment="Center">
|
||||||
<inventory:ItemSlotButtonContainer
|
<inventory:ItemSlotButtonContainer
|
||||||
Name="SecondHotbar"
|
Name="SecondHotbar"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public sealed partial class HotbarGui : UIWidget
|
|||||||
StatusPanel.Update(null);
|
StatusPanel.Update(null);
|
||||||
var hotbarController = UserInterfaceManager.GetUIController<HotbarUIController>();
|
var hotbarController = UserInterfaceManager.GetUIController<HotbarUIController>();
|
||||||
|
|
||||||
hotbarController.Setup(HandContainer, InventoryHotbar, StatusPanel, StoragePanel);
|
hotbarController.Setup(HandContainer, StatusPanel, StoragePanel);
|
||||||
LayoutContainer.SetGrowVertical(this, LayoutContainer.GrowDirection.Begin);
|
LayoutContainer.SetGrowVertical(this, LayoutContainer.GrowDirection.Begin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,14 @@ public abstract class ItemSlotUIContainer<T> : GridContainer, IItemslotUIContain
|
|||||||
{
|
{
|
||||||
protected readonly Dictionary<string, T> Buttons = new();
|
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)
|
public virtual bool TryAddButton(T newButton, out T button)
|
||||||
{
|
{
|
||||||
var tempButton = AddButton(newButton);
|
var tempButton = AddButton(newButton);
|
||||||
@@ -68,7 +76,7 @@ public abstract class ItemSlotUIContainer<T> : GridContainer, IItemslotUIContain
|
|||||||
{
|
{
|
||||||
if (!Children.Contains(newButton) && newButton.Parent == null && newButton.SlotName != "")
|
if (!Children.Contains(newButton) && newButton.Parent == null && newButton.SlotName != "")
|
||||||
AddChild(newButton);
|
AddChild(newButton);
|
||||||
Columns = ChildCount;
|
Columns = _maxColumns ?? ChildCount;
|
||||||
return AddButtonToDict(newButton);
|
return AddButtonToDict(newButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
using Content.Client.Gameplay;
|
using Content.Client.Gameplay;
|
||||||
using Content.Client.Hands.Systems;
|
using Content.Client.Hands.Systems;
|
||||||
using Content.Client.Inventory;
|
using Content.Client.Inventory;
|
||||||
using Content.Client.UserInterface.Controls;
|
using Content.Client.UserInterface.Controls;
|
||||||
|
using Content.Client.UserInterface.Systems.Gameplay;
|
||||||
using Content.Client.UserInterface.Systems.Inventory.Controls;
|
using Content.Client.UserInterface.Systems.Inventory.Controls;
|
||||||
|
using Content.Client.UserInterface.Systems.Inventory.Widgets;
|
||||||
using Content.Client.UserInterface.Systems.Inventory.Windows;
|
using Content.Client.UserInterface.Systems.Inventory.Windows;
|
||||||
using Content.Shared.Hands.Components;
|
using Content.Shared.Hands.Components;
|
||||||
using Content.Shared.Input;
|
using Content.Shared.Input;
|
||||||
@@ -16,7 +20,6 @@ using Robust.Shared.Input.Binding;
|
|||||||
using Robust.Shared.Map;
|
using Robust.Shared.Map;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using static Content.Client.Inventory.ClientInventorySystem;
|
using static Content.Client.Inventory.ClientInventorySystem;
|
||||||
using static Robust.Client.UserInterface.Controls.BaseButton;
|
|
||||||
|
|
||||||
namespace Content.Client.UserInterface.Systems.Inventory;
|
namespace Content.Client.UserInterface.Systems.Inventory;
|
||||||
|
|
||||||
@@ -35,9 +38,26 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
|
|||||||
|
|
||||||
private StrippingWindow? _strippingWindow;
|
private StrippingWindow? _strippingWindow;
|
||||||
private ItemSlotButtonContainer? _inventoryHotbar;
|
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)
|
public void OnStateEntered(GameplayState state)
|
||||||
{
|
{
|
||||||
@@ -67,26 +87,6 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
|
|||||||
CommandBinds.Unregister<ClientInventorySystem>();
|
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)
|
private SlotButton CreateSlotButton(SlotData data)
|
||||||
{
|
{
|
||||||
var button = new SlotButton(data);
|
var button = new SlotButton(data);
|
||||||
@@ -102,8 +102,25 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
|
|||||||
_inventoryHotbar = inventoryHotbar;
|
_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();
|
ToggleInventoryBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,6 +147,52 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
|
|||||||
var update = new SlotSpriteUpdate(data.HeldEntity, data.SlotGroup, data.SlotName, showStorage);
|
var update = new SlotSpriteUpdate(data.HeldEntity, data.SlotGroup, data.SlotName, showStorage);
|
||||||
SpriteUpdated(update);
|
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)
|
private void UpdateStrippingWindow(InventorySlotsComponent? clientInv)
|
||||||
@@ -178,18 +241,7 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
|
|||||||
}
|
}
|
||||||
|
|
||||||
UpdateInventoryHotbar(_playerInventory);
|
UpdateInventoryHotbar(_playerInventory);
|
||||||
if (_inventoryHotbar.Visible)
|
_inventoryHotbar.Visible = !_inventoryHotbar.Visible;
|
||||||
{
|
|
||||||
_inventoryHotbar.Visible = false;
|
|
||||||
if (InventoryButton != null)
|
|
||||||
InventoryButton.Pressed = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_inventoryHotbar.Visible = true;
|
|
||||||
if (InventoryButton != null)
|
|
||||||
InventoryButton.Pressed = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Neuron Activation
|
// Neuron Activation
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,6 @@ using Content.Client.UserInterface.Systems.Crafting;
|
|||||||
using Content.Client.UserInterface.Systems.EscapeMenu;
|
using Content.Client.UserInterface.Systems.EscapeMenu;
|
||||||
using Content.Client.UserInterface.Systems.Gameplay;
|
using Content.Client.UserInterface.Systems.Gameplay;
|
||||||
using Content.Client.UserInterface.Systems.Guidebook;
|
using Content.Client.UserInterface.Systems.Guidebook;
|
||||||
using Content.Client.UserInterface.Systems.Inventory;
|
|
||||||
using Content.Client.UserInterface.Systems.MenuBar.Widgets;
|
using Content.Client.UserInterface.Systems.MenuBar.Widgets;
|
||||||
using Content.Client.UserInterface.Systems.Sandbox;
|
using Content.Client.UserInterface.Systems.Sandbox;
|
||||||
using Robust.Client.UserInterface.Controllers;
|
using Robust.Client.UserInterface.Controllers;
|
||||||
@@ -16,7 +15,6 @@ namespace Content.Client.UserInterface.Systems.MenuBar;
|
|||||||
public sealed class GameTopMenuBarUIController : UIController
|
public sealed class GameTopMenuBarUIController : UIController
|
||||||
{
|
{
|
||||||
[Dependency] private readonly EscapeUIController _escape = default!;
|
[Dependency] private readonly EscapeUIController _escape = default!;
|
||||||
[Dependency] private readonly InventoryUIController _inventory = default!;
|
|
||||||
[Dependency] private readonly AdminUIController _admin = default!;
|
[Dependency] private readonly AdminUIController _admin = default!;
|
||||||
[Dependency] private readonly CharacterUIController _character = default!;
|
[Dependency] private readonly CharacterUIController _character = default!;
|
||||||
[Dependency] private readonly CraftingUIController _crafting = default!;
|
[Dependency] private readonly CraftingUIController _crafting = default!;
|
||||||
@@ -40,7 +38,6 @@ public sealed class GameTopMenuBarUIController : UIController
|
|||||||
{
|
{
|
||||||
_escape.UnloadButton();
|
_escape.UnloadButton();
|
||||||
_guidebook.UnloadButton();
|
_guidebook.UnloadButton();
|
||||||
_inventory.UnloadButton();
|
|
||||||
_admin.UnloadButton();
|
_admin.UnloadButton();
|
||||||
_character.UnloadButton();
|
_character.UnloadButton();
|
||||||
_crafting.UnloadButton();
|
_crafting.UnloadButton();
|
||||||
@@ -53,7 +50,6 @@ public sealed class GameTopMenuBarUIController : UIController
|
|||||||
{
|
{
|
||||||
_escape.LoadButton();
|
_escape.LoadButton();
|
||||||
_guidebook.LoadButton();
|
_guidebook.LoadButton();
|
||||||
_inventory.LoadButton();
|
|
||||||
_admin.LoadButton();
|
_admin.LoadButton();
|
||||||
_character.LoadButton();
|
_character.LoadButton();
|
||||||
_crafting.LoadButton();
|
_crafting.LoadButton();
|
||||||
|
|||||||
@@ -43,16 +43,6 @@
|
|||||||
HorizontalExpand="True"
|
HorizontalExpand="True"
|
||||||
AppendStyleClass="{x:Static style:StyleBase.ButtonSquare}"
|
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
|
<ui:MenuButton
|
||||||
Name="CraftingButton"
|
Name="CraftingButton"
|
||||||
Access="Internal"
|
Access="Internal"
|
||||||
|
|||||||
@@ -5,52 +5,52 @@
|
|||||||
slotTexture: shoes
|
slotTexture: shoes
|
||||||
slotFlags: FEET
|
slotFlags: FEET
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 1,3
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 1,3
|
strippingWindowPos: 1,3
|
||||||
displayName: Shoes
|
displayName: Shoes
|
||||||
- name: jumpsuit
|
- name: jumpsuit
|
||||||
slotTexture: uniform
|
slotTexture: uniform
|
||||||
slotFlags: INNERCLOTHING
|
slotFlags: INNERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 0,2
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,2
|
strippingWindowPos: 0,2
|
||||||
displayName: Jumpsuit
|
displayName: Jumpsuit
|
||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 2,1
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
- name: neck
|
- name: neck
|
||||||
slotTexture: neck
|
slotTexture: neck
|
||||||
slotFlags: NECK
|
slotFlags: NECK
|
||||||
uiWindowPos: 0,1
|
uiWindowPos: 0,2
|
||||||
strippingWindowPos: 0,1
|
strippingWindowPos: 0,1
|
||||||
displayName: Neck
|
displayName: Neck
|
||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
- name: eyes
|
- name: eyes
|
||||||
slotTexture: glasses
|
slotTexture: glasses
|
||||||
slotFlags: EYES
|
slotFlags: EYES
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 0,3
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Eyes
|
displayName: Eyes
|
||||||
- name: ears
|
- name: ears
|
||||||
slotTexture: ears
|
slotTexture: ears
|
||||||
slotFlags: EARS
|
slotFlags: EARS
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 2,0
|
uiWindowPos: 2,2
|
||||||
strippingWindowPos: 2,0
|
strippingWindowPos: 2,0
|
||||||
displayName: Ears
|
displayName: Ears
|
||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 1,0
|
uiWindowPos: 1,3
|
||||||
strippingWindowPos: 1,0
|
strippingWindowPos: 1,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
- name: id
|
- name: id
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
slotTexture: suit
|
slotTexture: suit
|
||||||
slotFlags: OUTERCLOTHING
|
slotFlags: OUTERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 1,2
|
uiWindowPos: 1,1
|
||||||
strippingWindowPos: 1,2
|
strippingWindowPos: 1,2
|
||||||
displayName: Suit
|
displayName: Suit
|
||||||
- name: pocket1
|
- name: pocket1
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
slotGroup: MainHotbar
|
uiWindowPos: 1,0
|
||||||
uiWindowPos: 0,0
|
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
offset: 0, -0.09375
|
offset: 0, -0.09375
|
||||||
@@ -16,8 +15,7 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
slotGroup: MainHotbar
|
uiWindowPos: 1,0
|
||||||
uiWindowPos: 0,0
|
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
offset: 0, -0.1875
|
offset: 0, -0.1875
|
||||||
@@ -40,8 +38,7 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
slotGroup: MainHotbar
|
uiWindowPos: 1,0
|
||||||
uiWindowPos: 0,0
|
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
offset: 0, 0.09375
|
offset: 0, 0.09375
|
||||||
|
|||||||
@@ -5,52 +5,52 @@
|
|||||||
slotTexture: shoes
|
slotTexture: shoes
|
||||||
slotFlags: FEET
|
slotFlags: FEET
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 1,3
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 1,3
|
strippingWindowPos: 1,3
|
||||||
displayName: Shoes
|
displayName: Shoes
|
||||||
- name: jumpsuit
|
- name: jumpsuit
|
||||||
slotTexture: uniform
|
slotTexture: uniform
|
||||||
slotFlags: INNERCLOTHING
|
slotFlags: INNERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 0,2
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,2
|
strippingWindowPos: 0,2
|
||||||
displayName: Jumpsuit
|
displayName: Jumpsuit
|
||||||
- name: outerClothing
|
- name: outerClothing
|
||||||
slotTexture: suit
|
slotTexture: suit
|
||||||
slotFlags: OUTERCLOTHING
|
slotFlags: OUTERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 1,2
|
uiWindowPos: 1,1
|
||||||
strippingWindowPos: 1,2
|
strippingWindowPos: 1,2
|
||||||
displayName: Suit
|
displayName: Suit
|
||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 2,1
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
- name: neck
|
- name: neck
|
||||||
slotTexture: neck
|
slotTexture: neck
|
||||||
slotFlags: NECK
|
slotFlags: NECK
|
||||||
uiWindowPos: 0,1
|
uiWindowPos: 0,2
|
||||||
strippingWindowPos: 0,1
|
strippingWindowPos: 0,1
|
||||||
displayName: Neck
|
displayName: Neck
|
||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
- name: eyes
|
- name: eyes
|
||||||
slotTexture: glasses
|
slotTexture: glasses
|
||||||
slotFlags: EYES
|
slotFlags: EYES
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 0,3
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Eyes
|
displayName: Eyes
|
||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 1,0
|
uiWindowPos: 1,3
|
||||||
strippingWindowPos: 1,0
|
strippingWindowPos: 1,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
- name: pocket1
|
- name: pocket1
|
||||||
|
|||||||
@@ -6,52 +6,52 @@
|
|||||||
slotTexture: uniform
|
slotTexture: uniform
|
||||||
slotFlags: INNERCLOTHING
|
slotFlags: INNERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 0,2
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,2
|
strippingWindowPos: 0,2
|
||||||
displayName: Jumpsuit
|
displayName: Jumpsuit
|
||||||
- name: outerClothing
|
- name: outerClothing
|
||||||
slotTexture: suit
|
slotTexture: suit
|
||||||
slotFlags: OUTERCLOTHING
|
slotFlags: OUTERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 1,2
|
uiWindowPos: 1,1
|
||||||
strippingWindowPos: 1,2
|
strippingWindowPos: 1,2
|
||||||
displayName: Suit
|
displayName: Suit
|
||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 2,1
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
- name: neck
|
- name: neck
|
||||||
slotTexture: neck
|
slotTexture: neck
|
||||||
slotFlags: NECK
|
slotFlags: NECK
|
||||||
uiWindowPos: 0,1
|
uiWindowPos: 0,2
|
||||||
strippingWindowPos: 0,1
|
strippingWindowPos: 0,1
|
||||||
displayName: Neck
|
displayName: Neck
|
||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
- name: eyes
|
- name: eyes
|
||||||
slotTexture: glasses
|
slotTexture: glasses
|
||||||
slotFlags: EYES
|
slotFlags: EYES
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 0,3
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Eyes
|
displayName: Eyes
|
||||||
- name: ears
|
- name: ears
|
||||||
slotTexture: ears
|
slotTexture: ears
|
||||||
slotFlags: EARS
|
slotFlags: EARS
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 2,0
|
uiWindowPos: 2,2
|
||||||
strippingWindowPos: 2,0
|
strippingWindowPos: 2,0
|
||||||
displayName: Ears
|
displayName: Ears
|
||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 1,0
|
uiWindowPos: 1,3
|
||||||
strippingWindowPos: 1,0
|
strippingWindowPos: 1,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
- name: pocket1
|
- name: pocket1
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
slotGroup: MainHotbar
|
uiWindowPos: 1,0
|
||||||
uiWindowPos: 0,0
|
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
offset: 0, -0.45
|
offset: 0, -0.45
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
slotTexture: neck
|
slotTexture: neck
|
||||||
slotFlags: NECK
|
slotFlags: NECK
|
||||||
uiWindowPos: 0,1
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,1
|
strippingWindowPos: 1,0
|
||||||
displayName: Neck
|
displayName: Neck
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
slotTexture: glasses
|
slotTexture: glasses
|
||||||
slotFlags: EYES
|
slotFlags: EYES
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Eyes
|
displayName: Eyes
|
||||||
whitelist:
|
whitelist:
|
||||||
@@ -44,9 +44,9 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 1,0
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 1,0
|
strippingWindowPos: 1,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
- HamsterWearable
|
- HamsterWearable
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
slotGroup: MainHotbar
|
uiWindowPos: 0,1
|
||||||
uiWindowPos: 0,0
|
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
|
|||||||
@@ -5,59 +5,59 @@
|
|||||||
slotTexture: shoes
|
slotTexture: shoes
|
||||||
slotFlags: FEET
|
slotFlags: FEET
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 1,3
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 1,3
|
strippingWindowPos: 1,3
|
||||||
displayName: Shoes
|
displayName: Shoes
|
||||||
- name: jumpsuit
|
- name: jumpsuit
|
||||||
slotTexture: uniform
|
slotTexture: uniform
|
||||||
slotFlags: INNERCLOTHING
|
slotFlags: INNERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 0,2
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 0,2
|
strippingWindowPos: 0,2
|
||||||
displayName: Jumpsuit
|
displayName: Jumpsuit
|
||||||
- name: outerClothing
|
- name: outerClothing
|
||||||
slotTexture: suit
|
slotTexture: suit
|
||||||
slotFlags: OUTERCLOTHING
|
slotFlags: OUTERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 1,2
|
uiWindowPos: 1,1
|
||||||
strippingWindowPos: 1,2
|
strippingWindowPos: 1,2
|
||||||
displayName: Suit
|
displayName: Suit
|
||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 2,1
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
- name: neck
|
- name: neck
|
||||||
slotTexture: neck
|
slotTexture: neck
|
||||||
slotFlags: NECK
|
slotFlags: NECK
|
||||||
uiWindowPos: 0,1
|
uiWindowPos: 0,2
|
||||||
strippingWindowPos: 0,1
|
strippingWindowPos: 0,1
|
||||||
displayName: Neck
|
displayName: Neck
|
||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
- name: eyes
|
- name: eyes
|
||||||
slotTexture: glasses
|
slotTexture: glasses
|
||||||
slotFlags: EYES
|
slotFlags: EYES
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 0,3
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Eyes
|
displayName: Eyes
|
||||||
- name: ears
|
- name: ears
|
||||||
slotTexture: ears
|
slotTexture: ears
|
||||||
slotFlags: EARS
|
slotFlags: EARS
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 2,0
|
uiWindowPos: 2,2
|
||||||
strippingWindowPos: 2,0
|
strippingWindowPos: 2,0
|
||||||
displayName: Ears
|
displayName: Ears
|
||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 1,0
|
uiWindowPos: 1,3
|
||||||
strippingWindowPos: 1,0
|
strippingWindowPos: 1,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
- name: pocket1
|
- name: pocket1
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
whitelist:
|
whitelist:
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
- name: gloves
|
- name: gloves
|
||||||
slotTexture: gloves
|
slotTexture: gloves
|
||||||
slotFlags: GLOVES
|
slotFlags: GLOVES
|
||||||
uiWindowPos: 2,2
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 2,2
|
strippingWindowPos: 2,2
|
||||||
displayName: Gloves
|
displayName: Gloves
|
||||||
whitelist:
|
whitelist:
|
||||||
|
|||||||
@@ -4,20 +4,20 @@
|
|||||||
- name: head
|
- name: head
|
||||||
slotTexture: head
|
slotTexture: head
|
||||||
slotFlags: HEAD
|
slotFlags: HEAD
|
||||||
uiWindowPos: 0,0
|
uiWindowPos: 1,2
|
||||||
strippingWindowPos: 0,0
|
strippingWindowPos: 0,0
|
||||||
displayName: Head
|
displayName: Head
|
||||||
- name: ears
|
- name: ears
|
||||||
slotTexture: ears
|
slotTexture: ears
|
||||||
slotFlags: EARS
|
slotFlags: EARS
|
||||||
stripTime: 3
|
stripTime: 3
|
||||||
uiWindowPos: 1,2
|
uiWindowPos: 0,2
|
||||||
strippingWindowPos: 1,2
|
strippingWindowPos: 1,2
|
||||||
displayName: Ears
|
displayName: Ears
|
||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 0,1
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
whitelist:
|
whitelist:
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
slotTexture: uniform
|
slotTexture: uniform
|
||||||
slotFlags: INNERCLOTHING
|
slotFlags: INNERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 0,2
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 0,2
|
strippingWindowPos: 0,2
|
||||||
displayName: Jumpsuit
|
displayName: Jumpsuit
|
||||||
- name: id
|
- name: id
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
slotTexture: suit
|
slotTexture: suit
|
||||||
slotFlags: OUTERCLOTHING
|
slotFlags: OUTERCLOTHING
|
||||||
stripTime: 6
|
stripTime: 6
|
||||||
uiWindowPos: 1,3
|
uiWindowPos: 1,1
|
||||||
strippingWindowPos: 1,3
|
strippingWindowPos: 1,3
|
||||||
displayName: Suit
|
displayName: Suit
|
||||||
whitelist:
|
whitelist:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
- name: mask
|
- name: mask
|
||||||
slotTexture: mask
|
slotTexture: mask
|
||||||
slotFlags: MASK
|
slotFlags: MASK
|
||||||
uiWindowPos: 1,1
|
uiWindowPos: 1,0
|
||||||
strippingWindowPos: 1,1
|
strippingWindowPos: 1,1
|
||||||
displayName: Mask
|
displayName: Mask
|
||||||
whitelist:
|
whitelist:
|
||||||
|
|||||||
BIN
Resources/Textures/Interface/Clockwork/Slots/toggle.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
Resources/Textures/Interface/Default/Slots/toggle.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 485 B |
|
Before Width: | Height: | Size: 685 B |
|
Before Width: | Height: | Size: 685 B After Width: | Height: | Size: 685 B |
BIN
Resources/Textures/Interface/Plasmafire/Slots/toggle.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/Textures/Interface/Retro/Slots/toggle.png
Normal file
|
After Width: | Height: | Size: 645 B |
BIN
Resources/Textures/Interface/Slimecore/Slots/toggle.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |