Files
tbd-station-14/Content.Server/Storage/EntitySystems/ItemCounterSystem.cs
2021-12-03 14:17:01 +01:00

32 lines
975 B
C#

using Content.Server.Storage.Components;
using Content.Shared.Storage.Components;
using Content.Shared.Storage.EntitySystems;
using JetBrains.Annotations;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.Storage.EntitySystems
{
[UsedImplicitly]
public class ItemCounterSystem : SharedItemCounterSystem
{
protected override int? GetCount(ContainerModifiedMessage msg, ItemCounterComponent itemCounter)
{
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(msg.Container.Owner.Uid, out ServerStorageComponent? component)
|| component.StoredEntities == null)
{
return null;
}
var count = 0;
foreach (var entity in component.StoredEntities)
{
if (itemCounter.Count.IsValid(entity.Uid)) count++;
}
return count;
}
}
}