using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using Jotunn.Entities;
using Jotunn.Managers;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = "")]
[assembly: AssemblyVersion("0.0.0.0")]
namespace RelicHeimRussianPatch;
[BepInPlugin("org.bepinex.plugins.relicheim.russianpatch", "RelicHeim Russian Patch", "1.0.0")]
public class RelicHeimRussianPatch : BaseUnityPlugin
{
public const string ModGUID = "org.bepinex.plugins.relicheim.russianpatch";
public const string ModName = "RelicHeim Russian Patch";
public const string ModVersion = "1.0.0";
internal static string LocalizationFolderPath;
private void Awake()
{
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
LocalizationFolderPath = Path.Combine(Paths.ConfigPath, "RelicHeimRussianPatch");
new Harmony("org.bepinex.plugins.relicheim.russianpatch").PatchAll();
}
}
[HarmonyPatch]
public static class LocalizationPatch
{
private static MethodBase TargetMethod()
{
return AccessTools.Method(AccessTools.TypeByName("Localization"), "SetupLanguage", (Type[])null, (Type[])null);
}
private static void Postfix(object __instance)
{
AddLocalizations();
}
private static int AddLocalizations()
{
CustomLocalization localization = LocalizationManager.Instance.GetLocalization();
string[] files = Directory.GetFiles(RelicHeimRussianPatch.LocalizationFolderPath, "*.json", SearchOption.AllDirectories);
string[] array = files;
foreach (string path in array)
{
localization.AddJsonFile("Russian", File.ReadAllText(path));
}
return files.Length;
}
private static Dictionary<string, string> ParseSimpleYaml(string path)
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
string[] array = File.ReadAllLines(path);
foreach (string text in array)
{
if (string.IsNullOrEmpty(text) || text.TrimStart(Array.Empty<char>()).StartsWith("#"))
{
continue;
}
int num = text.IndexOf(':');
if (num > 0)
{
string key = text.Substring(0, num).Trim();
string value = text.Substring(num + 1).Trim();
if (!dictionary.ContainsKey(key))
{
dictionary.Add(key, value);
}
}
}
return dictionary;
}
}