UI/InventorySlot.razor
@using Sandbox;
@using Sandbox.UI;
@inherits Panel
<root>
<div class="index">@(Index+1)</div>
<div class="list">
@foreach ( var weapon in GetWeapons() )
{
<InventoryWeapon Weapon="@weapon" IsHovered="@(weapon == Hovered)" IsActive="@(weapon == Active)"></InventoryWeapon>
}
</div>
</root>
@code
{
public PlayerInventory Inventory { get; set; }
public BaseWeapon Active { get; set; }
public BaseWeapon Hovered { get; set; }
public int Index { get; set; }
IEnumerable<BaseWeapon> GetWeapons()
{
if (Inventory is null) return Enumerable.Empty<BaseWeapon>();
return Inventory.Weapons.Where(x => x.InventorySlot == Index).OrderBy(x => x.InventoryOrder);
}
public override void Tick()
{
base.Tick();
SetClass("active", Hovered?.InventorySlot == Index || Active?.InventorySlot == Index);
}
}