using Content.Shared.Storage.EntitySystems; using Content.Shared.Tools.Systems; using Robust.Shared.Prototypes; namespace Content.Shared.EntityEffects.Effects.Smite; /// /// Spawns a locker, attempts to insert this entity, and welds it shut. /// /// public sealed partial class StuffIntoLockerEntityEffectSystem : EntityEffectSystem { [Dependency] private SharedEntityStorageSystem _entityStorage = default!; [Dependency] private SharedTransformSystem _transform = default!; [Dependency] private WeldableSystem _weldable = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { var locker = PredictedSpawn(args.Effect.Prototype, _transform.GetMapCoordinates(entity)); _entityStorage.ToggleOpen(entity.Owner, locker); _entityStorage.Insert(entity.Owner, locker); _entityStorage.ToggleOpen(entity.Owner, locker); _weldable.SetWeldedState(locker, true); } } /// public sealed partial class StuffIntoLocker : EntityEffectBase { /// /// Locker entity prototype to spawn and stuff this entity into. /// [DataField] public EntProtoId Prototype = "ClosetMaintenance"; }