Prevent dead players from turning bar stools (#24308)

Prevent dead users from turning their bar stools

Previously, players could always turn a bar stool or office chair they
were buckled into; even while stone cold dead!
This commit is contained in:
Magnus Larsen
2024-03-15 10:03:18 +00:00
committed by GitHub
parent 6ae75c89d7
commit 15a7520df1
3 changed files with 11 additions and 18 deletions

View File

@@ -101,7 +101,7 @@ namespace Content.IntegrationTests.Tests.Buckle
Assert.That(buckle.Buckled);
Assert.That(actionBlocker.CanMove(human), Is.False);
Assert.That(actionBlocker.CanChangeDirection(human), Is.False);
Assert.That(actionBlocker.CanChangeDirection(human));
Assert.That(standingState.Down(human), Is.False);
Assert.That(
(xformSystem.GetWorldPosition(human) - xformSystem.GetWorldPosition(chair)).LengthSquared,

View File

@@ -7,7 +7,6 @@ using Content.Shared.Database;
using Content.Shared.Hands.Components;
using Content.Shared.IdentityManagement;
using Content.Shared.Interaction;
using Content.Shared.Interaction.Events;
using Content.Shared.Mobs.Components;
using Content.Shared.Movement.Events;
using Content.Shared.Popups;
@@ -39,7 +38,6 @@ public abstract partial class SharedBuckleSystem
SubscribeLocalEvent<BuckleComponent, StandAttemptEvent>(OnBuckleStandAttempt);
SubscribeLocalEvent<BuckleComponent, ThrowPushbackAttemptEvent>(OnBuckleThrowPushbackAttempt);
SubscribeLocalEvent<BuckleComponent, UpdateCanMoveEvent>(OnBuckleUpdateCanMove);
SubscribeLocalEvent<BuckleComponent, ChangeDirectionAttemptEvent>(OnBuckleChangeDirectionAttempt);
}
private void OnBuckleComponentStartup(EntityUid uid, BuckleComponent component, ComponentStartup args)
@@ -142,12 +140,6 @@ public abstract partial class SharedBuckleSystem
args.Cancel();
}
private void OnBuckleChangeDirectionAttempt(EntityUid uid, BuckleComponent component, ChangeDirectionAttemptEvent args)
{
if (component.Buckled)
args.Cancel();
}
public bool IsBuckled(EntityUid uid, BuckleComponent? component = null)
{
return Resolve(uid, ref component, false) && component.Buckled;

View File

@@ -80,14 +80,8 @@ namespace Content.Shared.Interaction
public bool TryFaceAngle(EntityUid user, Angle diffAngle, TransformComponent? xform = null)
{
if (_actionBlockerSystem.CanChangeDirection(user))
{
if (!Resolve(user, ref xform))
return false;
_transform.SetWorldRotation(xform, diffAngle);
return true;
}
if (!_actionBlockerSystem.CanChangeDirection(user))
return false;
if (EntityManager.TryGetComponent(user, out BuckleComponent? buckle) && buckle.Buckled)
{
@@ -105,9 +99,16 @@ namespace Content.Shared.Interaction
return true;
}
}
return false;
}
return false;
// user is not buckled in; apply to their transform
if (!Resolve(user, ref xform))
return false;
_transform.SetWorldRotation(xform, diffAngle);
return true;
}
}
}