add: Item Manager

This commit is contained in:
h z
2025-02-28 08:49:32 +00:00
parent e90f701bd5
commit d2f0ab8153
21 changed files with 648 additions and 24 deletions

View File

@@ -0,0 +1,33 @@
using Godot;
using Polonium.SkinManagers.Generic;
namespace Polonium.ItemManagers.Generic;
public abstract partial class SkinItem<TItem, TSkin> : SkinItem
where TItem : SkinItem<TItem, TSkin>
where TSkin : Skin<TSkin>
{
public new TSkin Skin
{
get => base.Skin as TSkin;
set => base.Skin = value;
}
public new abstract class Template : SkinItem.Template
{
public Dictionary<int, (Color, bool)> DyeInfo { get; set; } = new();
public override SkinItem Get => GenericGet<TItem, TSkin>();
public virtual void Return(TItem item) => GenericReturn<TItem, TSkin>(item);
public override void Modify(SkinItem obj)
{
foreach (int key in DyeInfo.Keys)
{
(Color c, bool g) = DyeInfo[key];
obj.Skin.Dye(key, c, g);
}
}
}
}