58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using UnityEngine;
|
|
|
|
namespace RoR2;
|
|
|
|
public class StreamingAssetsTextDataManager : TextDataManager
|
|
{
|
|
private readonly string configFolder;
|
|
|
|
public override bool InitializedConfigFiles => true;
|
|
|
|
public override bool InitializedLocFiles => true;
|
|
|
|
public StreamingAssetsTextDataManager()
|
|
{
|
|
configFolder = System.IO.Path.Combine(Application.dataPath, "Config");
|
|
}
|
|
|
|
public override string GetConfFile(string fileName, string path)
|
|
{
|
|
if (RoR2Application.fileSystem != null)
|
|
{
|
|
using Stream stream = RoR2Application.fileSystem.OpenFile(path, FileMode.Open, FileAccess.Read);
|
|
if (stream != null)
|
|
{
|
|
using (TextReader textReader = new StreamReader(stream))
|
|
{
|
|
return textReader.ReadToEnd();
|
|
}
|
|
}
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public override void GetLocFiles(string folderPath, Action<string[]> callback)
|
|
{
|
|
List<string> list = new List<string>();
|
|
foreach (string item in Directory.EnumerateFiles(folderPath))
|
|
{
|
|
if (string.Compare(System.IO.Path.GetFileName(item), "language.json", StringComparison.OrdinalIgnoreCase) != 0)
|
|
{
|
|
string extension = System.IO.Path.GetExtension(item);
|
|
if (MatchesExtension(extension, ".txt") || MatchesExtension(extension, ".json"))
|
|
{
|
|
list.Add(item);
|
|
}
|
|
}
|
|
}
|
|
callback?.Invoke(list.ConvertAll((string x) => File.ReadAllText(x)).ToArray());
|
|
static bool MatchesExtension(string fileExtension, string testExtension)
|
|
{
|
|
return string.Compare(fileExtension, testExtension, StringComparison.OrdinalIgnoreCase) == 0;
|
|
}
|
|
}
|
|
}
|