public void CloseStorage(EntityUid uid, EntityStorageComponent?component = null)
    {
        if (!Resolve(uid, ref component))
        {
            return;
        }
        component.Open = false;

        var targetCoordinates = new EntityCoordinates(uid, component.EnteringOffset);

        var entities = _lookup.GetEntitiesInRange(targetCoordinates, component.EnteringRange, LookupFlags.Approximate);

        var ev = new StorageBeforeCloseEvent(uid, entities);

        RaiseLocalEvent(uid, ev, true);
        var count = 0;

        foreach (var entity in ev.Contents)
        {
            if (!ev.BypassChecks.Contains(entity))
            {
                if (!CanFit(entity, uid, component.Whitelist))
                {
                    continue;
                }
            }

            if (!AddToContents(entity, uid, component))
            {
                continue;
            }

            count++;
            if (count >= component.Capacity)
            {
                break;
            }
        }

        ModifyComponents(uid, component);
        SoundSystem.Play(component.CloseSound.GetSound(), Filter.Pvs(uid), uid);
        component.LastInternalOpenAttempt = default;
        RaiseLocalEvent(uid, new StorageAfterCloseEvent());
    }
 private void OnBeforeClose(EntityUid uid, EntityStorageLayingDownOverrideComponent component, StorageBeforeCloseEvent args)
 {
     foreach (var ent in args.Contents)
     {
         if (HasComp <SharedBodyComponent>(ent) && !_standing.IsDown(ent))
         {
             args.Contents.Remove(ent);
         }
     }
 }