Fix stuck in-hand sprites (#5068)

This commit is contained in:
Leon Friedrich
2021-10-29 01:34:59 +13:00
committed by GitHub
parent ac78145b94
commit b427d9cb8b
3 changed files with 60 additions and 61 deletions

View File

@@ -28,15 +28,12 @@ namespace Content.Client.Hands
ActiveHand = state.ActiveHand;
UpdateHandContainers();
UpdateHandVisualizer();
Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new HandsModifiedMessage { Hands = this });
HandsModified();
}
public override void HandsModified()
{
UpdateHandContainers();
UpdateHandVisualizer();
base.HandsModified();
}
@@ -55,28 +52,5 @@ namespace Content.Client.Hands
}
}
}
public void UpdateHandVisualizer()
{
if (Owner.TryGetComponent(out SharedAppearanceComponent? appearance))
appearance.SetData(HandsVisuals.VisualState, GetHandsVisualState());
}
private HandsVisualState GetHandsVisualState()
{
var hands = new List<HandVisualState>();
foreach (var hand in Hands)
{
if (hand.HeldEntity == null)
continue;
if (!hand.HeldEntity.TryGetComponent(out SharedItemComponent? item) || item.RsiPath == null)
continue;
var handState = new HandVisualState(item.RsiPath, item.EquippedPrefix, hand.Location, item.Color);
hands.Add(handState);
}
return new(hands);
}
}
}