Fix inventory GUI for non-inventory entities (#31306)

Default to invisible and only set visible if itemslots gets initialised.
This commit is contained in:
metalgearsloth
2024-08-23 03:05:17 +10:00
committed by GitHub
parent 7e2de7937f
commit 6553fd3d6e
2 changed files with 9 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ using Robust.Client.UserInterface.Controls;
using Robust.Shared.Input;
using Robust.Shared.Input.Binding;
using Robust.Shared.Map;
using Robust.Shared.Player;
using Robust.Shared.Utility;
using static Content.Client.Inventory.ClientInventorySystem;
@@ -399,6 +400,9 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
foreach (var slotData in clientInv.SlotData.Values)
{
AddSlot(slotData);
if (_inventoryButton != null)
_inventoryButton.Visible = true;
}
UpdateInventoryHotbar(_playerInventory);
@@ -406,6 +410,9 @@ public sealed class InventoryUIController : UIController, IOnStateEntered<Gamepl
private void UnloadSlots()
{
if (_inventoryButton != null)
_inventoryButton.Visible = false;
_playerUid = null;
_playerInventory = null;
foreach (var slotGroup in _slotGroups.Values)

View File

@@ -9,9 +9,11 @@
Orientation="Horizontal"
HorizontalAlignment="Center">
<Control HorizontalAlignment="Center">
<!-- Needs to default to invisible because if we attach to a non-slots entity this will never get unset -->
<controls:SlotButton
Name="InventoryButton"
Access="Public"
Visible="False"
VerticalAlignment="Bottom"
HorizontalExpand="False"
VerticalExpand="False"