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