Fix inventory flickering and missing InventoryTemplateUpdated event (#39379)

* fix flickering

* move InitClothing

* fix this
This commit is contained in:
slarticodefast
2025-08-06 22:14:28 +02:00
committed by GitHub
parent f76e3b63b7
commit 6b6bb2e319
3 changed files with 11 additions and 6 deletions

View File

@@ -115,6 +115,13 @@ namespace Content.Client.Inventory
OnLinkInventorySlots?.Invoke(uid, component);
}
protected override void OnInit(Entity<InventoryComponent> ent, ref ComponentInit args)
{
base.OnInit(ent, ref args);
_clothingVisualsSystem.InitClothing(ent.Owner, ent.Comp);
}
public override void Shutdown()
{
CommandBinds.Unregister<ClientInventorySystem>();
@@ -261,7 +268,6 @@ namespace Content.Client.Inventory
TryAddSlotData((ent.Owner, inventorySlots), (SlotData)slot);
}
_clothingVisualsSystem.InitClothing(ent, ent.Comp);
if (ent.Owner == _playerManager.LocalEntity)
ReloadInventory(inventorySlots);
}

View File

@@ -194,8 +194,6 @@ public abstract partial class InventorySystem
if (triggerHandContact && !((slotDefinition.SlotFlags & SlotFlags.GLOVES) == 0))
TriggerHandContactInteraction(target);
Dirty(target, inventory);
_movementSpeed.RefreshMovementSpeedModifiers(target);
return true;
@@ -487,8 +485,6 @@ public abstract partial class InventorySystem
if (triggerHandContact && !((slotDefinition.SlotFlags & SlotFlags.GLOVES) == 0))
TriggerHandContactInteraction(target);
Dirty(target, inventory);
_movementSpeed.RefreshMovementSpeedModifiers(target);
return true;

View File

@@ -74,7 +74,7 @@ public partial class InventorySystem : EntitySystem
Dirty(target, targetComp);
}
private void OnInit(Entity<InventoryComponent> ent, ref ComponentInit args)
protected virtual void OnInit(Entity<InventoryComponent> ent, ref ComponentInit args)
{
UpdateInventoryTemplate(ent);
}
@@ -111,6 +111,9 @@ public partial class InventorySystem : EntitySystem
container.OccludesLight = false;
ent.Comp.Containers[i] = container;
}
var ev = new InventoryTemplateUpdated();
RaiseLocalEvent(ent, ref ev);
}
private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args)