UI/Panels/BugList/BugListSegment.razor
@using Sandbox;
@using Sandbox.UI;
@namespace Battlebugs
@inherits Panel
@attribute [StyleSheet]
<root class="@(SegmentObject.IsValid() ? "" : "dead")">
<img src="@Icon" />
</root>
@code
{
public GameObject SegmentObject { get; set; }
public BugResource Bug { get; set; }
public int Index { get; set; }
BugSegment segment = null;
string Icon
{
get
{
if (Bug is not null)
{
if (Index == 0) return Bug.GetHeadIcon();
else if (Index == Bug.SegmentCount - 1) return Bug.GetTailIcon();
else return Bug.GetBodyIcon();
}
return "";
}
}
protected override void OnMouseMove(MousePanelEvent e)
{
if ( SegmentObject.IsValid() && SegmentObject.Components.TryGet<BugSegment>( out segment ) )
{
if (segment.IsVisible)
{
InspectInput.Instance.Deselect();
InspectInput.Instance.Select(segment, true);
InspectorPanel.Instance.Segment = segment;
}
}
}
protected override void OnMouseOut(MousePanelEvent e)
{
if (segment is not null && InspectInput.Instance.HighlightedSegment == segment)
{
InspectInput.Instance.Deselect();
}
}
protected override int BuildHash () => System.HashCode.Combine( SegmentObject.IsValid() );
}