Ejemplo n.º 1
0
        public static int CountPrototypeOccurencesRecursive(this ContainerManagerComponent mgr, string prototypeId)
        {
            int total = 0;

            foreach (var container in mgr.GetAllContainers())
            {
                foreach (var entity in container.ContainedEntities)
                {
                    if (entity.Prototype?.ID == prototypeId)
                    {
                        total++;
                    }
                    if (!entity.TryGetComponent <ContainerManagerComponent>(out var component))
                    {
                        continue;
                    }
                    total += component.CountPrototypeOccurencesRecursive(prototypeId);
                }
            }

            return(total);
        }
Ejemplo n.º 2
0
        public static int CountPrototypeOccurencesRecursive(this ContainerManagerComponent mgr, string prototypeId)
        {
            var entMan = IoCManager.Resolve <IEntityManager>();
            int total  = 0;

            foreach (var container in mgr.GetAllContainers())
            {
                foreach (var entity in container.ContainedEntities)
                {
                    if (entMan.GetComponent <MetaDataComponent>(entity).EntityPrototype?.ID == prototypeId)
                    {
                        total++;
                    }
                    if (!entMan.TryGetComponent <ContainerManagerComponent?>(entity, out var component))
                    {
                        continue;
                    }
                    total += component.CountPrototypeOccurencesRecursive(prototypeId);
                }
            }

            return(total);
        }