Decompiled source of RelicHeim Russian Translation v0.1.2

RelicHeimRussianPatch.dll

Decompiled 2 days ago
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;
	}
}