using Robust.Shared.Containers; namespace Content.Server.Containers { public static class ContainerExt { public static int CountPrototypeOccurencesRecursive(this ContainerManagerComponent mgr, string prototypeId) { var entMan = IoCManager.Resolve(); int total = 0; foreach (var container in mgr.GetAllContainers()) { foreach (var entity in container.ContainedEntities) { if (entMan.GetComponent(entity).EntityPrototype?.ID == prototypeId) total++; if(!entMan.TryGetComponent(entity, out var component)) continue; total += component.CountPrototypeOccurencesRecursive(prototypeId); } } return total; } } }