using Godot; using Polonium.SkinManagers.Generic; namespace Polonium.ItemManagers.Generic; public abstract partial class SkinItem : SkinItem where TItem : SkinItem where TSkin : Skin { public new TSkin Skin { get => base.Skin as TSkin; set => base.Skin = value; } public new abstract class Template : SkinItem.Template { public Dictionary DyeInfo { get; set; } = new(); public override SkinItem Get => GenericGet(); public virtual void Return(TItem item) => GenericReturn(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); } } } }