-using System.Linq;
+using System.Linq;
using Content.Shared.Administration.Logs;
using Content.Shared.Audio;
using Content.Shared.Body.Components;
+using Content.Shared.Coordinates;
using Content.Shared.Database;
using Content.Shared.Emag.Components;
using Content.Shared.Emag.Systems;
using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Containers;
+using Robust.Shared.Map;
using Robust.Shared.Physics.Events;
using Robust.Shared.Timing;
component.NextSound = Timing.CurTime + component.SoundCooldown;
}
+ var reclaimedEvent = new GotReclaimedEvent(Transform(uid).Coordinates);
+ RaiseLocalEvent(item, ref reclaimedEvent);
+
var duration = GetReclaimingDuration(uid, item, component);
// if it's instant, don't bother with all the active comp stuff.
if (duration == TimeSpan.Zero)
}
}
}
+
+[ByRefEvent]
+public record struct GotReclaimedEvent(EntityCoordinates ReclaimerCoordinates);
using System.Linq;
using Content.Shared.ActionBlocker;
using Content.Shared.Containers.ItemSlots;
+using Content.Shared.Coordinates;
using Content.Shared.Destructible;
using Content.Shared.DoAfter;
using Content.Shared.Hands.Components;
using Content.Shared.Interaction;
using Content.Shared.Item;
using Content.Shared.Lock;
+using Content.Shared.Materials;
using Content.Shared.Placeable;
using Content.Shared.Popups;
using Content.Shared.Stacks;
SubscribeAllEvent<StorageSetItemLocationEvent>(OnSetItemLocation);
SubscribeAllEvent<StorageInsertItemIntoLocationEvent>(OnInsertItemIntoLocation);
SubscribeAllEvent<StorageRemoveItemEvent>(OnRemoveItem);
+
+ SubscribeLocalEvent<StorageComponent, GotReclaimedEvent>(OnReclaimed);
+
UpdatePrototypeCache();
}
args.Handled = true;
}
+ private void OnReclaimed(EntityUid uid, StorageComponent storageComp, GotReclaimedEvent args)
+ {
+ _containerSystem.EmptyContainer(storageComp.Container, destination: args.ReclaimerCoordinates);
+ }
+
private void OnDestroy(EntityUid uid, StorageComponent storageComp, DestructionEventArgs args)
{
var coordinates = TransformSystem.GetMoverCoordinates(uid);