50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
|
using System.IO;
|
||
|
using Godot;
|
||
|
|
||
|
namespace KeepersCompound.TMV;
|
||
|
|
||
|
// TODO: Error handling lol
|
||
|
public class InstallPaths
|
||
|
{
|
||
|
public string rootPath;
|
||
|
public string famPath;
|
||
|
public string omsPath;
|
||
|
public string fmsPath;
|
||
|
|
||
|
public InstallPaths(string root)
|
||
|
{
|
||
|
var searchOptions = new EnumerationOptions
|
||
|
{
|
||
|
MatchCasing = MatchCasing.CaseInsensitive,
|
||
|
RecurseSubdirectories = true
|
||
|
};
|
||
|
|
||
|
rootPath = root;
|
||
|
famPath = Directory.GetFiles(rootPath, "fam.crf", searchOptions)[0];
|
||
|
var installCfgPath = Directory.GetFiles(rootPath, "install.cfg", searchOptions)[0];
|
||
|
GD.Print($"Install.cfg: {installCfgPath}");
|
||
|
foreach (var line in File.ReadLines(installCfgPath))
|
||
|
{
|
||
|
if (line.StartsWith("load_path"))
|
||
|
{
|
||
|
var path = line.Split(" ")[1].Replace("\\", "/");
|
||
|
omsPath = Path.GetFullPath(rootPath + path);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var camModPath = Directory.GetFiles(rootPath, "cam_mod.ini", searchOptions)[0];
|
||
|
fmsPath = rootPath + "/FMs";
|
||
|
foreach (var line in File.ReadLines(camModPath))
|
||
|
{
|
||
|
if (line.StartsWith("fm_path"))
|
||
|
{
|
||
|
var path = line.Split(" ")[1].Replace("\\", "/");
|
||
|
fmsPath = Path.GetFullPath(rootPath + path);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
GD.Print($"OMs Path: {omsPath}");
|
||
|
}
|
||
|
}
|