Пример #1
0
 // really this should be handled by ItemSlotsSystem, but for whatever reason MachineDeconstructedEvent is server-side? So eh.
 private void OnSlotsDeconstruct(EntityUid uid, ItemSlotsComponent component, MachineDeconstructedEvent args)
 {
     foreach (var slot in component.Slots.Values)
     {
         if (slot.EjectOnDeconstruct && slot.Item != null)
         {
             slot.ContainerSlot?.Remove(slot.Item.Value);
         }
     }
 }
Пример #2
0
        private void OnDeconstruct(EntityUid uid, EmptyOnMachineDeconstructComponent component, MachineDeconstructedEvent ev)
        {
            if (!EntityManager.TryGetComponent <IContainerManager>(uid, out var mComp))
            {
                return;
            }
            var baseCoords = EntityManager.GetComponent <TransformComponent>(component.Owner).Coordinates;

            foreach (var v in component.Containers)
            {
                if (mComp.TryGetContainer(v, out var container))
                {
                    container.EmptyContainer(true, baseCoords);
                }
            }
        }