UniversalViewer/Assets/Scripts/SharedBasic/Settings.cs

66 lines
2.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
[System.Serializable]
public class Settings
{
public static Settings Instance = new Settings();
public static string GameVersion => Instance.gameVersion;
public static string AssetsUrl => Instance.assetsUrl;
public static string ScreenshotDirectory => Format(Instance.screenshotDirectory);
public static string AssetsDirectory => Format(Instance.assetsDirectory);
public static string AssetListDirectory => Format(Instance.assetListDirectory);
public static string CacheDirectory => Format(Instance.cacheDirectory);
public static string LooseAssetsDirectory => Format(Instance.looseAssetsDirectory);
public string gameVersion = "2.9.0";
public string assetsUrl = "https://parade-mobile-prod-cdn.kemono-friends-3.jp/AssetBundles/139.0/6fe6f44c2162621fcc3d8246188789ca/139.0";
public string screenshotDirectory = "{VIEWERDIR}/Screenshots";
public string savePoseDirectory = "{VIEWERDIR}/Poses";
public string saveSceneDirectory = "{VIEWERDIR}/Scenes";
public string assetsDirectory = "{KF3ASSETS}/assets";
public string assetListDirectory = "{KF3ASSETS}";
public string cacheDirectory = "{KF3CACHE}";
public string looseAssetsDirectory = "{VIEWERDIR}/Assets";
public bool showHints = true;
public static void Save()
{
string savePath = Path.GetFullPath(Application.dataPath + "/../Settings.txt");
File.WriteAllText(savePath, JsonUtility.ToJson(Settings.Instance, true));
Error.Log(Color.green, $"Settings file saved in {savePath}");
}
public static void Load()
{
string savePath = Path.GetFullPath(Application.dataPath + "/../Settings.txt");
Debug.Log(savePath);
if (!File.Exists(savePath))
{
Save();
}
Instance = JsonUtility.FromJson<Settings>(File.ReadAllText(savePath));
}
public static string Format(string value)
{
value = value.Replace("{VIEWERDIR}", Application.dataPath + "/../")
.Replace("{KF3ASSETS}", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "Low/Appirits/けもフレ3/StreamingAssets/")
.Replace("{KF3CACHE}", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "/Temp/Appirits/けもフレ3/");
if (!Directory.Exists(value))
{
Directory.CreateDirectory(value);
Error.Log(Color.yellow, "Created directory: " + Path.GetFullPath(value));
}
return value;
}
}