33 lines
878 B
C#
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
} |