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);
}
}
}
}
}