UI/Player/Containers/InventoryContainerSlot.razor
@using Sandbox;
@using Sandbox.UI;
@namespace Opium.UI
@inherits Panel
<root class="@( SlotBased ? "grid" : "no-grid" ) @( EmptyItem ? "empty" : "" )" >
@if ( SlotBased )
{
<div class="item">
<div class="background">
<div class="top left" />
<div class="top right" />
<div class="bottom left" />
<div class="bottom right" />
</div>
@if ( Item is null || Item.ItemResource is null )
{
<div class="name">Empty</div>
// Empty item slot
return;
}
<div class="name">@Item.ItemResource.ItemName</div>
<div class="quantity">@(Item.Quantity)x</div>
</div>
}
else
{
<div class="item">
<div class="left">
<div class="icon" />
</div>
<div class="name">@Item.ItemResource.ItemName</div>
<div class="description">@Item.ItemResource.ItemDescription</div>
</div>
}
</root>
@code
{
public InventoryItem Item { get; set; }
public InventoryContainer Container { get; set; }
/// <summary>
/// We're a slot based inventory if we have a slot limit.
/// </summary>
bool SlotBased => Container.MaxItems > 0;
/// <summary>
/// Is this an empty item?
/// </summary>
bool EmptyItem => Item is null || Item.ItemResource is null;
protected override int BuildHash()
{
return HashCode.Combine( Item, Item?.ItemResource );
}
}