Files
Polonium/src/ItemManagers/Generic/SkinItem.cs
2025-02-28 08:49:32 +00:00

33 lines
878 B
C#

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);
}
}
}
}