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) if (args.Sprite == null)
return; return;
// If not defined, defaults to standing. if (!_appearance.TryGetData<RotationState>(uid, RotationVisuals.RotationState, out var state, args.Component))
_appearance.TryGetData<RotationState>(uid, RotationVisuals.RotationState, out var state, args.Component); return;
switch (state) switch (state)
{ {

View File

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