Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of CamFreeModifiyer v1.0.4
CamFreeModifiyer.dll
Decompiled 3 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using RoR2; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("jpriebe")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyDescription("Risk of Rain 2 Camera Modifier - Customizable camera settings")] [assembly: AssemblyFileVersion("1.0.4.0")] [assembly: AssemblyInformationalVersion("1.0.4+885c4606aba4d40417c9c1e0472f497f0995d5c5")] [assembly: AssemblyProduct("CamFreeModifiyer")] [assembly: AssemblyTitle("CamFreeModifiyer")] [assembly: AssemblyVersion("1.0.4.0")] [module: RefSafetyRules(11)] 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 CamFreeModifiyer { [HarmonyPatch] public static class CameraPatches { private static Vector3 lastAppliedPositionOffset = Vector3.zero; private static Vector3 lastAppliedEulerOffset = Vector3.zero; private static bool offsetsApplied = false; [HarmonyPatch(typeof(CameraRigController), "SetCameraState")] [HarmonyPrefix] public static void CameraRigController_SetCameraState_Prefix(CameraRigController __instance) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)__instance == (Object)null) && !((Object)(object)__instance.sceneCam == (Object)null)) { __instance.baseFov = Plugin.FieldOfView.Value; if (offsetsApplied) { Transform transform = ((Component)__instance.sceneCam).transform; transform.position -= lastAppliedPositionOffset; Vector3 eulerAngles = transform.eulerAngles; eulerAngles.x -= lastAppliedEulerOffset.x; transform.eulerAngles = eulerAngles; offsetsApplied = false; } } } [HarmonyPatch(typeof(CameraRigController), "SetCameraState")] [HarmonyPostfix] public static void CameraRigController_SetCameraState_Postfix(CameraRigController __instance) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: 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) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)__instance == (Object)null) && !((Object)(object)__instance.sceneCam == (Object)null)) { Camera sceneCam = __instance.sceneCam; Transform transform = ((Component)sceneCam).transform; sceneCam.fieldOfView = Plugin.FieldOfView.Value; float num = Plugin.CameraDistance.Value - 10f; float value = Plugin.CameraHeight.Value; float value2 = Plugin.CameraHorizontal.Value; float value3 = Plugin.CameraPitch.Value; lastAppliedPositionOffset = Vector3.zero; lastAppliedEulerOffset = Vector3.zero; if (Mathf.Abs(num) > 0.001f) { Vector3 val = -transform.forward * num; transform.position += val; lastAppliedPositionOffset += val; } if (Mathf.Abs(value) > 0.001f) { Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(0f, value, 0f); transform.position += val2; lastAppliedPositionOffset += val2; } if (Mathf.Abs(value2) > 0.001f) { Vector3 val3 = transform.right * value2; transform.position += val3; lastAppliedPositionOffset += val3; } if (Mathf.Abs(value3) > 0.001f) { Vector3 eulerAngles = transform.eulerAngles; eulerAngles.x += value3; transform.eulerAngles = eulerAngles; lastAppliedEulerOffset.x = value3; } offsetsApplied = true; } } } [BepInPlugin("com.jpriebe.camfreemodifiyer", "CamFreeModifiyer", "1.0.4")] public class Plugin : BaseUnityPlugin { public const string PluginGUID = "com.jpriebe.camfreemodifiyer"; public const string PluginName = "CamFreeModifiyer"; public const string PluginVersion = "1.0.4"; public static ConfigEntry<float> FieldOfView; public static ConfigEntry<float> CameraDistance; public static ConfigEntry<float> CameraPitch; public static ConfigEntry<float> CameraHeight; public static ConfigEntry<float> CameraHorizontal; public static ConfigEntry<KeyCode> ToggleMenuKey; private bool showUI; private Rect windowRect = new Rect(20f, 20f, 300f, 320f); private Harmony harmony; public static Plugin Instance { get; private set; } private void Awake() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown Instance = this; InitializeConfig(); harmony = new Harmony("com.jpriebe.camfreemodifiyer"); harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"CamFreeModifiyer v1.0.4 loaded!"); } private void InitializeConfig() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Expected O, but got Unknown FieldOfView = ((BaseUnityPlugin)this).Config.Bind<float>("Camera Settings", "Field of View", 60f, new ConfigDescription("Camera field of view in degrees", (AcceptableValueBase)(object)new AcceptableValueRange<float>(30f, 120f), Array.Empty<object>())); CameraDistance = ((BaseUnityPlugin)this).Config.Bind<float>("Camera Settings", "Camera Distance", 10f, new ConfigDescription("Distance of the camera from the player", (AcceptableValueBase)(object)new AcceptableValueRange<float>(5f, 30f), Array.Empty<object>())); CameraPitch = ((BaseUnityPlugin)this).Config.Bind<float>("Camera Settings", "Camera Pitch", 0f, new ConfigDescription("Vertical angle/tilt of the camera in degrees", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-45f, 45f), Array.Empty<object>())); CameraHeight = ((BaseUnityPlugin)this).Config.Bind<float>("Camera Settings", "Camera Height", 0f, new ConfigDescription("Height offset of the camera", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-5f, 10f), Array.Empty<object>())); CameraHorizontal = ((BaseUnityPlugin)this).Config.Bind<float>("Camera Settings", "Camera Horizontal", 0f, new ConfigDescription("Horizontal offset of the camera (negative = left, positive = right)", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-10f, 10f), Array.Empty<object>())); ToggleMenuKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Controls", "Toggle Menu Key", (KeyCode)286, "Key to toggle the in-game camera settings menu"); } private void Update() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) if (Input.GetKeyDown(ToggleMenuKey.Value)) { showUI = !showUI; } } private void OnGUI() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (showUI) { windowRect = GUI.Window(0, windowRect, new WindowFunction(DrawSettingsWindow), "CamFreeModifiyer Settings"); } } private void DrawSettingsWindow(int windowId) { GUILayout.BeginVertical(Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); GUILayout.Label($"Field of View: {FieldOfView.Value:F1}°", Array.Empty<GUILayoutOption>()); FieldOfView.Value = GUILayout.HorizontalSlider(FieldOfView.Value, 30f, 120f, Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); GUILayout.Label($"Camera Distance: {CameraDistance.Value:F1}", Array.Empty<GUILayoutOption>()); CameraDistance.Value = GUILayout.HorizontalSlider(CameraDistance.Value, 5f, 30f, Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); GUILayout.Label($"Camera Pitch: {CameraPitch.Value:F1}°", Array.Empty<GUILayoutOption>()); CameraPitch.Value = GUILayout.HorizontalSlider(CameraPitch.Value, -45f, 45f, Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); GUILayout.Label($"Camera Height: {CameraHeight.Value:F1}", Array.Empty<GUILayoutOption>()); CameraHeight.Value = GUILayout.HorizontalSlider(CameraHeight.Value, -5f, 10f, Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); GUILayout.Label($"Camera Horizontal: {CameraHorizontal.Value:F1}", Array.Empty<GUILayoutOption>()); CameraHorizontal.Value = GUILayout.HorizontalSlider(CameraHorizontal.Value, -10f, 10f, Array.Empty<GUILayoutOption>()); GUILayout.Space(10f); if (GUILayout.Button("Reset to Defaults", Array.Empty<GUILayoutOption>())) { FieldOfView.Value = (float)((ConfigEntryBase)FieldOfView).DefaultValue; CameraDistance.Value = (float)((ConfigEntryBase)CameraDistance).DefaultValue; CameraPitch.Value = (float)((ConfigEntryBase)CameraPitch).DefaultValue; CameraHeight.Value = (float)((ConfigEntryBase)CameraHeight).DefaultValue; CameraHorizontal.Value = (float)((ConfigEntryBase)CameraHorizontal).DefaultValue; } GUILayout.Space(5f); if (GUILayout.Button("Close", Array.Empty<GUILayoutOption>())) { showUI = false; } GUILayout.EndVertical(); GUI.DragWindow(); } private void OnDestroy() { Harmony obj = harmony; if (obj != null) { obj.UnpatchSelf(); } } } }