Decompiled source of DynamikaCameraSettings v1.0.1

DynamikaCameraSettings.dll

Decompiled 4 days ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using Bossa.Cinematika;
using Bossa.Cinematika.Controllers;
using Bossa.Dynamika.Character;
using Bossa.Dynamika.MovementModules;
using Bossa.Dynamika.MovementModules.Extensions;
using Bossa.Dynamika.Utilities;
using HarmonyLib;
using Il2CppInterop.Runtime.InteropTypes;
using Microsoft.CodeAnalysis;
using UnityEngine;
using WildSkies.Camera;
using WildSkies.Player;
using WildSkies.Service;
using WildSkies.Ship;
using WildSkies.ShipParts;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("DynamikaCameraSettings")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Nines (Natives)")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyInformationalVersion("1.0.1")]
[assembly: AssemblyProduct("DynamikaCameraSettings")]
[assembly: AssemblyTitle("DynamikaCameraSettings")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace DynamikaCameraSettings
{
	[BepInPlugin("DynamikaCameraSettings", "DynamikaCameraSettings", "1.0.1")]
	public class Plugin : BasePlugin
	{
		private class DynamikaCameraSettingsSimpleChatCommands
		{
			public static string Default_TargetDistance(float value)
			{
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0023: Unknown result type (might be due to invalid IL or missing references)
				DynamikaCameraRecoil controller = Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>();
				CameraSetting defaultSettings = ((DynamikaCamera)controller)._defaultSettings;
				defaultSettings._targetDistance = (defaultSettings._targetDistanceAtVerticalLimits = value);
				((DynamikaCamera)controller)._defaultSettings = defaultSettings;
				Plugin.Default_TargetDistance.Value = value;
				return $"Default TargetDistance now set to {value}";
			}

			public static string Default_ShoulderModifier(float value)
			{
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0019: Unknown result type (might be due to invalid IL or missing references)
				DynamikaCameraRecoil controller = Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>();
				CameraSetting defaultSettings = ((DynamikaCamera)controller)._defaultSettings;
				defaultSettings._shoulderModifier = value;
				((DynamikaCamera)controller)._defaultSettings = defaultSettings;
				Plugin.Default_ShoulderModifier.Value = value;
				return $"Default ShoulderModifier now set to {value}";
			}

			public static string Default_UpModifier(float value)
			{
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0019: Unknown result type (might be due to invalid IL or missing references)
				DynamikaCameraRecoil controller = Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>();
				CameraSetting defaultSettings = ((DynamikaCamera)controller)._defaultSettings;
				defaultSettings._upModifier = value;
				((DynamikaCamera)controller)._defaultSettings = defaultSettings;
				Plugin.Default_UpModifier.Value = value;
				return $"Default UpModifier now set to {value}";
			}

			public static string Sprinting_TargetDistance(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: 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)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Sprinting>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = value);
				extension._settingsOverride = settingsOverride;
				Plugin.Sprinting_TargetDistance.Value = value;
				return $"Sprinting TargetDistance now set to {value}";
			}

			public static string Sprinting_ShoulderModifier(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Sprinting>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._shoulderModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.Sprinting_ShoulderModifier.Value = value;
				return $"Sprinting ShoulderModifier now set to {value}";
			}

			public static string Sprinting_UpModifier(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Sprinting>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._upModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.Sprinting_UpModifier.Value = value;
				return $"Sprinting UpModifier now set to {value}";
			}

			public static string Climbing_TargetDistance(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: 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)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Climbing>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = value);
				extension._settingsOverride = settingsOverride;
				Plugin.Climbing_TargetDistance.Value = value;
				return $"Climbing TargetDistance now set to {value}";
			}

			public static string Climbing_ShoulderModifier(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Climbing>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._shoulderModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.Climbing_ShoulderModifier.Value = value;
				return $"Climbing ShoulderModifier now set to {value}";
			}

			public static string Climbing_UpModifier(float value)
			{
				//IL_001a: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0028: Unknown result type (might be due to invalid IL or missing references)
				CinematikaSettingsOverride extension = ((MovementModule)((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter.GetMovementModule<Climbing>()).GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._upModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.Climbing_UpModifier.Value = value;
				return $"Climbing UpModifier now set to {value}";
			}

			public static string GrapplingHook_TargetDistance(float value)
			{
				//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_005b: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)0, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<GrapplingHook>() : null) == (Object)null)
				{
					return "Grappling hook is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = value);
				extension._settingsOverride = settingsOverride;
				Plugin.GrapplingHook_TargetDistance.Value = value;
				return $"GrapplingHook TargetDistance now set to {value}";
			}

			public static string GrapplingHook_ShoulderModifier(float value)
			{
				//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_0051: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)0, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<GrapplingHook>() : null) == (Object)null)
				{
					return "Grappling hook is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._shoulderModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.GrapplingHook_ShoulderModifier.Value = value;
				return $"GrapplingHook ShoulderModifier now set to {value}";
			}

			public static string GrapplingHook_UpModifier(float value)
			{
				//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_0051: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)0, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<GrapplingHook>() : null) == (Object)null)
				{
					return "Grappling hook is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._upModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.GrapplingHook_UpModifier.Value = value;
				return $"GrapplingHook UpModifier now set to {value}";
			}

			public static string WingGliderItem_TargetDistance(float value)
			{
				//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_005b: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)4, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<WingGliderItem>() : null) == (Object)null)
				{
					return "Wing Glider is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = value);
				extension._settingsOverride = settingsOverride;
				Plugin.WingGliderItem_TargetDistance.Value = value;
				return $"WingGliderItem TargetDistance now set to {value}";
			}

			public static string WingGliderItem_ShoulderModifier(float value)
			{
				//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_0051: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)4, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<WingGliderItem>() : null) == (Object)null)
				{
					return "Wing Glider is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._shoulderModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.WingGliderItem_ShoulderModifier.Value = value;
				return $"WingGliderItem ShoulderModifier now set to {value}";
			}

			public static string WingGliderItem_UpModifier(float value)
			{
				//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_0051: Unknown result type (might be due to invalid IL or missing references)
				UtilityItem val = default(UtilityItem);
				((DynamikaCamera)Object.FindObjectOfType<CameraManager>().GetController<DynamikaCameraRecoil>())._dynamikaCharacter._utilityItems.TryGetValue((UtilitySlot)4, ref val);
				if ((Object)(object)((val != null) ? ((Il2CppObjectBase)val).TryCast<WingGliderItem>() : null) == (Object)null)
				{
					return "Wing Glider is not equipped.";
				}
				CinematikaSettingsOverride extension = val._movementModule.GetExtension<CinematikaSettingsOverride>();
				CameraSetting settingsOverride = extension._settingsOverride;
				settingsOverride._upModifier = value;
				extension._settingsOverride = settingsOverride;
				Plugin.WingGliderItem_UpModifier.Value = value;
				return $"WingGliderItem UpModifier now set to {value}";
			}

			public static string Helm_X(float value)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<Helm>() : null) == (Object)null)
				{
					return "Not on a helm.";
				}
				Transform target = Object.FindObjectOfType<CameraManager>()._target;
				Vector3 localPosition = target.localPosition;
				localPosition.x = value;
				target.localPosition = localPosition;
				Plugin.Helm_X.Value = value;
				return $"Helm X now set to {value}";
			}

			public static string Helm_Y(float value)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<Helm>() : null) == (Object)null)
				{
					return "Not on a helm.";
				}
				Transform target = Object.FindObjectOfType<CameraManager>()._target;
				Vector3 localPosition = target.localPosition;
				localPosition.y = value;
				target.localPosition = localPosition;
				Plugin.Helm_Y.Value = value;
				return $"Helm Y now set to {value}";
			}

			public static string Helm_Z(float value)
			{
				//IL_0049: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<Helm>() : null) == (Object)null)
				{
					return "Not on a helm.";
				}
				CameraManager val = Object.FindObjectOfType<CameraManager>();
				if (val.GetController<PilotCinematikaController>().ThirdPerson)
				{
					return "Leave third person before adjusting helm view settings.";
				}
				Transform target = val._target;
				Vector3 localPosition = target.localPosition;
				localPosition.z = value;
				target.localPosition = localPosition;
				Plugin.Helm_Z.Value = value;
				return $"Helm Z now set to {value}";
			}

			public static string ShipWeapon_X(float value)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<ShipWeapon>() : null) == (Object)null)
				{
					return "Not on a turret.";
				}
				Transform target = Object.FindObjectOfType<CameraManager>()._target;
				Vector3 localPosition = target.localPosition;
				localPosition.x = value;
				target.localPosition = localPosition;
				Plugin.ShipWeapon_X.Value = value;
				return $"ShipWeapon X now set to {value}";
			}

			public static string ShipWeapon_Y(float value)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<ShipWeapon>() : null) == (Object)null)
				{
					return "Not on a turret.";
				}
				Transform target = Object.FindObjectOfType<CameraManager>()._target;
				Vector3 localPosition = target.localPosition;
				localPosition.y = value;
				target.localPosition = localPosition;
				Plugin.ShipWeapon_Y.Value = value;
				return $"ShipWeapon Y now set to {value}";
			}

			public static string ShipWeapon_Z(float value)
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				IPilotable currentlyPiloting = SceneContextInstaller.ResolveObject<PlayersService>().LocalPlayer.CurrentlyPiloting;
				if ((Object)(object)((currentlyPiloting != null) ? ((Il2CppObjectBase)currentlyPiloting).TryCast<ShipWeapon>() : null) == (Object)null)
				{
					return "Not on a turret.";
				}
				Transform target = Object.FindObjectOfType<CameraManager>()._target;
				Vector3 localPosition = target.localPosition;
				localPosition.z = value;
				target.localPosition = localPosition;
				Plugin.ShipWeapon_Z.Value = value;
				return $"ShipWeapon Z now set to {value}";
			}
		}

		internal static ManualLogSource Log;

		internal static Harmony harmonyInstance;

		private static ConfigEntry<float> Default_TargetDistance;

		private static ConfigEntry<float> Default_ShoulderModifier;

		private static ConfigEntry<float> Default_UpModifier;

		private static ConfigEntry<float> Sprinting_TargetDistance;

		private static ConfigEntry<float> Sprinting_ShoulderModifier;

		private static ConfigEntry<float> Sprinting_UpModifier;

		private static ConfigEntry<float> Climbing_TargetDistance;

		private static ConfigEntry<float> Climbing_ShoulderModifier;

		private static ConfigEntry<float> Climbing_UpModifier;

		private static ConfigEntry<float> GrapplingHook_TargetDistance;

		private static ConfigEntry<float> GrapplingHook_ShoulderModifier;

		private static ConfigEntry<float> GrapplingHook_UpModifier;

		private static ConfigEntry<float> WingGliderItem_TargetDistance;

		private static ConfigEntry<float> WingGliderItem_ShoulderModifier;

		private static ConfigEntry<float> WingGliderItem_UpModifier;

		private static ConfigEntry<float> Helm_X;

		private static ConfigEntry<float> Helm_Y;

		private static ConfigEntry<float> Helm_Z;

		private static ConfigEntry<float> ShipWeapon_X;

		private static ConfigEntry<float> ShipWeapon_Y;

		private static ConfigEntry<float> ShipWeapon_Z;

		public override void Load()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			Log = ((BasePlugin)this).Log;
			ManualLogSource log = Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(18, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Plugin ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("DynamikaCameraSettings");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" is loaded!");
			}
			log.LogInfo(val);
			Default_TargetDistance = ((BasePlugin)this).Config.Bind<float>("Default", "TargetDistance", 0.8f, "Default.TargetDistance");
			Default_ShoulderModifier = ((BasePlugin)this).Config.Bind<float>("Default", "ShoulderModifier", 0.55f, "Default.ShoulderModifier");
			Default_UpModifier = ((BasePlugin)this).Config.Bind<float>("Sprinting", "UpModifier", 0.67f, "Default.UpModifier");
			Sprinting_TargetDistance = ((BasePlugin)this).Config.Bind<float>("Sprinting", "TargetDistance", 0.8f, "Sprinting.TargetDistance");
			Sprinting_ShoulderModifier = ((BasePlugin)this).Config.Bind<float>("Sprinting", "ShoulderModifier", 0.55f, "Sprinting.ShoulderModifier");
			Sprinting_UpModifier = ((BasePlugin)this).Config.Bind<float>("Sprinting", "UpModifier", 0.67f, "Sprinting.UpModifier");
			Climbing_TargetDistance = ((BasePlugin)this).Config.Bind<float>("Climbing", "TargetDistance", 1.15f, "Climbing.TargetDistance");
			Climbing_ShoulderModifier = ((BasePlugin)this).Config.Bind<float>("Climbing", "ShoulderModifier", 0.55f, "Climbing.ShoulderModifier");
			Climbing_UpModifier = ((BasePlugin)this).Config.Bind<float>("Climbing", "UpModifier", 0.67f, "Climbing.UpModifier");
			GrapplingHook_TargetDistance = ((BasePlugin)this).Config.Bind<float>("GrapplingHook", "TargetDistance", 1.15f, "GrapplingHook.TargetDistance");
			GrapplingHook_ShoulderModifier = ((BasePlugin)this).Config.Bind<float>("GrapplingHook", "ShoulderModifier", 0.55f, "GrapplingHook.ShoulderModifier");
			GrapplingHook_UpModifier = ((BasePlugin)this).Config.Bind<float>("GrapplingHook", "UpModifier", 0.67f, "GrapplingHook.UpModifier");
			WingGliderItem_TargetDistance = ((BasePlugin)this).Config.Bind<float>("WingGliderItem", "TargetDistance", 0.8f, "WingGliderItem.TargetDistance");
			WingGliderItem_ShoulderModifier = ((BasePlugin)this).Config.Bind<float>("WingGliderItem", "ShoulderModifier", 0.55f, "WingGliderItem.ShoulderModifier");
			WingGliderItem_UpModifier = ((BasePlugin)this).Config.Bind<float>("WingGliderItem", "UpModifier", 0.67f, "WingGliderItem.UpModifier");
			Helm_X = ((BasePlugin)this).Config.Bind<float>("Helm", "X", 0.7f, "Helm.X");
			Helm_Y = ((BasePlugin)this).Config.Bind<float>("Helm", "Y", 1.71f, "Helm.Y");
			Helm_Z = ((BasePlugin)this).Config.Bind<float>("Helm", "Z", -1.75f, "Helm.Z");
			ShipWeapon_X = ((BasePlugin)this).Config.Bind<float>("ShipWeapon", "X", 1f, "ShipWeapon.X");
			ShipWeapon_Y = ((BasePlugin)this).Config.Bind<float>("ShipWeapon", "Y", -0.6f, "ShipWeapon.Y");
			ShipWeapon_Z = ((BasePlugin)this).Config.Bind<float>("ShipWeapon", "Z", -0.8f, "ShipWeapon.Z");
			harmonyInstance = Harmony.CreateAndPatchAll(typeof(Plugin), (string)null);
		}

		public override bool Unload()
		{
			Harmony obj = harmonyInstance;
			if (obj != null)
			{
				obj.UnpatchSelf();
			}
			return true;
		}

		[HarmonyPatch(typeof(CameraManager), "Awake")]
		[HarmonyPostfix]
		public static void CameraManager_Awake(CameraManager __instance)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			DynamikaCameraRecoil controller = __instance.GetController<DynamikaCameraRecoil>();
			CameraSetting defaultSettings = ((DynamikaCamera)controller)._defaultSettings;
			defaultSettings._targetDistance = (defaultSettings._targetDistanceAtVerticalLimits = Default_TargetDistance.Value);
			defaultSettings._shoulderModifier = Default_ShoulderModifier.Value;
			defaultSettings._upModifier = Default_UpModifier.Value;
			((DynamikaCamera)controller)._defaultSettings = defaultSettings;
		}

		[HarmonyPatch(typeof(DynamikaCharacter), "Awake")]
		[HarmonyPostfix]
		public static void DynamikaCharacter_Awake(DynamikaCharacter __instance)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			CinematikaSettingsOverride extension = ((MovementModule)__instance.GetMovementModule<Sprinting>()).GetExtension<CinematikaSettingsOverride>();
			CameraSetting settingsOverride = extension._settingsOverride;
			settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = Sprinting_TargetDistance.Value);
			settingsOverride._shoulderModifier = Sprinting_ShoulderModifier.Value;
			settingsOverride._upModifier = Sprinting_UpModifier.Value;
			extension._settingsOverride = settingsOverride;
			CinematikaSettingsOverride extension2 = ((MovementModule)__instance.GetMovementModule<Climbing>()).GetExtension<CinematikaSettingsOverride>();
			settingsOverride = extension2._settingsOverride;
			settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = Climbing_TargetDistance.Value);
			settingsOverride._shoulderModifier = Climbing_ShoulderModifier.Value;
			settingsOverride._upModifier = Climbing_UpModifier.Value;
			extension2._settingsOverride = settingsOverride;
		}

		[HarmonyPatch(typeof(GrapplingHook), "Awake")]
		[HarmonyPostfix]
		public static void GrapplingHook_Awake(GrapplingHook __instance)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			CinematikaSettingsOverride extension = ((UtilityItem)__instance)._movementModule.GetExtension<CinematikaSettingsOverride>();
			CameraSetting settingsOverride = extension._settingsOverride;
			settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = GrapplingHook_TargetDistance.Value);
			settingsOverride._shoulderModifier = GrapplingHook_ShoulderModifier.Value;
			settingsOverride._upModifier = GrapplingHook_UpModifier.Value;
			extension._settingsOverride = settingsOverride;
		}

		[HarmonyPatch(typeof(WingGliderItem), "Awake")]
		[HarmonyPostfix]
		public static void WingGliderItem_Awake(WingGliderItem __instance)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			CinematikaSettingsOverride extension = ((UtilityItem)__instance)._movementModule.GetExtension<CinematikaSettingsOverride>();
			CameraSetting settingsOverride = extension._settingsOverride;
			settingsOverride._targetDistance = (settingsOverride._targetDistanceAtVerticalLimits = WingGliderItem_TargetDistance.Value);
			settingsOverride._shoulderModifier = WingGliderItem_ShoulderModifier.Value;
			settingsOverride._upModifier = WingGliderItem_UpModifier.Value;
			extension._settingsOverride = settingsOverride;
		}

		[HarmonyPatch(typeof(LocalPlayer), "TakeControlOfShip")]
		[HarmonyPrefix]
		public static void LocalPlayer_TakeControlOfShip(Helm helm)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			Vector3 localPosition = helm._cameraTarget.localPosition;
			localPosition.x = Helm_X.Value;
			localPosition.y = Helm_Y.Value;
			localPosition.z = Helm_Z.Value;
			helm._cameraTarget.localPosition = localPosition;
		}

		[HarmonyPatch(typeof(LocalPlayer), "PilotTurret")]
		[HarmonyPrefix]
		public static void LocalPlayer_PilotTurret(ShipWeapon turret, bool isRemotePiloting)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			Vector3 localPosition = turret._cameraTarget.localPosition;
			localPosition.x = (isRemotePiloting ? 0f : ShipWeapon_X.Value);
			localPosition.y = (isRemotePiloting ? 0f : ShipWeapon_Y.Value);
			localPosition.z = (isRemotePiloting ? 0f : ShipWeapon_Z.Value);
			turret._cameraTarget.localPosition = localPosition;
		}

		[HarmonyPatch(typeof(PilotCinematikaController), "UpdateTransform")]
		[HarmonyPostfix]
		public static void PilotCinematikaController_UpdateTransform(PilotCinematikaController __instance)
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)((CinematikaController)__instance)._manager.Target == (Object)null) && !__instance.ThirdPerson && ((CinematikaController)__instance)._manager.Target.localPosition.z < -1.25f)
			{
				Camera camera = ((CinematikaController)__instance)._manager.Camera;
				camera.cullingMask |= 1 << LayerMask.NameToLayer("PlayerHiddenFirstPerson");
			}
		}

		[HarmonyPatch(typeof(PilotCinematikaController), "ThirdPersonToggle")]
		[HarmonyPostfix]
		public static void PilotCinematikaController_ThirdPersonToggle(PilotCinematikaController __instance)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			Vector3 localPosition = ((CinematikaController)__instance)._manager.Target.localPosition;
			localPosition.x = (__instance.ThirdPerson ? 0f : Helm_X.Value);
			localPosition.y = (__instance.ThirdPerson ? 1.71f : Helm_Y.Value);
			localPosition.z = (__instance.ThirdPerson ? (-1f) : Helm_Z.Value);
			((CinematikaController)__instance)._manager.Target.localPosition = localPosition;
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "DynamikaCameraSettings";

		public const string PLUGIN_NAME = "DynamikaCameraSettings";

		public const string PLUGIN_VERSION = "1.0.1";
	}
}