mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
41 lines
1.5 KiB
C#
41 lines
1.5 KiB
C#
using Dalamud.Plugin;
|
|
using Dalamud.Plugin.Services;
|
|
using OtterGui.Widgets;
|
|
using Penumbra.GameData.Data;
|
|
using Penumbra.GameData.Files;
|
|
using Penumbra.Util;
|
|
|
|
namespace Penumbra.Services;
|
|
|
|
public class StainService : IDisposable
|
|
{
|
|
public sealed class StainTemplateCombo : FilterComboCache<ushort>
|
|
{
|
|
public StainTemplateCombo(IEnumerable<ushort> items)
|
|
: base(items, Penumbra.Log)
|
|
{ }
|
|
}
|
|
|
|
public readonly StainData StainData;
|
|
public readonly FilterComboColors StainCombo;
|
|
public readonly StmFile StmFile;
|
|
public readonly StainTemplateCombo TemplateCombo;
|
|
|
|
public StainService(StartTracker timer, DalamudPluginInterface pluginInterface, IDataManager dataManager, IPluginLog dalamudLog)
|
|
{
|
|
using var t = timer.Measure(StartTimeType.Stains);
|
|
StainData = new StainData(pluginInterface, dataManager, dataManager.Language, dalamudLog);
|
|
StainCombo = new FilterComboColors(140,
|
|
() => StainData.Data.Prepend(new KeyValuePair<byte, (string Name, uint Dye, bool Gloss)>(0, ("None", 0, false))).ToList(),
|
|
Penumbra.Log);
|
|
StmFile = new StmFile(dataManager);
|
|
TemplateCombo = new StainTemplateCombo(StmFile.Entries.Keys.Prepend((ushort)0));
|
|
Penumbra.Log.Verbose($"[{nameof(StainService)}] Created.");
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
StainData.Dispose();
|
|
Penumbra.Log.Verbose($"[{nameof(StainService)}] Disposed.");
|
|
}
|
|
}
|