Starting an inventory manager

This commit is contained in:
2026-04-20 11:41:22 +02:00
parent f9ca56e34a
commit 667d6b2588
9 changed files with 57 additions and 20 deletions

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using Godot;
using Movementtests.systems;
namespace Movementtests.managers;
public partial class WeaponEventInventoryChangedData(WeaponSystem.WeaponEvent forEvent, string abilityName)
: RefCounted
{
public WeaponSystem.WeaponEvent ForEvent { get; private set; } = forEvent;
public string Ability { get; private set; } = abilityName;
}
public partial class InventoryManager : Node
{
[Signal]
public delegate void InventoryChangedEventHandler();
[Signal]
public delegate void WeaponEventInventoryChangedEventHandler(WeaponEventInventoryChangedData data);
public Dictionary<string, Resource> Inventory { get; } = new();
public static InventoryManager Instance { get; private set; }
public override void _Ready()
{
Instance = this;
}
public void AddAbilityForWeaponEvent(WeaponSystem.WeaponEvent forEvent, string abilityName)
{
EmitSignalWeaponEventInventoryChanged(new WeaponEventInventoryChangedData(forEvent, abilityName));
}
}