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); }
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); } }