add: Item Manager
This commit is contained in:
33
src/ItemManagers/Generic/SkinItem.cs
Normal file
33
src/ItemManagers/Generic/SkinItem.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user