From 02ba8720cba14afc86aa6e2735e6238795f9bf33 Mon Sep 17 00:00:00 2001
From: keronshb <54602815+keronshb@users.noreply.github.com>
Date: Fri, 18 Nov 2022 22:51:54 -0500
Subject: [PATCH] Cleans up some shield code, adds grid checks (#12621)
closes https://github.com/space-wizards/space-station-14/issues/11196
---
Content.Shared/Blocking/BlockingSystem.cs | 12 +++++++-----
Content.Shared/Blocking/BlockingUserSystem.cs | 12 +-----------
2 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/Content.Shared/Blocking/BlockingSystem.cs b/Content.Shared/Blocking/BlockingSystem.cs
index 989756a421..0387b5e7ea 100644
--- a/Content.Shared/Blocking/BlockingSystem.cs
+++ b/Content.Shared/Blocking/BlockingSystem.cs
@@ -1,6 +1,6 @@
using Content.Shared.Actions;
using Content.Shared.Actions.ActionTypes;
-using Content.Shared.Buckle.Components;
+using Content.Shared.Buckle;
using Content.Shared.Doors.Components;
using Content.Shared.Hands;
using Content.Shared.Hands.EntitySystems;
@@ -33,6 +33,7 @@ public sealed class BlockingSystem : EntitySystem
[Dependency] private readonly SharedContainerSystem _containerSystem = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
+ [Dependency] private readonly SharedBuckleSystem _buckleSystem = default!;
public override void Initialize()
{
@@ -117,13 +118,14 @@ public sealed class BlockingSystem : EntitySystem
/// Creates a new hard fixture to bodyblock
/// Also makes the user static to prevent prediction issues
///
- /// The entity with the blocking component
+ /// The entity with the blocking component
/// The
/// The entity who's using the item to block
///
public bool StartBlocking(EntityUid item, BlockingComponent component, EntityUid user)
{
- if (component.IsBlocking) return false;
+ if (component.IsBlocking)
+ return false;
var xform = Transform(user);
@@ -135,8 +137,8 @@ public sealed class BlockingSystem : EntitySystem
if (component.BlockingToggleAction != null)
{
- //Don't allow someone to block if they're in a container.
- if (_containerSystem.IsEntityInContainer(user) || !_mapManager.TryFindGridAt(xform.MapPosition, out var grid))
+ //Don't allow someone to block if they're not parented to a grid
+ if (xform.GridUid != xform.ParentUid)
{
CantBlockError(user);
return false;
diff --git a/Content.Shared/Blocking/BlockingUserSystem.cs b/Content.Shared/Blocking/BlockingUserSystem.cs
index 1ab0df51ed..4465674e71 100644
--- a/Content.Shared/Blocking/BlockingUserSystem.cs
+++ b/Content.Shared/Blocking/BlockingUserSystem.cs
@@ -1,9 +1,7 @@
-using Content.Shared.Audio;
-using Content.Shared.Damage;
+using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
-using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Shared.Blocking;
@@ -30,17 +28,13 @@ public sealed class BlockingUserSystem : EntitySystem
private void OnParentChanged(EntityUid uid, BlockingUserComponent component, ref EntParentChangedMessage args)
{
if (TryComp(component.BlockingItem, out var blockComp) && blockComp.IsBlocking)
- {
_blockingSystem.StopBlocking(component.BlockingItem.Value, blockComp, uid);
- }
}
private void OnInsertAttempt(EntityUid uid, BlockingUserComponent component, ContainerGettingInsertedAttemptEvent args)
{
if (TryComp(component.BlockingItem, out var blockComp) && blockComp.IsBlocking)
- {
_blockingSystem.StopBlocking(component.BlockingItem.Value, blockComp, uid);
- }
}
private void OnAnchorChanged(EntityUid uid, BlockingUserComponent component, ref AnchorStateChangedEvent args)
@@ -49,17 +43,13 @@ public sealed class BlockingUserSystem : EntitySystem
return;
if (TryComp(component.BlockingItem, out var blockComp) && blockComp.IsBlocking)
- {
_blockingSystem.StopBlocking(component.BlockingItem.Value, blockComp, uid);
- }
}
private void OnDamageChanged(EntityUid uid, BlockingUserComponent component, DamageChangedEvent args)
{
if (args.DamageDelta != null && args.DamageIncreased)
- {
_damageable.TryChangeDamage(component.BlockingItem, args.DamageDelta, origin: args.Origin);
- }
}
private void OnUserDamageModified(EntityUid uid, BlockingUserComponent component, DamageModifyEvent args)