Decompiled source of Operator Drone Carry Camera Tweaks v1.0.0

plugins/OperatorDroneCarryCameraTweaks.dll

Decompiled 3 days ago
using System;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using HG.BlendableTypes;
using HG.Reflection;
using Microsoft.CodeAnalysis;
using RiskOfOptions;
using RiskOfOptions.Options;
using RoR2;
using UnityEngine;
using UnityEngine.AddressableAssets;

[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("OperatorDroneCarryCameraTweaks")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("OperatorDroneCarryCameraTweaks")]
[assembly: AssemblyTitle("OperatorDroneCarryCameraTweaks")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.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 OperatorDroneCarryCameraTweaks
{
	public static class ModCompatabilities
	{
		public static class RiskOfOptionsCompatability
		{
			public const string GUID = "com.rune580.riskofoptions";

			public static void AddConfig<T>(ConfigEntry<T> config, T value)
			{
				//IL_0019: Unknown result type (might be due to invalid IL or missing references)
				//IL_0023: Expected O, but got Unknown
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0046: Expected O, but got Unknown
				//IL_005f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Expected O, but got Unknown
				//IL_0082: Unknown result type (might be due to invalid IL or missing references)
				//IL_008c: Expected O, but got Unknown
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cc: Expected O, but got Unknown
				if (value is float)
				{
					ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(config as ConfigEntry<float>));
				}
				if (value is bool)
				{
					ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(config as ConfigEntry<bool>));
				}
				if (value is int)
				{
					ModSettingsManager.AddOption((BaseOption)new IntFieldOption(config as ConfigEntry<int>));
				}
				if (value is string)
				{
					ModSettingsManager.AddOption((BaseOption)new StringInputFieldOption(config as ConfigEntry<string>));
				}
				if (value is Enum && !value.GetType().GetCustomAttributes<FlagsAttribute>().Any())
				{
					ModSettingsManager.AddOption((BaseOption)new ChoiceOption((ConfigEntryBase)(object)config));
				}
			}
		}
	}
	[Serializable]
	[BepInPlugin("com.brynzananas.operatordronecarrycameratweaks", "Operator Drone Carry Camera Tweaks", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class OperatorDroneCarryCameraTweaksPlugin : BaseUnityPlugin
	{
		public const string ModGuid = "com.brynzananas.operatordronecarrycameratweaks";

		public const string ModName = "Operator Drone Carry Camera Tweaks";

		public const string ModVer = "1.0.0";

		public static CharacterCameraParams characterCameraParams;

		public static ConfigEntry<float> idealLocalCameraPosX;

		public static ConfigEntry<float> idealLocalCameraPosY;

		public static ConfigEntry<float> idealLocalCameraPosZ;

		public static ConfigEntry<float> pivotVerticalOffset;

		public static bool riskOfOptionsEnabled { get; private set; }

		public void Awake()
		{
			//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			riskOfOptionsEnabled = Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions");
			idealLocalCameraPosX = ((BaseUnityPlugin)this).Config.Bind<float>("Main", "Local Camera X Position", 0f, "");
			idealLocalCameraPosX.SettingChanged += IdealLocalCameraPos_SettingChanged;
			if (riskOfOptionsEnabled)
			{
				ModCompatabilities.RiskOfOptionsCompatability.AddConfig(idealLocalCameraPosX, idealLocalCameraPosX.Value);
			}
			idealLocalCameraPosY = ((BaseUnityPlugin)this).Config.Bind<float>("Main", "Local Camera Y Position", -3f, "");
			idealLocalCameraPosY.SettingChanged += IdealLocalCameraPos_SettingChanged;
			if (riskOfOptionsEnabled)
			{
				ModCompatabilities.RiskOfOptionsCompatability.AddConfig(idealLocalCameraPosY, idealLocalCameraPosY.Value);
			}
			idealLocalCameraPosZ = ((BaseUnityPlugin)this).Config.Bind<float>("Main", "Local Camera Z Position", -6f, "");
			idealLocalCameraPosZ.SettingChanged += IdealLocalCameraPos_SettingChanged;
			if (riskOfOptionsEnabled)
			{
				ModCompatabilities.RiskOfOptionsCompatability.AddConfig(idealLocalCameraPosZ, idealLocalCameraPosZ.Value);
			}
			pivotVerticalOffset = ((BaseUnityPlugin)this).Config.Bind<float>("Main", "Vertical Offset", 0f, "");
			pivotVerticalOffset.SettingChanged += IdealLocalCameraPos_SettingChanged;
			if (riskOfOptionsEnabled)
			{
				ModCompatabilities.RiskOfOptionsCompatability.AddConfig(pivotVerticalOffset, pivotVerticalOffset.Value);
			}
			characterCameraParams = Addressables.LoadAssetAsync<CharacterCameraParams>((object)"RoR2/DLC3/Drone Tech/ccpCarryFlight.asset").WaitForCompletion();
			Apply();
		}

		private static void IdealLocalCameraPos_SettingChanged(object sender, EventArgs e)
		{
			Apply();
		}

		public static void Apply()
		{
			//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_000e: Unknown result type (might be due to invalid IL or missing references)
			//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_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: 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_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: 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)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			CharacterCameraParamsData data = characterCameraParams.data;
			BlendableVector3 val = default(BlendableVector3);
			val.value = new Vector3(idealLocalCameraPosX.Value, idealLocalCameraPosY.Value, idealLocalCameraPosZ.Value);
			val.alpha = 1f;
			BlendableVector3 idealLocalCameraPos = val;
			data.idealLocalCameraPos = idealLocalCameraPos;
			BlendableFloat val2 = default(BlendableFloat);
			val2.value = pivotVerticalOffset.Value;
			val2.alpha = 1f;
			BlendableFloat val3 = val2;
			data.pivotVerticalOffset = val3;
			val2 = default(BlendableFloat);
			val2.value = 89.9f;
			val2.alpha = 1f;
			val3 = val2;
			data.maxPitch = val3;
			val2 = default(BlendableFloat);
			val2.value = -89.9f;
			val2.alpha = 1f;
			val3 = val2;
			data.minPitch = val3;
			characterCameraParams.data = data;
		}
	}
}