mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2024-12-29 12:21:25 +00:00
49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
|
using System;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
namespace QSBPatcher
|
|||
|
{
|
|||
|
public static class PatchSteamFiles
|
|||
|
{
|
|||
|
public static void Main(string[] args)
|
|||
|
{
|
|||
|
var basePath = args.Length > 0 ? args[0] : ".";
|
|||
|
var gamePath = AppDomain.CurrentDomain.BaseDirectory;
|
|||
|
|
|||
|
var dataPath = GetDataPath(gamePath);
|
|||
|
var pluginsPath = Path.Combine(dataPath, @"Plugins\x86_64");
|
|||
|
|
|||
|
var dir = new DirectoryInfo(Path.Combine(basePath, "SteamAPI"));
|
|||
|
var files = dir.GetFiles();
|
|||
|
foreach (var file in files)
|
|||
|
{
|
|||
|
var tempPath = Path.Combine(pluginsPath, file.Name);
|
|||
|
file.CopyTo(tempPath, true);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private static string GetExecutableName(string gamePath)
|
|||
|
{
|
|||
|
var executableNames = new[] { "Outer Wilds.exe", "OuterWilds.exe" };
|
|||
|
foreach (var executableName in executableNames)
|
|||
|
{
|
|||
|
var executablePath = Path.Combine(gamePath, executableName);
|
|||
|
if (File.Exists(executablePath))
|
|||
|
{
|
|||
|
return Path.GetFileNameWithoutExtension(executablePath);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
throw new FileNotFoundException($"Outer Wilds exe file not found in {gamePath}");
|
|||
|
}
|
|||
|
|
|||
|
private static string GetDataDirectoryName()
|
|||
|
{
|
|||
|
var gamePath = AppDomain.CurrentDomain.BaseDirectory;
|
|||
|
return $"{GetExecutableName(gamePath)}_Data";
|
|||
|
}
|
|||
|
|
|||
|
private static string GetDataPath(string gamePath)
|
|||
|
=> Path.Combine(gamePath, $"{GetDataDirectoryName()}");
|
|||
|
}
|
|||
|
}
|