UI/Inventory/Inventory.razor
@using Sandbox;
@using Sandbox.UI;
@inherits PanelComponent
@namespace CryptidHunt
<root>
<div class="topContainer">
<div class="title">BACKPACK</div>
<div class="weightBarContainer">
<div class="weightbar">
<div class="inner" style="width: @( Weight / 40f * 100f)%"></div></div>
</div>
<div class="weightContainer">
<div class="weight">@(Weight.ToString("0.0#")) / 40.0 KG</div>
</div>
</div>
<div class="bottomContainer">
<div class="itemContainer">
<div class="slotContainer">
@for (int i = 0; i < Items?.Length; i++)
{
var item = Items[i];
<Slot class="@(item.IsValid() ? "hasItem" : "") + @(SelectedItem == item ? "selected" : "")" Item="@item" />
}
</div>
</div>
<ItemView></ItemView>
</div>
</root>
@code
{
public static Inventory Instance { get; private set; }
public Item[] Items => Player.Instance?.Items;
public float Weight => Items?.Sum(x => x.IsValid() ? x.Weight * x.Amount : 0f) ?? 0f;
public Item SelectedItem { get; set; }
public bool Show { get; private set; } = false;
protected override void OnStart()
{
base.OnStart();
Instance = this;
}
protected override void OnUpdate()
{
if (!Player.Instance.LockInputs)
{
if (Input.Pressed("Inventory"))
Show = !Show;
}
else
Show = false;
Panel.Style.Opacity = Show ? 1f : 0f;
//if (selected == null || selected.Container != pawn.Inventory)
// selected = null;
}
protected override int BuildHash() => System.HashCode.Combine( Time.Now );
}