Decompiled source of T72A MBT Russian Patch v0.0.1

T72A_MBT_Russian_Patch.dll

Decompiled 3 hours ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using JerryComponent;
using UnityEngine;
using UnityEngine.Windows.Speech;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryAr.T72A_MBT_Russian_Patch
{
	[BepInPlugin("JerryAr.T72A_MBT_Russian_Patch", "T72A_MBT_Russian_Patch", "0.0.1")]
	[BepInProcess("h3vr.exe")]
	[Description("Built with MeatKit")]
	public class T72A_MBT_Russian_PatchPlugin : BaseUnityPlugin
	{
		private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

		internal static ManualLogSource Logger;

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			LoadAssets();
		}

		private void LoadAssets()
		{
			Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "JerryAr.T72A_MBT_Russian_Patch");
		}
	}
}
namespace JerryRus
{
	[BepInPlugin("JerryDLL.JerryRus", "JRus", "1.0.0")]
	[BepInDependency("nrgill28.Sodalite", "1.4.1")]
	[BepInProcess("h3vr.exe")]
	public class T72ARussianPatch : BaseUnityPlugin
	{
		private TankCommanderVoiceControl driver;

		private TankCommanderVoiceControl2 gunner;

		private float cd = 5f;

		private KeywordRecognizer keyword;

		private Dictionary<string, Action> dic = new Dictionary<string, Action>();

		private void Start()
		{
			//IL_0322: Unknown result type (might be due to invalid IL or missing references)
			//IL_032c: Expected O, but got Unknown
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_0343: Expected O, but got Unknown
			dic.Add("Vaditsel. Sadiss.", DriverCrewOn);
			dic.Add("Vaditsel. Vuhahdee.", DriverCrewOff);
			dic.Add("Nahvochek, Sadiss.", GunnerCrewOn);
			dic.Add("Nahvochek, Vuhahdee.", GunnerCrewOff);
			dic.Add("Vaditsel, zabusti.", EngineOn);
			dic.Add("Vaditsel, vugliucheety.", EngineOff);
			dic.Add("Vaditsel, beelio.", MoveFore);
			dic.Add("Vaditsel, nazat.", MoveRear);
			dic.Add("Vaditsel, slyeva.", TurnLeft);
			dic.Add("Vaditsel, splava.", TurnRight);
			dic.Add("Vaditsel, sbilidee.", GoStraight);
			dic.Add("Vaditsel, ostanavis.", HoldStop);
			dic.Add("Vaditsel, art cleeti.", DriverHatchOpen);
			dic.Add("Vaditsel, za cleevat.", DriverHatchClose);
			dic.Add("Nahvochek, slyeva.", GunnerTurnLeft2);
			dic.Add("Nahvochek, splava.", GunnerTurnRight2);
			dic.Add("Nahvochek, vyeheh.", MoveUp2);
			dic.Add("Nahvochek, vunees.", MoveDown2);
			dic.Add("Nahvochek, ahgone.", FireCannon);
			dic.Add("Nahvochek, pulimeotnee ahgone.", FirePKT);
			dic.Add("Nahvochek, zahehvat tsiellia.", SeekTarget);
			dic.Add("Nahvochek, art miyena.", CancelTarget);
			dic.Add("Nahvochek, art cleeti.", GunnerHatchOpen);
			dic.Add("Nahvochek, za cleevat.", GunnerHatchClose);
			dic.Add("Nahvochek, ostanavis.", GunnerHoldStop);
			dic.Add("Nahvochek, fugliu chee swiet.", IROn);
			dic.Add("Nahvochek, vugliu cheety swiet.", IROff);
			dic.Add("Nahvochek, lazviernoot nym", Smoke);
			keyword = new KeywordRecognizer(dic.Keys.ToArray());
			((PhraseRecognizer)keyword).OnPhraseRecognized += new PhraseRecognizedDelegate(Keyword_OnPhraseRecognized);
			((PhraseRecognizer)keyword).Start();
		}

		private void Keyword_OnPhraseRecognized(PhraseRecognizedEventArgs args)
		{
			Debug.Log((object)args.text);
			dic[args.text]();
		}

		private void FixedUpdate()
		{
			cd -= Time.deltaTime;
			if (cd <= 0f)
			{
				cd = 5f;
				if ((Object)(object)driver == (Object)null)
				{
					driver = Object.FindObjectOfType<TankCommanderVoiceControl>();
				}
				if ((Object)(object)gunner == (Object)null)
				{
					gunner = Object.FindObjectOfType<TankCommanderVoiceControl2>();
				}
			}
		}

		public void DriverCrewOn()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.CrewOn();
			}
		}

		public void DriverCrewOff()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.CrewOff();
			}
		}

		public void EngineOn()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.EngineOn();
			}
		}

		public void EngineOff()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.EngineOff();
			}
		}

		public void MoveFore()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.MoveFore();
			}
		}

		public void MoveRear()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.MoveRear();
			}
		}

		public void TurnLeft()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.TurnLeft();
			}
		}

		public void TurnRight()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.TurnRight();
			}
		}

		public void MoveFore2()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.MoveFore2();
			}
		}

		public void TurnLeft2()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.TurnLeft2();
			}
		}

		public void TurnRight2()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.TurnRight2();
			}
		}

		public void GoStraight()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.GoStraight();
			}
		}

		public void HoldStop()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.HoldStop();
			}
		}

		public void DriverHatchOpen()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.HatchOpen();
			}
		}

		public void DriverHatchClose()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.HatchClose();
			}
		}

		public void LightOn()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.LightOn();
			}
		}

		public void LightOff()
		{
			if ((Object)(object)driver != (Object)null)
			{
				driver.LightOff();
			}
		}

		public void GunnerCrewOn()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.CrewOn();
			}
		}

		public void GunnerCrewOff()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.CrewOff();
			}
		}

		public void MoveUp()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.MoveUp();
			}
		}

		public void MoveDown()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.MoveDown();
			}
		}

		public void GunnerTurnLeft()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.TurnLeft();
			}
		}

		public void GunnerTurnRight()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.TurnRight();
			}
		}

		public void MoveUp2()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.MoveUp2();
			}
		}

		public void MoveDown2()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.MoveDown2();
			}
		}

		public void GunnerTurnLeft2()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.TurnRight();
			}
		}

		public void GunnerTurnRight2()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.TurnLeft();
			}
		}

		public void FireCannon()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.FireCannon();
			}
		}

		public void FireSmoke()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.FireSmoke();
			}
		}

		public void FirePKT()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.FirePKT();
			}
		}

		public void GunnerHoldStop()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.HoldStop();
			}
		}

		public void GunnerHatchOpen()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.HatchOpen();
			}
		}

		public void GunnerHatchClose()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.HatchClose();
			}
		}

		public void SeekTarget()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.SeekTarget();
			}
		}

		public void LockTarget()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.LockTarget();
			}
		}

		public void CancelTarget()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.CancelTarget();
			}
		}

		public void IROn()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.IROn();
			}
		}

		public void IROff()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.IROff();
			}
		}

		public void Smoke()
		{
			if ((Object)(object)gunner != (Object)null)
			{
				gunner.FireSmoke();
			}
		}

		private void OnDestroy()
		{
			((PhraseRecognizer)keyword).Stop();
		}
	}
}