Fix storage cache for existing entities in storage (#6392)
This commit is contained in:
@@ -7,6 +7,7 @@ using Content.Server.DoAfter;
|
|||||||
using Content.Server.Hands.Components;
|
using Content.Server.Hands.Components;
|
||||||
using Content.Server.Interaction;
|
using Content.Server.Interaction;
|
||||||
using Content.Shared.Acts;
|
using Content.Shared.Acts;
|
||||||
|
using Content.Shared.Coordinates;
|
||||||
using Content.Shared.Interaction;
|
using Content.Shared.Interaction;
|
||||||
using Content.Shared.Interaction.Helpers;
|
using Content.Shared.Interaction.Helpers;
|
||||||
using Content.Shared.Item;
|
using Content.Shared.Item;
|
||||||
@@ -121,6 +122,7 @@ namespace Content.Server.Storage.Components
|
|||||||
private void RecalculateStorageUsed()
|
private void RecalculateStorageUsed()
|
||||||
{
|
{
|
||||||
_storageUsed = 0;
|
_storageUsed = 0;
|
||||||
|
_sizeCache.Clear();
|
||||||
|
|
||||||
if (Storage == null)
|
if (Storage == null)
|
||||||
{
|
{
|
||||||
@@ -131,6 +133,7 @@ namespace Content.Server.Storage.Components
|
|||||||
{
|
{
|
||||||
var item = _entityManager.GetComponent<SharedItemComponent>(entity);
|
var item = _entityManager.GetComponent<SharedItemComponent>(entity);
|
||||||
_storageUsed += item.Size;
|
_storageUsed += item.Size;
|
||||||
|
_sizeCache.Add(entity, item.Size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,7 +222,7 @@ namespace Content.Server.Storage.Components
|
|||||||
|
|
||||||
if (!_sizeCache.TryGetValue(message.Entity, out var size))
|
if (!_sizeCache.TryGetValue(message.Entity, out var size))
|
||||||
{
|
{
|
||||||
Logger.WarningS(LoggerName, $"Removed entity {message.Entity} without a cached size from storage {Owner} at {_entityManager.GetComponent<TransformComponent>(Owner).MapPosition}");
|
Logger.WarningS(LoggerName, $"Removed entity {_entityManager.ToPrettyString(message.Entity)} without a cached size from storage {_entityManager.ToPrettyString(Owner)} at {_entityManager.GetComponent<TransformComponent>(Owner).MapPosition}");
|
||||||
|
|
||||||
RecalculateStorageUsed();
|
RecalculateStorageUsed();
|
||||||
return;
|
return;
|
||||||
@@ -434,6 +437,7 @@ namespace Content.Server.Storage.Components
|
|||||||
Storage = Owner.EnsureContainer<Container>("storagebase");
|
Storage = Owner.EnsureContainer<Container>("storagebase");
|
||||||
Storage.OccludesLight = _occludesLight;
|
Storage.OccludesLight = _occludesLight;
|
||||||
UpdateStorageVisualization();
|
UpdateStorageVisualization();
|
||||||
|
EnsureInitialCalculated();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete("Component Messages are deprecated, use Entity Events instead.")]
|
[Obsolete("Component Messages are deprecated, use Entity Events instead.")]
|
||||||
|
|||||||
Reference in New Issue
Block a user