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:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user