UI/Panels/BugList/BugListEntry.razor
@using System;
@using Sandbox;
@using Sandbox.UI;
@namespace Battlebugs
@inherits Panel
@attribute [StyleSheet]
<root>
@for (int i = 0; i < Bug.SegmentCount; i++)
{
<BugListSegment SegmentObject=@GetObject( BugReference.ObjectIds[Bug.SegmentCount - 1 - i] ) Bug=@Bug Index=@i />
}
</root>
@code
{
public BoardManager.BugReference BugReference { get; set; }
BugResource Bug => BugReference.GetBug();
Dictionary<string, GameObject> _gameObjects = new();
GameObject GetObject(string id)
{
if (!_gameObjects.TryGetValue(id, out var obj))
{
obj = Scene.Directory.FindByGuid(Guid.Parse(id));
_gameObjects[id] = obj;
}
return obj;
}
protected override int BuildHash() => System.HashCode.Combine(BugReference);
}