Cleaned up project with better structure.

This commit is contained in:
2026-05-09 11:29:48 +02:00
parent 1ad3454f6a
commit 6708aa277f
95 changed files with 711 additions and 700 deletions
+62
View File
@@ -0,0 +1,62 @@
using System;
using Godot;
public partial class InventoryDisplay : PanelContainer
{
private PackedScene itemDisplayPrefab = ResourceLoader.LoadItemDisplay();
[Export] VBoxContainer itemList;
[Export] RichTextLabel inventorySpace;
public override void _Ready()
{
GameData.inventory.OnInventoryUpdate += OnInventoryUpdate;
}
public override void _ExitTree()
{
GameData.inventory.OnInventoryUpdate -= OnInventoryUpdate;
}
public override void _Notification(int id)
{
if (id == NotificationVisibilityChanged)
{
if (!Visible) return;
ReloadItems();
UpdateInventorySpace();
}
}
private void UpdateInventorySpace()
{
inventorySpace.Text = $"Used space: {GameData.inventory.items.Count}/{GameData.inventory.maxInventorySize}";
}
public void ReloadItems()
{
foreach (Node node in itemList.GetChildren())
{
itemList.RemoveChild(node);
node.QueueFree();
}
ItemDisplay display;
foreach (Item item in GameData.inventory.items)
{
display = itemDisplayPrefab.Instantiate<ItemDisplay>();
display.item = item;
display.text.Text = item.data.GetReadableName();
display.amount.Text = $"{item.currentAmount}/{item.data.StackSize}";
display.texture.Texture = ResourceLoader.LoadPath(item.data.Texture);
itemList.AddChild(display);
}
}
public void OnInventoryUpdate(object sender, EventArgs args)
{
ReloadItems();
UpdateInventorySpace();
}
}