mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-30 04:13:43 +01:00
53 lines
2.3 KiB
C#
53 lines
2.3 KiB
C#
using Dalamud.Plugin;
|
|
using Glamourer.Designs;
|
|
|
|
namespace Glamourer.Services;
|
|
|
|
public class FilenameService
|
|
{
|
|
public readonly string ConfigDirectory;
|
|
public readonly string ConfigFile;
|
|
public readonly string DesignFileSystem;
|
|
public readonly string MigrationDesignFile;
|
|
public readonly string DesignDirectory;
|
|
public readonly string AutomationFile;
|
|
public readonly string UnlockFileCustomize;
|
|
public readonly string UnlockFileItems;
|
|
public readonly string FavoriteFile;
|
|
public readonly string DesignColorFile;
|
|
public readonly string EphemeralConfigFile;
|
|
public readonly string NpcAppearanceFile;
|
|
public readonly string CollectionOverrideFile;
|
|
|
|
public FilenameService(IDalamudPluginInterface pi)
|
|
{
|
|
ConfigDirectory = pi.ConfigDirectory.FullName;
|
|
ConfigFile = pi.ConfigFile.FullName;
|
|
AutomationFile = Path.Combine(ConfigDirectory, "automation.json");
|
|
DesignFileSystem = Path.Combine(ConfigDirectory, "sort_order.json");
|
|
MigrationDesignFile = Path.Combine(ConfigDirectory, "Designs.json");
|
|
UnlockFileCustomize = Path.Combine(ConfigDirectory, "unlocks_customize.json");
|
|
UnlockFileItems = Path.Combine(ConfigDirectory, "unlocks_items.json");
|
|
DesignDirectory = Path.Combine(ConfigDirectory, "designs");
|
|
FavoriteFile = Path.Combine(ConfigDirectory, "favorites.json");
|
|
DesignColorFile = Path.Combine(ConfigDirectory, "design_colors.json");
|
|
EphemeralConfigFile = Path.Combine(ConfigDirectory, "ephemeral_config.json");
|
|
NpcAppearanceFile = Path.Combine(ConfigDirectory, "npc_appearance_data.json");
|
|
CollectionOverrideFile = Path.Combine(ConfigDirectory, "collection_overrides.json");
|
|
}
|
|
|
|
public IEnumerable<FileInfo> Designs()
|
|
{
|
|
if (!Directory.Exists(DesignDirectory))
|
|
yield break;
|
|
|
|
foreach (var file in Directory.EnumerateFiles(DesignDirectory, "*.json", SearchOption.TopDirectoryOnly))
|
|
yield return new FileInfo(file);
|
|
}
|
|
|
|
public string DesignFile(string identifier)
|
|
=> Path.Combine(DesignDirectory, $"{identifier}.json");
|
|
|
|
public string DesignFile(Design design)
|
|
=> DesignFile(design.Identifier.ToString());
|
|
}
|