Fix a buckled entity's sprite being drawn over the chair when looking up

This commit is contained in:
DrSmugleaf
2020-07-04 01:28:06 +02:00
parent b00d8310de
commit 45211a2f0b
4 changed files with 35 additions and 3 deletions

View File

@@ -1,5 +1,7 @@
using Content.Shared.GameObjects.Components.Mobs;
using Robust.Client.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
namespace Content.Client.GameObjects.Components.Mobs
{
@@ -7,6 +9,7 @@ namespace Content.Client.GameObjects.Components.Mobs
public class BuckleComponent : SharedBuckleComponent
{
private bool _buckled;
private int? _originalDrawDepth;
public override void HandleComponentState(ComponentState curState, ComponentState nextState)
{
@@ -16,6 +19,24 @@ namespace Content.Client.GameObjects.Components.Mobs
}
_buckled = buckle.Buckled;
if (!Owner.TryGetComponent(out SpriteComponent ownerSprite))
{
return;
}
if (_buckled && buckle.DrawDepth.HasValue)
{
_originalDrawDepth ??= ownerSprite.DrawDepth;
ownerSprite.DrawDepth = buckle.DrawDepth.Value;
return;
}
if (!_buckled && _originalDrawDepth.HasValue)
{
ownerSprite.DrawDepth = _originalDrawDepth.Value;
_originalDrawDepth = null;
}
}
protected override bool Buckled => _buckled;