48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using Content.Client.Items.UI;
|
|
using Content.Shared.Hands.Components;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.UserInterface.Controls;
|
|
|
|
namespace Content.Client.Hands
|
|
{
|
|
public class HandButton : ItemSlotButton
|
|
{
|
|
private bool _activeHand;
|
|
private bool _highlighted;
|
|
|
|
public HandButton(Texture texture, Texture storageTexture, string textureName, Texture blockedTexture, HandLocation location) : base(texture, storageTexture, textureName)
|
|
{
|
|
Location = location;
|
|
|
|
AddChild(Blocked = new TextureRect
|
|
{
|
|
Texture = blockedTexture,
|
|
TextureScale = (2, 2),
|
|
MouseFilter = MouseFilterMode.Stop,
|
|
Visible = false
|
|
});
|
|
}
|
|
|
|
public HandLocation Location { get; }
|
|
public TextureRect Blocked { get; }
|
|
|
|
public void SetActiveHand(bool active)
|
|
{
|
|
_activeHand = active;
|
|
UpdateHighlight();
|
|
}
|
|
|
|
public override void Highlight(bool highlight)
|
|
{
|
|
_highlighted = highlight;
|
|
UpdateHighlight();
|
|
}
|
|
|
|
private void UpdateHighlight()
|
|
{
|
|
// always stay highlighted if active
|
|
base.Highlight(_activeHand || _highlighted);
|
|
}
|
|
}
|
|
}
|