Inventory pages
This commit is contained in:
@@ -55,7 +55,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
||||
public void PopulateItems()
|
||||
{
|
||||
var inventory = GameRepo.InventoryItems.Value;
|
||||
var numberOfItemsToDisplay = inventory.Count <= _itemsPerPage ? inventory.Count : _itemsPerPage;
|
||||
var numberOfItemsToDisplay = Mathf.Min(inventory.Count, _itemsPerPage);
|
||||
var indexToStart = _currentPageNumber == InventoryPageNumber.FirstPage ? 0 : 10;
|
||||
|
||||
ForwardArrow.Text = "";
|
||||
@@ -73,9 +73,9 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
||||
}
|
||||
|
||||
|
||||
for (var i = indexToStart; i < numberOfItemsToDisplay + indexToStart; i++)
|
||||
for (var i = 0; i < numberOfItemsToDisplay; i++)
|
||||
{
|
||||
var item = inventory.ElementAt(i);
|
||||
var item = inventory.ElementAt(i + indexToStart);
|
||||
var itemScene = GD.Load<PackedScene>(ITEM_SLOT_SCENE);
|
||||
var itemSlot = itemScene.Instantiate<IItemSlot>();
|
||||
ItemsPage.AddChildEx(itemSlot);
|
||||
@@ -86,13 +86,30 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
||||
}
|
||||
}
|
||||
|
||||
public override void _UnhandledInput(InputEvent @event)
|
||||
{
|
||||
var inventory = GameRepo.InventoryItems.Value;
|
||||
if (_currentPageNumber == InventoryPageNumber.FirstPage && inventory.Count > _itemsPerPage && Input.IsActionJustPressed(GameInputs.UiRight))
|
||||
{
|
||||
ClearItems();
|
||||
_currentPageNumber = InventoryPageNumber.SecondPage;
|
||||
PopulateItems();
|
||||
}
|
||||
|
||||
if (_currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.UiLeft))
|
||||
{
|
||||
ClearItems();
|
||||
_currentPageNumber = InventoryPageNumber.FirstPage;
|
||||
PopulateItems();
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearItems()
|
||||
{
|
||||
var items = ItemsPage.GetChildren().OfType<ItemSlot>();
|
||||
foreach (var item in items)
|
||||
{
|
||||
ItemsPage.RemoveChild(item);
|
||||
CallDeferred(nameof(item.QueueFree));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user