Decompiled source of True First Person v1.0.0

TrueFirstPerson.dll

Decompiled 11 hours 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 System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using EmotesAPI;
using HG.Reflection;
using On.RoR2;
using RiskOfOptions;
using RiskOfOptions.Options;
using RoR2;
using RoR2.UI;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: OptIn]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("TrueFirstPerson")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+55652c85167883d43d98ec5306762fafbc929c59")]
[assembly: AssemblyProduct("TrueFirstPerson")]
[assembly: AssemblyTitle("TrueFirstPerson")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
namespace TrueFirstPerson;

public static class EmoteCompatability
{
	public const string customEmotesApiGUID = "com.weliveinasociety.CustomEmotesAPI";

	public static string CurrentEmote()
	{
		if (Object.op_Implicit((Object)(object)CustomEmotesAPI.localMapper))
		{
			return CustomEmotesAPI.localMapper.currentClipName;
		}
		return "none";
	}

	public static Quaternion GetHeadRotation()
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)CustomEmotesAPI.localMapper))
		{
			return ((Component)CustomEmotesAPI.localMapper).GetComponent<Animator>().GetBoneTransform((HumanBodyBones)10).rotation;
		}
		return Quaternion.identity;
	}
}
[Serializable]
[BepInPlugin("com.brynzananas.truefirstperson", "True First Person", "1.0.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Main : BaseUnityPlugin
{
	public class FirstPersonCameraComponent : MonoBehaviour
	{
		private float previousFov = 60f;

		private Vector3 previousPosition = Vector3.zero;

		public Transform transformToChange;

		private Transform previousTransform;

		public void OnEnable()
		{
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)previousCamera))
			{
				previousMainCameraRigController.sceneCam = camera.GetComponent<Camera>();
				previousFov = previousMainCameraRigController.baseFov;
				previousMainCameraRigController.baseFov = FieldOfViewConfig.Value;
				transformToChange = ((Component)((Component)this).transform.root).GetComponent<CharacterModel>().body.aimOriginTransform;
				previousPosition = transformToChange.localPosition;
				previousTransform = transformToChange.parent;
				transformToChange.SetParent(((Component)this).transform, false);
				transformToChange.localPosition = Vector3.zero;
				musicListener.transform.parent = null;
				previousCamera.SetActive(false);
			}
		}

		public void LateUpdate()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			if (emotesEnabled && EmoteLookLockMode.Value && EmoteCompatability.CurrentEmote() != "none")
			{
				((Component)this).transform.rotation = EmoteCompatability.GetHeadRotation();
			}
			else if (EnableLook.Value && Object.op_Implicit((Object)(object)previousMainCamera))
			{
				((Component)this).transform.rotation = previousMainCamera.transform.rotation;
			}
		}

		public void OnDisable()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)previousCamera))
			{
				previousMainCameraRigController.sceneCam = previousCamera.GetComponent<Camera>();
				previousMainCameraRigController.baseFov = previousFov;
				musicListener.transform.parent = previousCamera.transform;
				previousCamera.SetActive(true);
			}
			if (Object.op_Implicit((Object)(object)transformToChange))
			{
				transformToChange.SetParent(previousTransform, false);
				transformToChange.localPosition = previousPosition;
			}
		}
	}

	public const string ModGuid = "com.brynzananas.truefirstperson";

	public const string ModName = "True First Person";

	public const string ModVer = "1.0.0";

	public static ConfigEntry<KeyboardShortcut> FirstPersonToggle;

	public static ConfigEntry<float> FieldOfViewConfig;

	public static ConfigEntry<float> CurrentClip;

	public static ConfigEntry<bool> EnableLook;

	public static ConfigEntry<bool> EmoteLookLockMode;

	public static ConfigEntry<bool> EnableDebugKeys;

	private static bool emotesEnabled = false;

	public static Dictionary<string, string> survivorDefaultBoneOverride = new Dictionary<string, string>();

	public static Dictionary<string, ConfigEntry<string>> survivorBoneOverride = new Dictionary<string, ConfigEntry<string>>();

	public static Dictionary<string, float> survivorClipDefaultValues = new Dictionary<string, float>();

	public static Dictionary<string, ConfigEntry<float>> survivorClipValues = new Dictionary<string, ConfigEntry<float>>();

	private bool set = false;

	private float angle = -69420f;

	private Quaternion initialQuaternion = Quaternion.identity;

	private Vector3 initialVector = Vector3.zero;

	private bool emoteAngles = false;

	public static MPEventSystem eventSystem = null;

	public static Vector2 rotationCamera = Vector2.zero;

	public static GameObject previousCamera = null;

	public static GameObject head = null;

	public static GameObject camera = null;

	public static GameObject UIcamera = null;

	public static GameObject previousMainCamera = null;

	public static CameraRigController previousMainCameraRigController = null;

	public static GameObject mainCamera = null;

	public static GameObject musicListener = null;

	public bool toggle = true;

	public static PluginInfo PInfo { get; private set; }

	public void Awake()
	{
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		//IL_0119: Unknown result type (might be due to invalid IL or missing references)
		//IL_0123: Expected O, but got Unknown
		//IL_012b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0135: Expected O, but got Unknown
		//IL_013d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0147: Expected O, but got Unknown
		//IL_029d: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a7: Expected O, but got Unknown
		//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b7: Expected O, but got Unknown
		//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c7: Expected O, but got Unknown
		//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d7: Expected O, but got Unknown
		//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Expected O, but got Unknown
		//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f7: Expected O, but got Unknown
		//IL_0309: Unknown result type (might be due to invalid IL or missing references)
		//IL_0313: Expected O, but got Unknown
		//IL_030e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0318: Expected O, but got Unknown
		//IL_0368: Unknown result type (might be due to invalid IL or missing references)
		//IL_036e: Expected O, but got Unknown
		//IL_03af: Unknown result type (might be due to invalid IL or missing references)
		//IL_03be: Unknown result type (might be due to invalid IL or missing references)
		FirstPersonToggle = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "First Person Toggle", new KeyboardShortcut((KeyCode)111, Array.Empty<KeyCode>()), "Key to toggle first person");
		FieldOfViewConfig = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Field Of View", 90f, "I don't need to explain this");
		CurrentClip = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Current Camera Near Clip Parameter", 0.3f, "Current value of near camera clipping");
		EnableLook = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enable Input Camera Direction?", true, "Enable first person camera rotation to follow input rotation?");
		EmoteLookLockMode = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Emote Camera Lock", true, "Enable first person camera rotation to follow head rotation while emoting?");
		EnableDebugKeys = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enable Control Keys?", true, "Enable keys to control FOV and Near Clip values in game?\n\nUse +/- buttons to increase/decrease FOV value. Hold Shift to change Near Clip value");
		survivorDefaultBoneOverride.Add("RobPaladinBody", "Armature/base/spine.001/spine.002/spine.003/spine.004/neck/head");
		survivorDefaultBoneOverride.Add("HuntressBody", "HuntressArmature/ROOT/base/stomach/chest/head");
		emotesEnabled = Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI");
		PlayerCharacterMasterController.Update += new hook_Update(SetCamera);
		PlayerCharacterMasterController.OnBodyStart += new hook_OnBodyStart(PlayerCharacterMasterController_OnBodyStart);
		SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init);
		survivorClipDefaultValues.Add("Bandit2Body", 0.21f);
		survivorClipDefaultValues.Add("CommandoBody", 0.03337884f);
		survivorClipDefaultValues.Add("CrocoBody", 0.5f);
		survivorClipDefaultValues.Add("HereticBody", 0.755f);
		survivorClipDefaultValues.Add("LoaderBody", 0.06564139f);
		survivorClipDefaultValues.Add("MageBody", 0.03318632f);
		survivorClipDefaultValues.Add("MercBody", 0.0266057f);
		survivorClipDefaultValues.Add("ToolbotBody", 0.51f);
		survivorClipDefaultValues.Add("TreebotBody", 1f);
		survivorClipDefaultValues.Add("RailgunnerBody", 0.2f);
		survivorClipDefaultValues.Add("VoidSurvivorBody", 0.2f);
		survivorClipDefaultValues.Add("RobPaladinBody", 0.3795359f);
		survivorClipDefaultValues.Add("EngiBody", 0.01989561f);
		survivorClipDefaultValues.Add("HuntressBody", 0.2203578f);
		survivorClipDefaultValues.Add("BidenBody", 0.1532053f);
		survivorClipDefaultValues.Add("CaptainBody", 0.01986642f);
		ModSettingsManager.AddOption((BaseOption)new KeyBindOption(FirstPersonToggle));
		ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(FieldOfViewConfig));
		ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(CurrentClip));
		ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableLook));
		ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EmoteLookLockMode));
		ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableDebugKeys));
		ModSettingsManager.AddOption((BaseOption)new GenericButtonOption("Save Near Clip Value", "General", new UnityAction(SaveValue)));
		FieldOfViewConfig.SettingChanged += FieldOfViewConfig_SettingChanged;
		CurrentClip.SettingChanged += FieldOfViewConfig_SettingChanged;
		EnableLook.SettingChanged += EnableLook_SettingChanged;
		Texture2D val = new Texture2D(256, 256);
		using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TrueFirstPerson.modicon.png");
		using BinaryReader binaryReader = new BinaryReader(stream);
		ImageConversion.LoadImage(val, binaryReader.ReadBytes((int)stream.Length));
		Sprite modIcon = Sprite.Create(val, new Rect(0f, 0f, 256f, 256f), new Vector2(0f, 0f));
		ModSettingsManager.SetModIcon(modIcon);
	}

	private void PlayerCharacterMasterController_OnBodyStart(orig_OnBodyStart orig, PlayerCharacterMasterController self)
	{
		orig.Invoke(self);
		toggle = true;
	}

	private void SaveValue()
	{
		if (Object.op_Implicit((Object)(object)camera))
		{
			string text = ((Object)((Component)camera.transform.root).GetComponent<CharacterModel>().body).name;
			while (text.Contains("(Clone)"))
			{
				text = text.Replace("(Clone)", "");
			}
			survivorClipValues[text].Value = CurrentClip.Value;
		}
	}

	private void EnableLook_SettingChanged(object sender, EventArgs e)
	{
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)camera))
		{
			camera.transform.localRotation = Quaternion.identity;
		}
	}

	private void FieldOfViewConfig_SettingChanged(object sender, EventArgs e)
	{
		if (Object.op_Implicit((Object)(object)camera))
		{
			Camera component = camera.GetComponent<Camera>();
			previousMainCameraRigController.baseFov = FieldOfViewConfig.Value;
			component.nearClipPlane = CurrentClip.Value;
		}
	}

	private void SurvivorCatalog_Init(orig_Init orig)
	{
		//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e7: Expected O, but got Unknown
		//IL_0126: Unknown result type (might be due to invalid IL or missing references)
		//IL_0130: Expected O, but got Unknown
		orig.Invoke();
		if (set)
		{
			return;
		}
		set = true;
		foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs)
		{
			string name = ((Object)allSurvivorDef.bodyPrefab).name;
			float num = 0.3f;
			if (survivorClipDefaultValues.ContainsKey(name))
			{
				num = survivorClipDefaultValues[name];
			}
			string text = "";
			if (survivorDefaultBoneOverride.ContainsKey(name))
			{
				text = survivorDefaultBoneOverride[name];
			}
			name = name.Replace("Body", "");
			name = CleanUpString(name);
			ConfigEntry<float> val = ((BaseUnityPlugin)this).Config.Bind<float>("Survivors Config", name + " Clip Value", num, "Near clip value for " + name + " survivor");
			ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(val));
			survivorClipValues.Add(((Object)allSurvivorDef.bodyPrefab).name, val);
			ConfigEntry<string> val2 = ((BaseUnityPlugin)this).Config.Bind<string>("Survivors Config", name + " Path Override", text, "Manual camera parenting path override");
			ModSettingsManager.AddOption((BaseOption)new StringInputFieldOption(val2));
			survivorBoneOverride.Add(((Object)allSurvivorDef.bodyPrefab).name, val2);
		}
	}

	public void SetHead(CharacterBody body = null)
	{
		//IL_017b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0180: Unknown result type (might be due to invalid IL or missing references)
		//IL_0183: Unknown result type (might be due to invalid IL or missing references)
		//IL_020a: Unknown result type (might be due to invalid IL or missing references)
		//IL_020f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0212: Unknown result type (might be due to invalid IL or missing references)
		//IL_019b: Unknown result type (might be due to invalid IL or missing references)
		//IL_022f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01be: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)body == (Object)null)
		{
			CharacterMaster master = NetworkUser.readOnlyLocalPlayersList[0].master;
			body = ((master != null) ? master.GetBody() : null);
		}
		if ((Object)(object)body == (Object)null)
		{
			return;
		}
		string text = ((Object)body).name;
		while (text.Contains("(Clone)"))
		{
			text = text.Replace("(Clone)", "");
		}
		Transform modelTransform = ((Component)body).GetComponent<ModelLocator>().modelTransform;
		HurtBoxGroup component = ((Component)modelTransform).GetComponent<HurtBoxGroup>();
		if (survivorBoneOverride.ContainsKey(text) && survivorBoneOverride[text].Value != "")
		{
			try
			{
				head = ((Component)modelTransform.Find(survivorBoneOverride[text].Value)).gameObject;
			}
			catch
			{
			}
		}
		if ((Object)(object)head == (Object)null)
		{
			HurtBox[] hurtBoxes = component.hurtBoxes;
			foreach (HurtBox val in hurtBoxes)
			{
				if (val.isSniperTarget && (Object)(object)val != (Object)(object)component.mainHurtBox)
				{
					head = ((Component)val).gameObject;
					break;
				}
			}
		}
		if ((Object)(object)((Component)modelTransform).GetComponent<ChildLocator>() == (Object)null)
		{
			return;
		}
		if ((Object)(object)head == (Object)null)
		{
			NameTransformPair[] transformPairs = ((Component)modelTransform).GetComponent<ChildLocator>().transformPairs;
			foreach (NameTransformPair val2 in transformPairs)
			{
				if (val2.name.ToLower().Contains("head") && !val2.name.ToLower().Contains("cannon"))
				{
					head = ((Component)val2.transform).gameObject;
					break;
				}
			}
		}
		if (!((Object)(object)head == (Object)null))
		{
			return;
		}
		NameTransformPair[] transformPairs2 = ((Component)modelTransform).GetComponent<ChildLocator>().transformPairs;
		foreach (NameTransformPair val3 in transformPairs2)
		{
			if (val3.name.ToLower().Contains("chest"))
			{
				head = ((Component)val3.transform).gameObject;
				break;
			}
		}
	}

	public void SetCameraLocalPosition()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		Vector3 localPosition = Vector3.zero;
		if (Object.op_Implicit((Object)(object)head.GetComponent<HurtBox>()))
		{
			if (Object.op_Implicit((Object)(object)((Component)head.GetComponent<HurtBox>()).GetComponent<SphereCollider>()))
			{
				localPosition = ((Component)head.GetComponent<HurtBox>()).GetComponent<SphereCollider>().center;
			}
			if (Object.op_Implicit((Object)(object)head.GetComponent<CapsuleCollider>()))
			{
				localPosition = head.GetComponent<CapsuleCollider>().center;
			}
		}
		if (Object.op_Implicit((Object)(object)head.GetComponent<SphereCollider>()))
		{
			localPosition = head.GetComponent<SphereCollider>().center;
		}
		if (Object.op_Implicit((Object)(object)head.GetComponent<CapsuleCollider>()))
		{
			localPosition = head.GetComponent<CapsuleCollider>().center;
		}
		camera.transform.localPosition = localPosition;
	}

	public string CleanUpString(string stringName)
	{
		char[] array = new char[4] { '[', ']', '"', '\'' };
		char[] array2 = array;
		foreach (char oldChar in array2)
		{
			stringName = stringName.Replace(oldChar, ' ');
		}
		return stringName;
	}

	private void SetCamera(orig_Update orig, PlayerCharacterMasterController self)
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0013: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0202: Unknown result type (might be due to invalid IL or missing references)
		orig.Invoke(self);
		KeyboardShortcut value = FirstPersonToggle.Value;
		if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey) && !PauseManager.isPaused && !((Component)self.networkUser.cameraRigController.hud).GetComponentInChildren<ChatBox>().showInput && Object.op_Implicit((Object)(object)self.body))
		{
			if ((Object)(object)previousMainCamera == (Object)null)
			{
				previousMainCamera = ((Component)self.networkUser.cameraRigController).gameObject;
				previousMainCameraRigController = self.networkUser.cameraRigController;
			}
			if ((Object)(object)eventSystem == (Object)null)
			{
				eventSystem = ((Component)previousMainCameraRigController.hud).GetComponent<MPEventSystemProvider>().eventSystem;
			}
			if ((Object)(object)previousCamera == (Object)null)
			{
				previousCamera = ((Component)previousMainCameraRigController.sceneCam).gameObject;
			}
			if ((Object)(object)musicListener == (Object)null)
			{
				musicListener = ((Component)previousCamera.transform.Find("MusicListener")).gameObject;
			}
			if (toggle)
			{
				Transform modelTransform = ((Component)self.body).GetComponent<ModelLocator>().modelTransform;
				HurtBoxGroup component = ((Component)modelTransform).GetComponent<HurtBoxGroup>();
				string text = ((Object)self.body).name;
				while (text.Contains("(Clone)"))
				{
					text = text.Replace("(Clone)", "");
				}
				SetHead(self.body);
				if ((Object)(object)head == (Object)null)
				{
					if (!Object.op_Implicit((Object)(object)mainCamera))
					{
					}
					return;
				}
				if ((Object)(object)camera == (Object)null)
				{
					camera = Object.Instantiate<GameObject>(previousCamera, head.transform);
					SetCameraLocalPosition();
					camera.GetComponent<SceneCamera>().cameraRigController = previousMainCameraRigController;
					FirstPersonCameraComponent firstPersonCameraComponent = camera.AddComponent<FirstPersonCameraComponent>();
				}
				camera.transform.localRotation = Quaternion.identity;
				Camera component2 = camera.GetComponent<Camera>();
				component2.fieldOfView = FieldOfViewConfig.Value;
				float num = 0.3f;
				if (survivorClipValues.ContainsKey(text))
				{
					num = survivorClipValues[text].Value;
				}
				component2.nearClipPlane = num;
				CurrentClip.Value = num;
				toggle = false;
			}
			else
			{
				if (Object.op_Implicit((Object)(object)camera))
				{
					Object.Destroy((Object)(object)camera);
				}
				toggle = true;
			}
		}
		if (!Object.op_Implicit((Object)(object)camera))
		{
			return;
		}
		if (EnableLook.Value && Object.op_Implicit((Object)(object)head) && head.activeInHierarchy)
		{
			self.body.inputBank.aimDirection = camera.transform.forward;
		}
		if (Input.GetKey((KeyCode)304))
		{
			if (Input.GetKey((KeyCode)61) || Input.GetKey((KeyCode)43))
			{
				Increment(CurrentClip, Time.deltaTime);
			}
			if (Input.GetKey((KeyCode)45))
			{
				Increment(CurrentClip, 0f - Time.deltaTime);
			}
		}
		else
		{
			if (Input.GetKey((KeyCode)61) || Input.GetKey((KeyCode)43))
			{
				Increment(FieldOfViewConfig, Time.deltaTime * 15f);
			}
			if (Input.GetKey((KeyCode)45))
			{
				Increment(FieldOfViewConfig, (0f - Time.deltaTime) * 15f);
			}
		}
		static void Increment(ConfigEntry<float> config, float number)
		{
			config.Value += number;
		}
	}
}