Fixed buckled players thrashing while speaking in beds (#29653)

* Fix characters thrashing when talking while lying down

* Remove weird design choice
This commit is contained in:
Tayrtahn
2024-07-01 23:30:53 -04:00
committed by GitHub
parent 2f1bc7ab93
commit b565258f12
2 changed files with 6 additions and 2 deletions

View File

@@ -23,8 +23,8 @@ public sealed class RotationVisualizerSystem : SharedRotationVisualsSystem
if (args.Sprite == null)
return;
// If not defined, defaults to standing.
_appearance.TryGetData<RotationState>(uid, RotationVisuals.RotationState, out var state, args.Component);
if (!_appearance.TryGetData<RotationState>(uid, RotationVisuals.RotationState, out var state, args.Component))
return;
switch (state)
{

View File

@@ -9,6 +9,7 @@ using Content.Shared.Movement.Events;
using Content.Shared.Movement.Pulling.Events;
using Content.Shared.Popups;
using Content.Shared.Pulling.Events;
using Content.Shared.Rotation;
using Content.Shared.Standing;
using Content.Shared.Storage.Components;
using Content.Shared.Stunnable;
@@ -195,6 +196,7 @@ public abstract partial class SharedBuckleSystem
buckle.Comp.BuckleTime = _gameTiming.CurTime;
ActionBlocker.UpdateCanMove(buckle);
Appearance.SetData(buckle, StrapVisuals.State, buckle.Comp.Buckled);
Appearance.SetData(buckle, RotationVisuals.RotationState, RotationState.Horizontal);
Dirty(buckle);
}
@@ -348,6 +350,7 @@ public abstract partial class SharedBuckleSystem
SetBuckledTo(buckle, strap!);
Appearance.SetData(strap, StrapVisuals.State, true);
Appearance.SetData(buckle, BuckleVisuals.Buckled, true);
Appearance.SetData(buckle, RotationVisuals.RotationState, RotationState.Horizontal);
_rotationVisuals.SetHorizontalAngle(buckle.Owner, strap.Comp.Rotation);
@@ -455,6 +458,7 @@ public abstract partial class SharedBuckleSystem
_rotationVisuals.ResetHorizontalAngle(buckle.Owner);
Appearance.SetData(strap, StrapVisuals.State, strap.Comp.BuckledEntities.Count != 0);
Appearance.SetData(buckle, BuckleVisuals.Buckled, false);
Appearance.SetData(buckle, RotationVisuals.RotationState, RotationState.Vertical);
if (HasComp<KnockedDownComponent>(buckle) || _mobState.IsIncapacitated(buckle))
_standing.Down(buckle);