diff --git a/Content.Server/GameObjects/EntitySystems/PointingSystem.cs b/Content.Server/GameObjects/EntitySystems/PointingSystem.cs index 67933dd25f..d10b87f364 100644 --- a/Content.Server/GameObjects/EntitySystems/PointingSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/PointingSystem.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using Content.Server.GameObjects.Components.Pointing; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Input; using Content.Shared.Interfaces; using JetBrains.Annotations; @@ -97,10 +98,13 @@ namespace Content.Server.GameObjects.EntitySystems return false; } - var diff = coords.ToMapPos(_mapManager) - player.Transform.MapPosition.Position; - if (diff.LengthSquared > 0.01f) + if (ActionBlockerSystem.CanChangeDirection(player)) { - player.Transform.LocalRotation = new Angle(diff); + var diff = coords.ToMapPos(_mapManager) - player.Transform.MapPosition.Position; + if (diff.LengthSquared > 0.01f) + { + player.Transform.LocalRotation = new Angle(diff); + } } var viewers = _playerManager.GetPlayersInRange(player.Transform.GridPosition, 15); diff --git a/Content.Server/Throw/ThrowHelper.cs b/Content.Server/Throw/ThrowHelper.cs index ba9ce46d7d..17cadf3539 100644 --- a/Content.Server/Throw/ThrowHelper.cs +++ b/Content.Server/Throw/ThrowHelper.cs @@ -1,4 +1,5 @@ using Content.Server.GameObjects.Components; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Physics; using Robust.Shared.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects; @@ -72,7 +73,10 @@ namespace Content.Server.Throw projComp.User = throwSourceEnt; projComp.IgnoreEntity(throwSourceEnt); - throwSourceEnt.Transform.LocalRotation = angle.GetCardinalDir().ToAngle(); + if (ActionBlockerSystem.CanChangeDirection(throwSourceEnt)) + { + throwSourceEnt.Transform.LocalRotation = angle.GetCardinalDir().ToAngle(); + } } // scaling is handled elsewhere, this is just multiplying by 10 independent of timing as a fix until elsewhere values are updated