using Content.Shared.Engineering.Components; using Content.Shared.Interaction; using Content.Shared.Popups; using Content.Shared.Weapons.Melee.Balloon; namespace Content.Shared.Engineering.Systems; /// /// Implements /// public sealed class InflatableSafeDisassemblySystem : EntitySystem { [Dependency] private readonly DisassembleOnAltVerbSystem _disassembleOnAltVerbSystem = null!; [Dependency] private readonly SharedPopupSystem _popupSystem = null!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(InteractHandler); } private void InteractHandler(Entity ent, ref InteractUsingEvent args) { if (args.Handled) return; if (!HasComp(args.Used)) return; _popupSystem.PopupPredicted( Loc.GetString("inflatable-safe-disassembly", ("item", args.Used), ("target", ent.Owner)), ent, args.User); _disassembleOnAltVerbSystem.StartDisassembly((ent, Comp(ent)), args.User); args.Handled = true; } }