Starting an inventory manager
This commit is contained in:
36
managers/InventoryManager.cs
Normal file
36
managers/InventoryManager.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user