85 lines
1.9 KiB
C#
85 lines
1.9 KiB
C#
|
using I2.Loc.SimpleJSON;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Reflection;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace CustomCosmeticLoader
|
|||
|
{
|
|||
|
public class Config
|
|||
|
{
|
|||
|
public const string CONFIG_FILE_NAME = "config.json";
|
|||
|
public const string SKINS_DIR_NAME = "skins";
|
|||
|
|
|||
|
public static bool enabled = true;
|
|||
|
public static string currentSkin;
|
|||
|
public static string skinToHijack = "Swirl_M"; // Mirage, simple skin with nice properties
|
|||
|
|
|||
|
public static Dictionary<string, Texture2D> skins = new Dictionary<string, Texture2D>();
|
|||
|
|
|||
|
public static void Init()
|
|||
|
{
|
|||
|
if (File.Exists(GetConfigPath()))
|
|||
|
ReadConfig();
|
|||
|
else
|
|||
|
SaveConfig();
|
|||
|
}
|
|||
|
|
|||
|
public static string GetConfigPath()
|
|||
|
{
|
|||
|
return Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), CONFIG_FILE_NAME);
|
|||
|
}
|
|||
|
|
|||
|
private static void ReadConfig()
|
|||
|
{
|
|||
|
if (!File.Exists(GetConfigPath()))
|
|||
|
return;
|
|||
|
|
|||
|
JSONNode data;
|
|||
|
try
|
|||
|
{
|
|||
|
data = JSON.Parse(File.ReadAllText(GetConfigPath()));
|
|||
|
}
|
|||
|
catch (Exception e)
|
|||
|
{
|
|||
|
Debug.LogError("Couldn't load CustomCosmeticLoader config!");
|
|||
|
Debug.LogException(e);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (data["enabled"] != null)
|
|||
|
enabled = data["enabled"].AsBool;
|
|||
|
|
|||
|
if (data["currentSkin"] != null)
|
|||
|
currentSkin = data["currentSkin"].Value;
|
|||
|
if (currentSkin == null || !skins.ContainsKey(currentSkin))
|
|||
|
{
|
|||
|
if (skins.Count == 0)
|
|||
|
{
|
|||
|
Debug.LogWarning("No custom skins found, disabling");
|
|||
|
enabled = false;
|
|||
|
return;
|
|||
|
}
|
|||
|
currentSkin = skins.Keys.ToList()[0];
|
|||
|
}
|
|||
|
|
|||
|
if (data["skinToHijack"] != null)
|
|||
|
skinToHijack = data["skinToHijack"].Value;
|
|||
|
}
|
|||
|
|
|||
|
public static void SaveConfig()
|
|||
|
{
|
|||
|
JSONNode node = new JSONClass
|
|||
|
{
|
|||
|
{ "enabled", enabled ? "true" : "false" },
|
|||
|
{ "currentSkin", currentSkin },
|
|||
|
{ "skinToHijack", skinToHijack }
|
|||
|
};
|
|||
|
|
|||
|
File.WriteAllText(GetConfigPath(), node.ToString());
|
|||
|
}
|
|||
|
}
|
|||
|
}
|