From 587df4c6257de6054dfdf473dabcd0aa6fbe3f68 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sun, 5 Feb 2023 14:44:35 -0500 Subject: [PATCH] fix ripleys being able to grab everything (#13944) Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com> --- .../Equipment/EntitySystems/MechGrabberSystem.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs index e81c40b58f..e0a59ed8ce 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs @@ -4,12 +4,12 @@ using Content.Server.Interaction; using Content.Server.Mech.Components; using Content.Server.Mech.Equipment.Components; using Content.Server.Mech.Systems; -using Content.Shared.Construction.Components; using Content.Shared.Interaction; using Content.Shared.Mech; using Content.Shared.Mech.Equipment.Components; using Content.Shared.Mobs.Components; using Content.Shared.Wall; +using Robust.Server.GameObjects; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics; @@ -27,6 +27,7 @@ public sealed class MechGrabberSystem : EntitySystem [Dependency] private readonly DoAfterSystem _doAfter = default!; [Dependency] private readonly InteractionSystem _interaction = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly TransformSystem _transform = default!; /// public override void Initialize() @@ -78,8 +79,10 @@ public sealed class MechGrabberSystem : EntitySystem var mechxform = Transform(mech); var xform = Transform(toRemove); xform.AttachToGridOrMap(); - xform.WorldPosition = mechxform.WorldPosition + mechxform.WorldRotation.RotateVec(component.DepositOffset); - xform.WorldRotation = Angle.Zero; + + var offset = _transform.GetWorldPosition(mechxform) + _transform.GetWorldRotation(mechxform).RotateVec(component.DepositOffset); + _transform.SetWorldPosition(xform, offset); + _transform.SetWorldRotation(xform, Angle.Zero); _mech.UpdateUserInterface(mech); } @@ -122,13 +125,16 @@ public sealed class MechGrabberSystem : EntitySystem if (args.Handled || args.Target is not {} target) return; - if (TryComp(uid, out var physics) && physics.BodyType == BodyType.Static && !HasComp(uid) || + if (TryComp(target, out var physics) && physics.BodyType == BodyType.Static || HasComp(target) || HasComp(target)) { return; } + if (Transform(target).Anchored) + return; + if (component.ItemContainer.ContainedEntities.Count >= component.MaxContents) return; -- 2.52.0