Decompiled source of Voice Control For ThingFlinger v0.0.1

Voice_Control_For_ThingFlinger.dll

Decompiled 3 weeks 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 FistVR;
using HarmonyLib;
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.Voice_Control_For_ThingFlinger
{
	[BepInPlugin("JerryAr.Voice_Control_For_ThingFlinger", "Voice_Control_For_ThingFlinger", "0.0.1")]
	[BepInProcess("h3vr.exe")]
	[Description("Built with MeatKit")]
	public class Voice_Control_For_ThingFlingerPlugin : 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.Voice_Control_For_ThingFlinger");
		}
	}
}
namespace JerryTF
{
	[BepInPlugin("JerryTF", "JTF", "1.0.0")]
	[BepInProcess("h3vr.exe")]
	public class ThngFlingerPGin : BaseUnityPlugin
	{
		public List<ThingFlinger> Flingers = new List<ThingFlinger>();

		private KeywordRecognizer keyword;

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

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

		private void Start()
		{
			//IL_05de: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e8: Expected O, but got Unknown
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ff: Expected O, but got Unknown
			dic.Add("Launch.", StartWDelay);
			dic.Add("Launch now.", StartNow);
			dic.Add("Stop.", Stop);
			dic.Add("Scan item.", Scan);
			dic.Add("Clear item.", Clear);
			dic.Add("Set Launch Elevation to 0.", Elev0);
			dic.Add("Set Launch Elevation to 15.", Elev15);
			dic.Add("Set Launch Elevation to 30.", Elev30);
			dic.Add("Set Launch Elevation to 45.", Elev45);
			dic.Add("Set Launch Elevation to 60.", Elev60);
			dic.Add("Set Launch Elevation to 75.", Elev75);
			dic.Add("Set Launch Elevation to 90.", Elev90);
			dic.Add("Set Launch Velocity to 1.", Vel1);
			dic.Add("Set Launch Velocity to 3.", Vel3);
			dic.Add("Set Launch Velocity to 6.", Vel6);
			dic.Add("Set Launch Velocity to 10.", Vel10);
			dic.Add("Set Launch Velocity to 15.", Vel15);
			dic.Add("Set Launch Velocity to 25.", Vel25);
			dic.Add("Set Launch Velocity to 50.", Vel50);
			dic.Add("Set Launch Spread to 0.", Spr0);
			dic.Add("Set Launch Spread to 0.1.", Spr01);
			dic.Add("Set Launch Spread to 0.5.", Spr05);
			dic.Add("Set Launch Spread to 1.", Spr1);
			dic.Add("Set Launch Spread to 5.", Spr5);
			dic.Add("Set Launch Spread to 15.", Spr15);
			dic.Add("Set Launch Spread to 30.", Spr30);
			dic.Add("Set Auto Delete to 1.", Del1);
			dic.Add("Set Auto Delete to 2.", Del2);
			dic.Add("Set Auto Delete to 3.", Del3);
			dic.Add("Set Auto Delete to 4.", Del4);
			dic.Add("Set Auto Delete to 5.", Del5);
			dic.Add("Set Auto Delete to 10.", Del10);
			dic.Add("Set Auto Delete to 30.", Del30);
			dic.Add("Set Program Length to infinite.", WavInf);
			dic.Add("Set Program Length to 1.", Wav1);
			dic.Add("Set Program Length to 2.", Wav2);
			dic.Add("Set Program Length to 3.", Wav3);
			dic.Add("Set Program Length to 5.", Wav5);
			dic.Add("Set Program Length to 10.", Wav10);
			dic.Add("Set Wave Size to 1.", Num1);
			dic.Add("Set Wave Size to 2.", Num2);
			dic.Add("Set Wave Size to 3.", Num3);
			dic.Add("Set Wave Size to 4.", Num4);
			dic.Add("Set Wave Size to 5.", Num5);
			dic.Add("Set Wave Size to 6.", Num6);
			dic.Add("Set Wave Size to 10.", Num10);
			dic.Add("Set Time Between Waves to 1.", Betw1);
			dic.Add("Set Time Between Waves to 2.", Betw2);
			dic.Add("Set Time Between Waves to 3.", Betw3);
			dic.Add("Set Time Between Waves to 4.", Betw4);
			dic.Add("Set Time Between Waves to 5.", Betw5);
			dic.Add("Set Time Between Waves to 6.", Betw6);
			dic.Add("Set Time Between Waves to 10.", Betw10);
			keyword = new KeywordRecognizer(dic.Keys.ToArray());
			((PhraseRecognizer)keyword).OnPhraseRecognized += new PhraseRecognizedDelegate(Keyword_OnPhraseRecognized);
			((PhraseRecognizer)keyword).Start();
		}

		private void StartWDelay()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].BeginProgram(Random.Range(5f, 10f));
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void StartNow()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].BeginProgram(0.1f);
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Stop()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].StopProgram();
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Scan()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].AttemptToScanObject();
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Clear()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					((FVRPhysicalObject)Flingers[i]).ClearAndDestroyContainedObjects();
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev0()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev15()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev30()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev45()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev60()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev75()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Elev90()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchElevationIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel3()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel6()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel10()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel15()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel25()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Vel50()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchVelocityIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr0()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr01()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr05()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr5()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr15()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Spr30()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_launchSpreadIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del2()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del3()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del4()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del5()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del10()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Del30()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_autoDeleteIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void WavInf()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Wav1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Wav2()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Wav3()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Wav5()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Wav10()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_programLengthIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num2()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num3()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num4()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num5()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num6()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Num10()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_waveSizeIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw1()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 0;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw2()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 1;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw3()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 2;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw4()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 3;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw5()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 4;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw6()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 5;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void Betw10()
		{
			if (Flingers.Count > 0)
			{
				for (int i = 0; i < Flingers.Count; i++)
				{
					Flingers[i].m_timeBetweenWavesIndex = 6;
					Flingers[i].UpdateButtonDisplay();
				}
			}
		}

		private void SearchTarget()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			Collider[] array = Physics.OverlapSphere(((Component)GM.CurrentMovementManager.Head).transform.position, 50f);
			List<Rigidbody> list = new List<Rigidbody>();
			for (int i = 0; i < array.Length; i++)
			{
				if ((Object)(object)array[i].attachedRigidbody != (Object)null && !list.Contains(array[i].attachedRigidbody))
				{
					list.Add(array[i].attachedRigidbody);
				}
			}
			for (int j = 0; j < list.Count; j++)
			{
				if (!((Object)(object)((Component)list[j]).GetComponent<ThingFlinger>() != (Object)null))
				{
					continue;
				}
				ThingFlinger component = ((Component)list[j]).GetComponent<ThingFlinger>();
				if (Flingers.Count > 0)
				{
					if (!Flingers.Contains(component))
					{
						Flingers.Add(component);
					}
				}
				else if (Flingers.Count <= 0)
				{
					Flingers.Add(component);
				}
			}
		}

		private void FixedUpdate()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			SearchTarget();
			if (Flingers.Count <= 0)
			{
				return;
			}
			for (int i = 0; i < Flingers.Count; i++)
			{
				if ((Object)(object)Flingers[i] == (Object)null || Vector3.Distance(((Component)Flingers[i]).gameObject.transform.position, ((Component)GM.CurrentMovementManager.Head).transform.position) > 50f)
				{
					Flingers.RemoveAt(i);
				}
			}
		}
	}
}