コード例 #1
0
    public bool TryGetContainerSlotEnumerator(EntityUid uid, out ContainerSlotEnumerator containerSlotEnumerator, InventoryComponent?component = null)
    {
        containerSlotEnumerator = default;
        if (!Resolve(uid, ref component, false))
        {
            return(false);
        }

        containerSlotEnumerator = new ContainerSlotEnumerator(uid, component.TemplateId, _prototypeManager, this);
        return(true);
    }
コード例 #2
0
    protected void RelayInventoryEvent <T>(EntityUid uid, InventoryComponent component, T args) where T : EntityEventArgs, IInventoryRelayEvent
    {
        var containerEnumerator = new ContainerSlotEnumerator(uid, component.TemplateId, _prototypeManager, this, args.TargetSlots);

        while (containerEnumerator.MoveNext(out var container))
        {
            if (!container.ContainedEntity.HasValue)
            {
                continue;
            }
            RaiseLocalEvent(container.ContainedEntity.Value, args, false);
        }
    }