diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index 13e7580b2c..1b1d766ed6 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Disposal.Tube.Components; using Content.Server.Disposal.Unit.Components; using Content.Server.DoAfter; using Content.Server.Hands.Components; +using Content.Server.Popups; using Content.Server.Power.Components; using Content.Server.UserInterface; using Content.Server.Storage.Components; @@ -16,11 +17,13 @@ using Content.Shared.Destructible; using Content.Shared.Disposal; using Content.Shared.Disposal.Components; using Content.Shared.DragDrop; +using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Movement; using Content.Shared.Movement.Events; +using Content.Shared.Popups; using Content.Shared.Throwing; using Content.Shared.Verbs; using Content.Shared.Storage.Components; @@ -40,6 +43,7 @@ namespace Content.Server.Disposal.Unit.EntitySystems [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosSystem = default!; [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly DumpableSystem _dumpableSystem = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; @@ -471,6 +475,12 @@ namespace Content.Server.Disposal.Unit.EntitySystems if (!Resolve(unitId, ref unit)) return false; + if (!HasComp(userId) && toInsertId != userId) // Mobs like mouse can Jump inside even with no hands + { + _popupSystem.PopupEntity(Loc.GetString("disposal-unit-no-hands"), userId, Filter.Entities(userId), PopupType.SmallCaution); + return false; + } + if (!CanInsert(unit, toInsertId)) return false; diff --git a/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl b/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl index 8ca17cfced..b62d842ee3 100644 --- a/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl +++ b/Resources/Locale/en-US/disposal/unit/components/disposal-unit-component.ftl @@ -3,9 +3,13 @@ ui-disposal-unit-title = Disposal Unit ui-disposal-unit-label-state = State: -ui-disposal-unit-label-pressure = Pressure: +ui-disposal-unit-label-pressure = Pressure: ui-disposal-unit-label-status = Ready ui-disposal-unit-button-flush = Flush ui-disposal-unit-button-eject = Eject Contents -ui-disposal-unit-button-power = Power \ No newline at end of file +ui-disposal-unit-button-power = Power + +## No hands + +disposal-unit-no-hands = You don't have hands! diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl index 2f0156ac0a..729b9f5f8c 100644 --- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl @@ -42,4 +42,4 @@ comp-window-knock = *knock knock* hugging-success-generic = You hug {THE($target)}. hugging-success-generic-others = { CAPITALIZE(THE($user)) } hugs {THE($target)}. -hugging-success-generic-target = { CAPITALIZE(THE($user)) } hugs you. \ No newline at end of file +hugging-success-generic-target = { CAPITALIZE(THE($user)) } hugs you.