r2mods/ilspy_dump/ror2_csproj/RoR2/StreamingAssetsTextDataMana...

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;
}
}
}