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 AntonzloCameras v1.0.2
Mod.dll
Decompiled 2 years agousing System; using System.Collections; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using AntonzloCameras.Patches; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("AntonzloCameras")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("AntonzloCameras")] [assembly: AssemblyCopyright("Copyright Antonzlo © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("2cee61ba-15cf-4687-8f41-c05b556dd1d2")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace AntonzloCameras { public class Handler : MonoBehaviour { public int cameraState = 0; public static GameObject second; public void ToggleCameraState(PlayerControllerB playerControllerB) { GameObject.Find("StartGameLever").GetComponent<AudioSource>().PlayOneShot(Plugin.zoomSound); if (cameraState == 0) { cameraState = 1; } else if (cameraState == 1) { cameraState = 0; } else if (cameraState == 2) { cameraState = 0; } Plugin.Log.LogInfo((object)("camera: " + cameraState)); Camera component = GameObject.Find("Environment/HangarShip/Cameras/ShipCamera").GetComponent<Camera>(); Plugin.Log.LogInfo((object)$"Camera state: {((Behaviour)component).enabled}, {((Behaviour)component).isActiveAndEnabled}"); } private void Update() { if (Object.op_Implicit((Object)(object)GameObject.Find("MapCamera"))) { if (cameraState == 0) { ((Renderer)second.GetComponent<MeshRenderer>()).materials[1].mainTexture = (Texture)(object)Plugin.internalCameraRt; } else if (cameraState == 1) { ((Renderer)second.GetComponent<MeshRenderer>()).materials[1].mainTexture = (Texture)(object)Plugin.externalCameraRt; } else if (cameraState != 2) { } } } } [BepInPlugin("antonzlo.AntonzloCameras", "AntonzloCameras", "1.0.0")] public class Plugin : BaseUnityPlugin { public const string ModGUID = "antonzlo.AntonzloCameras"; public const string ModName = "AntonzloCameras"; public const string ModVersion = "1.0.0"; private readonly bool appliedMonitorChanges = false; public static ManualLogSource Log = Logger.CreateLogSource("antonzlo.AntonzloCameras"); public static Plugin Instance; public static AssetBundle Bundle; public static GameObject ButtonPrefab; public static AudioClip zoomSound; public static Material ButtonMaterial; public static RenderTexture internalCameraRt; public static RenderTexture externalCameraRt; public static string PluginDirectory; private readonly Harmony harmony = new Harmony("Antonzlo.AntonzloCameras"); private bool didLoad = false; private void Awake() { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown if ((Object)(object)Instance == (Object)null) { Instance = this; ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; } Log.LogInfo((object)"AntonzloCameras start ok"); PluginDirectory = ((BaseUnityPlugin)this).Info.Location; LoadAssets(); Object.DontDestroyOnLoad((Object)this); SceneManager.sceneLoaded += delegate(Scene scene, LoadSceneMode mode) { if (((Scene)(ref scene)).name != "MainMenu" && ((Scene)(ref scene)).name != "InitScene" && ((Scene)(ref scene)).name != "InitSceneLaunchOptions") { ((MonoBehaviour)this).StartCoroutine(OnSceneLoaded()); } }; harmony.PatchAll(typeof(Handler)); harmony.PatchAll(typeof(StartOfRoundPatch)); } private void LoadAssets() { if (didLoad) { Log.LogInfo((object)"Already Loaded?"); return; } try { Bundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(PluginDirectory), "antonzloAssets")); } catch (Exception ex) { Log.LogError((object)("Couldn't load asset bundle: " + ex.Message)); return; } try { ButtonPrefab = Bundle.LoadAsset<GameObject>("CameraZoomSwitchButton.prefab"); zoomSound = Bundle.LoadAsset<AudioClip>("zoom.wav"); ButtonMaterial = Bundle.LoadAsset<Material>("GreenButton.mat"); Log.LogInfo((object)"Successfully loaded assets!"); didLoad = true; } catch (Exception ex2) { Log.LogError((object)("Couldn't load assets: " + ex2.Message)); } } private IEnumerator OnSceneLoaded() { yield return (object)new WaitForSeconds(5f); if (!appliedMonitorChanges) { internalCameraRt = new RenderTexture(1280, 720, 32, (RenderTextureFormat)0); GameObject internalCamera = GameObject.Find("Environment/HangarShip/Cameras/ShipCamera"); internalCamera.GetComponent<Camera>().targetTexture = internalCameraRt; GameObject topMonitors = GameObject.Find("Environment/HangarShip/ShipModels2b/MonitorWall/Cube"); ((Renderer)topMonitors.GetComponent<MeshRenderer>()).materials[2].mainTexture = (Texture)internalCameraRt; Log.LogInfo((object)((Renderer)topMonitors.GetComponent<MeshRenderer>()).materials.Length); Material[] materials = ((Renderer)topMonitors.GetComponent<MeshRenderer>()).materials; Material[] array = materials; foreach (Material material in array) { Log.LogInfo((object)(((Object)material).name + " " + ((Object)material.mainTexture).name)); } externalCameraRt = new RenderTexture(1280, 720, 32, (RenderTextureFormat)0); GameObject externalCamera = GameObject.Find("Environment/HangarShip/Cameras/FrontDoorSecurityCam/SecurityCamera"); externalCamera.GetComponent<Camera>().targetTexture = externalCameraRt; GameObject bottomMonitors = GameObject.Find("Environment/HangarShip/ShipModels2b/MonitorWall/Cube.001"); Log.LogInfo((object)((Renderer)bottomMonitors.GetComponent<MeshRenderer>()).materials); GameObject doorMonitor = GameObject.Find("Environment/HangarShip/ShipModels2b/MonitorWall/SingleScreen"); ((Renderer)doorMonitor.GetComponent<MeshRenderer>()).materials[1].mainTexture = (Texture)externalCameraRt; ((Behaviour)internalCamera.GetComponent<Camera>()).enabled = true; } } } } namespace AntonzloCameras.Patches { [HarmonyPatch(typeof(StartOfRound))] internal class StartOfRoundPatch { [HarmonyPostfix] [HarmonyPatch("Update")] private static void Update_Postfix() { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_016d: 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_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Expected O, but got Unknown if ((Object)(object)GameObject.Find("CameraZoomSwitchButton(Clone)") == (Object)null) { GameObject val = Object.Instantiate<GameObject>(Plugin.ButtonPrefab); val.transform.parent = GameObject.Find("CameraMonitorSwitchButton").transform.parent; val.transform.localPosition = new Vector3(GameObject.Find("CameraMonitorSwitchButton").transform.localPosition.x, GameObject.Find("CameraMonitorSwitchButton").transform.localPosition.y + 1.9f, -0.5f); val.transform.rotation = GameObject.Find("CameraMonitorSwitchButton").transform.rotation; ((Component)val.transform.GetChild(0)).gameObject.AddComponent<Handler>(); ((UnityEvent<PlayerControllerB>)(object)((Component)val.transform.GetChild(0)).GetComponent<InteractTrigger>().onInteract).AddListener((UnityAction<PlayerControllerB>)((Component)val.transform.GetChild(0)).GetComponent<Handler>().ToggleCameraState); ((Component)val.transform.GetChild(0)).GetComponent<InteractTrigger>().hoverTip = "Toggle Camera : [E]"; Plugin.Log.LogInfo((object)"OK!"); GameObject val2 = GameObject.Find("Environment/HangarShip/ShipModels2b/MonitorWall/SingleScreen"); Handler.second = Object.Instantiate<GameObject>(val2); Handler.second.transform.parent = val2.transform.parent; Handler.second.transform.localPosition = new Vector3(val2.transform.localPosition.x + 12f, val2.transform.localPosition.y - 1.65f, val2.transform.localPosition.z + 1f); Handler.second.transform.rotation = val2.transform.rotation; Handler.second.transform.localScale = new Vector3(1f, 1f, 1f); ((Renderer)Handler.second.GetComponent<MeshRenderer>()).materials[1].mainTexture = (Texture)Plugin.internalCameraRt; } } } }