using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using PluginConfig.API; using PluginConfig.API.Fields; using UnityEngine; using UnityEngine.Playables; using UnityEngine.Rendering; using UnityEngine.Timeline; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("EyeOfProvidence")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("EyeOfProvidence")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("4f3178f0-3d13-4083-8082-9c202d685155")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace EyeOfProvidence; public class AssetHandler { public static AssetBundle bundle; public static bool bundleLoaded = false; public static Dictionary prefabs = new Dictionary(); public static void LoadBundle(string name) { if (bundleLoaded) { Debug.Log((object)("AssetBundle " + name + " already loaded")); return; } bundle = AssetBundle.LoadFromFile(Path.Combine(Path.Combine(Utils.ModDir(), "Data"), name)); if ((Object)(object)bundle != (Object)null) { Debug.Log((object)("AssetBundle " + name + " successfully loaded")); bundleLoaded = true; } else { Debug.Log((object)("AssetBundle " + name + " failed to loaded")); bundleLoaded = false; } } public static T LoadAsset(string name) where T : Object { if (!bundleLoaded) { Debug.Log((object)"Bundle is not loaded"); return default(T); } T val = bundle.LoadAsset(name); if ((Object)(object)val == (Object)null) { Debug.Log((object)(name + " didn't load")); } return val; } public static void UnloadBundle() { if (!bundleLoaded) { Debug.Log((object)"Bundle already unloaded"); return; } Debug.Log((object)"Bundle succesfully unloaded"); bundle.Unload(true); bundle = null; } } public class CamInfo { public float posDist = 1f; public Quaternion camRot = Quaternion.identity; public Vector2 scale = Vector2.one; } public enum GlobeRayMehtod { General, Cube } public class GlobeInfo { public string name = "Globe"; public CamInfo[] camInfos; public GlobeRayMehtod rayMethod = GlobeRayMehtod.General; } public class GlobeRender : MonoBehaviour { public CommandBuffer bloodOilCB; public CommandBuffer limboCB; public Camera mainCam; public Dictionary skyboxGlobes = new Dictionary(); private Mesh mesh; public void Start() { Init(); } public void Init() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: 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 //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Expected O, but got Unknown //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown skyboxGlobes.Add(GlobeSkyboxType.Limbo, null); skyboxGlobes.Add(GlobeSkyboxType.Theater, null); skyboxGlobes.Add(GlobeSkyboxType.Space, null); if (bloodOilCB == null) { bloodOilCB = new CommandBuffer(); bloodOilCB.name = "Globe Blood and Oil"; Plugin.cams[0].AddCommandBuffer((CameraEvent)20, bloodOilCB); } if (limboCB == null) { limboCB = new CommandBuffer(); limboCB.name = "Limbo Butt Fart"; } Camera.onPreRender = (CameraCallback)Delegate.Combine((Delegate?)(object)Camera.onPreRender, (Delegate?)new CameraCallback(OnPreRenderCallback)); Camera.onPostRender = (CameraCallback)Delegate.Combine((Delegate?)(object)Camera.onPostRender, (Delegate?)new CameraCallback(OnPostRenderCallback)); } public bool HasSkybox(GlobeSkyboxType type) { return (Object)(object)skyboxGlobes[type] != (Object)null; } public bool RenderSkybox(GlobeSkyboxType type) { if ((Object)(object)skyboxGlobes[type] == (Object)null) { return false; } skyboxGlobes[type].RenderSkybox(); return true; } public Texture GetSkyboxTexture(GlobeSkyboxType type, int index) { if ((Object)(object)skyboxGlobes[type] == (Object)null) { return null; } return skyboxGlobes[type].GetSkyboxTexture(index); } public void CreateSkyboxGlobe(GlobeSkyboxType type, Transform target) { if ((Object)(object)skyboxGlobes[type] != (Object)null) { skyboxGlobes[type].DestroySkyboxGlobe(); } skyboxGlobes[type] = GlobeSkybox.CreateSkyboxGlobe(target); } public void UpdateSkyboxGlobes() { GlobeSkybox[] array = skyboxGlobes.Values.ToArray(); for (int i = 0; i < array.Length; i++) { if (Object.op_Implicit((Object)(object)array[i])) { array[i].UpdateSkyboxCams(); } } } public void DestroySkyboxGlobes() { GlobeSkybox[] array = skyboxGlobes.Values.ToArray(); for (int i = 0; i < array.Length; i++) { if (Object.op_Implicit((Object)(object)array[i])) { array[i].DestroySkyboxGlobe(); } } } public void Render2(Camera cam) { Shader.SetGlobalTexture("_LimboSky", Plugin.texst); Shader.SetGlobalFloat("_LimboSkyWidth", (float)Plugin.texst.width); Shader.SetGlobalFloat("_LimboSkyHeight", (float)Plugin.texst.height); } public void Render(Camera cam) { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009c: 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_00ac: 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_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_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) BloodsplatterManager instance = MonoSingleton.Instance; StainVoxelManager instance2 = MonoSingleton.Instance; PostProcessV2_Handler instance3 = MonoSingleton.Instance; mainCam = cam; if (instance.usedComputeShadersAtStart) { instance.stainMat.SetBuffer("instanceBuffer", instance.instanceBuffer); instance.stainMat.SetBuffer("parentBuffer", instance.parentBuffer); instance2.gasStainMat.SetBuffer("instanceBuffer", instance2.propBuffer); instance2.gasStainMat.SetBuffer("stainMatrices", instance2.stainBuffer); } bloodOilCB.Clear(); Matrix4x4 val = GL.GetGPUProjectionMatrix(instance3.mainCam.projectionMatrix, true) * instance3.mainCam.worldToCameraMatrix; Matrix4x4 inverse = ((Matrix4x4)(ref val)).inverse; bloodOilCB.SetRenderTarget(RenderTargetIdentifier.op_Implicit(instance3.reusableBufferB.colorBuffer)); bloodOilCB.ClearRenderTarget(false, true, Color.clear); if (instance.usedComputeShadersAtStart) { bloodOilCB.DrawMeshInstancedIndirect(instance.optimizedBloodMesh, 0, instance.stainMat, 0, instance.argsBuffer, 0, (MaterialPropertyBlock)null); } else { bloodOilCB.DrawMesh(instance.totalStainMesh, Matrix4x4.identity, instance.stainMat); } bloodOilCB.SetRenderTarget(RenderTargetIdentifier.op_Implicit(mainCam.targetTexture.colorBuffer)); bloodOilCB.DrawProcedural(PostProcessV2_Handler.identityMatrix, instance.bloodCompositeMaterial, 1, (MeshTopology)0, 3, 1); bloodOilCB.DrawMesh(Plugin.meshTest, Matrix4x4.identity, Plugin.meshMat); } private void OnPostRenderCallback(Camera cam) { if (!(((Object)cam).name == "Camera Front")) { } } private void OnPreRenderCallback(Camera cam) { Texture bexst = Plugin.bexst; int index = 0; bool flag = false; switch (((Object)cam).name) { case "Globe Cam 1": flag = true; index = 0; break; case "Globe Cam 2": flag = true; index = 1; break; case "Globe Cam 3": flag = true; index = 2; bexst = Plugin.texst; break; case "Globe Cam 4": flag = true; index = 3; break; case "Globe Cam 5": flag = true; index = 4; break; case "Globe Cam 6": flag = true; index = 5; break; } if (flag) { Texture skyboxTexture = GetSkyboxTexture(GlobeSkyboxType.Limbo, index); if (Object.op_Implicit((Object)(object)skyboxTexture)) { Shader.SetGlobalTexture("_LimboSky", skyboxTexture); Shader.SetGlobalFloat("_LimboSkyWidth", (float)skyboxTexture.width); Shader.SetGlobalFloat("_LimboSkyHeight", (float)skyboxTexture.height); } Texture skyboxTexture2 = GetSkyboxTexture(GlobeSkyboxType.Space, index); if (Object.op_Implicit((Object)(object)skyboxTexture2)) { Shader.SetGlobalTexture("_SpaceSky", skyboxTexture2); } } } } public enum ProjectionMode { Equirectangular, Mercator, Fisheye, Stereographic, Panini, Hammer, Winkel, Quincuncial, Bonne, Polyconic, Orthographic } public enum GlobeMode { Cube, TriPrism, Tetrahedron } public enum OrthoMode { Hemisphere, Duel, DuelCentered, SplitBack, SplitSide } public enum FisheyeMode { Equidistant, EqualArea } public static class ConfigManager { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static PostFloatSliderValueChangeEvent <>9__45_0; public static PostBoolValueChangeEvent <>9__45_1; public static PostIntValueChangeEvent <>9__45_2; public static PostEnumValueChangeEvent <>9__45_3; public static PostEnumValueChangeEvent <>9__45_4; public static PostEnumValueChangeEvent <>9__45_5; public static PostEnumValueChangeEvent <>9__45_6; public static PostFloatValueChangeEvent <>9__45_7; internal void b__45_0(float e, Tuple f) { UpdateValeus(); } internal void b__45_1(bool e) { UpdateValeus(); } internal void b__45_2(int e) { UpdateValeus(); } internal void b__45_3(ProjectionMode e) { UpdateValeus(); } internal void b__45_4(GlobeMode e) { UpdateValeus(); } internal void b__45_5(OrthoMode e) { UpdateValeus(); } internal void b__45_6(FisheyeMode e) { UpdateValeus(); } internal void b__45_7(float e) { UpdateValeus(); } } public static PluginConfigurator config; public static BoolField UltraFOV; public static FloatField PlayerFOVUncapped; public static FloatSliderField PlayerFOV; public static BoolField PlayerFOVShouldUncap; public static EnumField Projection; public static EnumField OrthoType; public static EnumField FisheyeType; public static EnumField Globe; public static BoolField Stretch; public static BoolField VerticalFit; public static FloatSliderField FisheyeFit; public static FloatSliderField PaniniFactor; public static FloatSliderField WinkelFit; public static FloatSliderField WernerFactor; public static FloatSliderField WernerFit; public static FloatSliderField BonneShift; public static FloatField Quality; public static KeyCodeField UltraFOVBind; public static BoolField EnableZooming; public static BoolField Grid; public static KeyCodeField GridBind; public static FloatSliderField GridOpac; public static BoolField Map; public static KeyCodeField MapBind; public static FloatSliderField MapOpac; public static BoolField EffectViewModel; public static FloatSliderField GlobeRotateX; public static FloatSliderField GlobeRotateY; public static FloatSliderField GlobeRotateZ; public static BoolField EnableGlobeSkybox; public static IntField GlobeSkyboxFramerate; public static List GlobeEnablePlanes = new List(); public static int GlobeEnabledPlaneMask = int.MaxValue; public static BoolField GlobeChangeAllPlaneQualitys; public static FloatField GlobeQuality; public static List GlobePlaneQualitys = new List(); public static List projectionBinds = new List(); public static List projectionFOV = new List(); public static List projectionStretch = new List(); public static List projectionVertFit = new List(); public static List configs = new List(); public static ConfigPanel ProjectionPanel; public static ConfigPanel GlobePanel; public static ConfigPanel MiscPanel; public static void Setup() { //IL_002f: 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_003a: Expected O, but got Unknown //IL_003f: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_006a: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Expected O, but got Unknown //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Expected O, but got Unknown //IL_0222: Expected O, but got Unknown //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Expected O, but got Unknown //IL_025c: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Expected O, but got Unknown //IL_0296: Expected O, but got Unknown //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Expected O, but got Unknown //IL_02d0: Expected O, but got Unknown //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Expected O, but got Unknown //IL_030a: Expected O, but got Unknown //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Expected O, but got Unknown //IL_0344: Expected O, but got Unknown //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Expected O, but got Unknown //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Expected O, but got Unknown //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Expected O, but got Unknown //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Expected O, but got Unknown //IL_04f4: Expected O, but got Unknown //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Expected O, but got Unknown //IL_0540: Expected O, but got Unknown //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Expected O, but got Unknown //IL_0567: Expected O, but got Unknown //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Expected O, but got Unknown //IL_05a1: Expected O, but got Unknown //IL_05cb: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Expected O, but got Unknown //IL_05db: Expected O, but got Unknown //IL_0605: Unknown result type (might be due to invalid IL or missing references) //IL_060a: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Expected O, but got Unknown //IL_0615: Expected O, but got Unknown //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_0657: Expected O, but got Unknown //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06a3: Expected O, but got Unknown //IL_06a8: Expected O, but got Unknown //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Expected O, but got Unknown //IL_06ce: Expected O, but got Unknown //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Expected O, but got Unknown //IL_0708: Expected O, but got Unknown //IL_071e: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0729: Expected O, but got Unknown //IL_072e: Expected O, but got Unknown //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_074f: Expected O, but got Unknown //IL_0754: Expected O, but got Unknown //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_0783: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Expected O, but got Unknown //IL_078e: Expected O, but got Unknown //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07af: Expected O, but got Unknown //IL_07b4: Expected O, but got Unknown //IL_07ca: Unknown result type (might be due to invalid IL or missing references) //IL_07cf: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Expected O, but got Unknown //IL_07da: Expected O, but got Unknown //IL_083b: Unknown result type (might be due to invalid IL or missing references) //IL_0840: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Expected O, but got Unknown //IL_08ef: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Expected O, but got Unknown //IL_091d: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Expected O, but got Unknown //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a08: Expected O, but got Unknown config = PluginConfigurator.Create("Eye of Providence", "ironfarm.uk.xbox369"); List list = configs; BoolField val = new BoolField(config.rootPanel, "Enable Mod", "bool.ultrafov", true); UltraFOV = val; list.Add((ConfigField)val); List list2 = configs; KeyCodeField val2 = new KeyCodeField(config.rootPanel, "Activation Keybind", "keycode.ultrafov", (KeyCode)0); UltraFOVBind = val2; list2.Add((ConfigField)val2); ProjectionPanel = new ConfigPanel(config.rootPanel, "Projection Settings", "panel.projection"); GlobePanel = new ConfigPanel(config.rootPanel, "Globe Settings", "panel.globe"); MiscPanel = new ConfigPanel(config.rootPanel, "Misc Settings", "panel.misc"); for (int i = 0; i < Enum.GetNames(typeof(ProjectionMode)).Length; i++) { float num = 360f; switch ((ProjectionMode)i) { case ProjectionMode.Panini: num = 180f; break; case ProjectionMode.Stereographic: num = 180f; break; } ConfigPanel projectionPanel = ProjectionPanel; ProjectionMode projectionMode = (ProjectionMode)i; FloatSliderField item = new FloatSliderField(projectionPanel, "Player Fov", "slider.playerfov." + projectionMode.ToString().ToLower(), new Tuple(0f, 360f), num, 0, true, true); configs.Add((ConfigField)(object)item); projectionFOV.Add(item); } configs.Add((ConfigField)(object)(Projection = new EnumField(ProjectionPanel, "Projection", "enum.projection", ProjectionMode.Panini))); configs.Add((ConfigField)(object)(FisheyeType = new EnumField(ProjectionPanel, "Fisheye Mode", "enum.fisheyemode", FisheyeMode.Equidistant))); configs.Add((ConfigField)(object)(OrthoType = new EnumField(ProjectionPanel, "Orthograhpic Mode", "enum.orthomode", OrthoMode.Duel))); List list3 = configs; FloatSliderField val3 = new FloatSliderField(ProjectionPanel, "Fisheye Fit", "slider.fisheyefit", new Tuple(0f, 2f), 0f, 2); FisheyeFit = val3; list3.Add((ConfigField)val3); List list4 = configs; FloatSliderField val4 = new FloatSliderField(ProjectionPanel, "Panini Intensity", "slider.paninifactor", new Tuple(0f, 1f), 1f, 2); PaniniFactor = val4; list4.Add((ConfigField)val4); List list5 = configs; FloatSliderField val5 = new FloatSliderField(ProjectionPanel, "Winkel Fit", "slider.winkelfit", new Tuple(0f, 1f), 0f, 2); WinkelFit = val5; list5.Add((ConfigField)val5); List list6 = configs; FloatSliderField val6 = new FloatSliderField(ProjectionPanel, "Werner Factor", "slider.wernerfactor", new Tuple(0f, 1f), 1f, 2); WernerFactor = val6; list6.Add((ConfigField)val6); List list7 = configs; FloatSliderField val7 = new FloatSliderField(ProjectionPanel, "Werner Fit", "slider.wernerfit", new Tuple(0f, 1f), 1f, 2); WernerFit = val7; list7.Add((ConfigField)val7); List list8 = configs; FloatSliderField val8 = new FloatSliderField(ProjectionPanel, "Bonne Centering", "slider.bonneshift", new Tuple(0f, 1f), 1f, 2); BonneShift = val8; list8.Add((ConfigField)val8); for (int j = 0; j < Enum.GetNames(typeof(ProjectionMode)).Length; j++) { bool flag = false; ProjectionMode projectionMode2 = (ProjectionMode)j; ProjectionMode projectionMode3 = projectionMode2; if (projectionMode3 == ProjectionMode.Fisheye || (uint)(projectionMode3 - 6) <= 1u || projectionMode3 == ProjectionMode.Polyconic) { flag = true; } ConfigPanel projectionPanel2 = ProjectionPanel; ProjectionMode projectionMode = (ProjectionMode)j; BoolField item2 = new BoolField(projectionPanel2, "Ignore Aspect Ratio", "bool.stretch." + projectionMode.ToString().ToLower(), false); ConfigPanel projectionPanel3 = ProjectionPanel; projectionMode = (ProjectionMode)j; BoolField item3 = new BoolField(projectionPanel3, "Vertical Fit", "bool.vertfit." + projectionMode.ToString().ToLower(), flag); configs.Add((ConfigField)(object)item2); projectionStretch.Add(item2); configs.Add((ConfigField)(object)item3); projectionVertFit.Add(item3); } for (int k = 0; k < Enum.GetNames(typeof(ProjectionMode)).Length; k++) { ConfigPanel projectionPanel4 = ProjectionPanel; ProjectionMode projectionMode = (ProjectionMode)k; string text = projectionMode.ToString() + " Keybind"; projectionMode = (ProjectionMode)k; KeyCodeField item4 = new KeyCodeField(projectionPanel4, text, "keycode.projection." + projectionMode.ToString().ToLower(), (KeyCode)0); configs.Add((ConfigField)(object)item4); projectionBinds.Add(item4); } List list9 = configs; FloatField val9 = new FloatField(GlobePanel, "Quality", "float.quality", 9f, 0f, 10f); Quality = val9; list9.Add((ConfigField)val9); configs.Add((ConfigField)(object)(Globe = new EnumField(GlobePanel, "Globe", "enum.globe", GlobeMode.Cube))); List list10 = configs; BoolField val10 = new BoolField(GlobePanel, "Enable Globe Skybox", "bool.globeskybox", true); EnableGlobeSkybox = val10; list10.Add((ConfigField)val10); List list11 = configs; IntField val11 = new IntField(GlobePanel, "Globe Skybox Refresh Rate", "int.globeskyboxfps", 60); GlobeSkyboxFramerate = val11; list11.Add((ConfigField)val11); List list12 = configs; FloatSliderField val12 = new FloatSliderField(GlobePanel, "Globe X Rotation", "slider.globerotx", new Tuple(-1f, 1f), 0f, 2); GlobeRotateX = val12; list12.Add((ConfigField)val12); List list13 = configs; FloatSliderField val13 = new FloatSliderField(GlobePanel, "Globe Y Rotation", "slider.globeroty", new Tuple(-1f, 1f), 0f, 2); GlobeRotateY = val13; list13.Add((ConfigField)val13); List list14 = configs; FloatSliderField val14 = new FloatSliderField(GlobePanel, "Globe Z Rotation", "slider.globerotz", new Tuple(-1f, 1f), 0f, 2); GlobeRotateZ = val14; list14.Add((ConfigField)val14); for (int l = 0; l < 6; l++) { BoolField item5 = new BoolField(GlobePanel, "Globe Enable Panel " + (l + 1), "bool.globeenablepanel." + (l + 1), true); configs.Add((ConfigField)(object)item5); GlobeEnablePlanes.Add(item5); } List list15 = configs; BoolField val15 = new BoolField(MiscPanel, "Grid View", "bool.grid", false); Grid = val15; list15.Add((ConfigField)val15); List list16 = configs; KeyCodeField val16 = new KeyCodeField(MiscPanel, "Grid Keybind", "keycode.grid", (KeyCode)0); GridBind = val16; list16.Add((ConfigField)val16); List list17 = configs; FloatSliderField val17 = new FloatSliderField(MiscPanel, "Grid Opacity", "slider.gridopac", new Tuple(0f, 1f), 0.2f, 2); GridOpac = val17; list17.Add((ConfigField)val17); List list18 = configs; BoolField val18 = new BoolField(MiscPanel, "Map View", "bool.map", false); Map = val18; list18.Add((ConfigField)val18); List list19 = configs; KeyCodeField val19 = new KeyCodeField(MiscPanel, "Map Keybind", "keycode.map", (KeyCode)0); MapBind = val19; list19.Add((ConfigField)val19); List list20 = configs; FloatSliderField val20 = new FloatSliderField(MiscPanel, "Map Opacity", "slider.mapopac", new Tuple(0f, 1f), 0.75f, 2); MapOpac = val20; list20.Add((ConfigField)val20); List list21 = configs; BoolField val21 = new BoolField(MiscPanel, "Enable Zooming", "bool.zooming", true); EnableZooming = val21; list21.Add((ConfigField)val21); List list22 = configs; BoolField val22 = new BoolField(MiscPanel, "Projection Affects View Model", "bool.viewmodel", false); EffectViewModel = val22; list22.Add((ConfigField)val22); for (int m = 0; m < configs.Count(); m++) { Type type = ((object)configs[m]).GetType(); if (configs[m] is FloatSliderField) { ConfigField obj = configs[m]; FloatSliderField val23 = (FloatSliderField)(object)((obj is FloatSliderField) ? obj : null); object obj2 = <>c.<>9__45_0; if (obj2 == null) { PostFloatSliderValueChangeEvent val24 = delegate { UpdateValeus(); }; <>c.<>9__45_0 = val24; obj2 = (object)val24; } val23.postValueChangeEvent += (PostFloatSliderValueChangeEvent)obj2; continue; } ConfigField val25 = configs[m]; ConfigField val26 = val25; BoolField val27 = (BoolField)(object)((val26 is BoolField) ? val26 : null); if (val27 == null) { IntField val28 = (IntField)(object)((val26 is IntField) ? val26 : null); if (val28 == null) { if (!(val26 is EnumField val29)) { if (!(val26 is EnumField val30)) { if (!(val26 is EnumField val31)) { if (!(val26 is EnumField val32)) { FloatField val33 = (FloatField)(object)((val26 is FloatField) ? val26 : null); if (val33 == null) { continue; } object obj3 = <>c.<>9__45_7; if (obj3 == null) { PostFloatValueChangeEvent val34 = delegate { UpdateValeus(); }; <>c.<>9__45_7 = val34; obj3 = (object)val34; } val33.postValueChangeEvent += (PostFloatValueChangeEvent)obj3; } else { val32.postValueChangeEvent += delegate { UpdateValeus(); }; } } else { val31.postValueChangeEvent += delegate { UpdateValeus(); }; } } else { val30.postValueChangeEvent += delegate { UpdateValeus(); }; } } else { val29.postValueChangeEvent += delegate { UpdateValeus(); }; } continue; } object obj4 = <>c.<>9__45_2; if (obj4 == null) { PostIntValueChangeEvent val35 = delegate { UpdateValeus(); }; <>c.<>9__45_2 = val35; obj4 = (object)val35; } val28.postValueChangeEvent += (PostIntValueChangeEvent)obj4; continue; } object obj5 = <>c.<>9__45_1; if (obj5 == null) { PostBoolValueChangeEvent val36 = delegate { UpdateValeus(); }; <>c.<>9__45_1 = val36; obj5 = (object)val36; } val27.postValueChangeEvent += (PostBoolValueChangeEvent)obj5; } UpdateValeus(); string path = Utils.ModDir(); string text2 = Path.Combine(Path.Combine(path, "Data"), "icon.png"); config.SetIconWithURL("file://" + text2); } public static void Update() { //IL_0006: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) if (Input.GetKeyUp(UltraFOVBind.value)) { UltraFOV.value = !UltraFOV.value; UpdateValeus(); } if (!UltraFOV.value) { return; } if (Input.GetKeyUp(MapBind.value)) { Map.value = !Map.value; UpdateValeus(); } if (Input.GetKeyUp(GridBind.value)) { Grid.value = !Grid.value; UpdateValeus(); } for (int i = 0; i < projectionBinds.Count(); i++) { if (Input.GetKeyUp(projectionBinds[i].value)) { Projection.value = (ProjectionMode)i; UpdateValeus(); } } } public static void UpdateValeus() { Plugin.UltraFOV = UltraFOV.value; Plugin.EnableGlobeSkybox = EnableGlobeSkybox.value; Plugin.GlobeSkyboxFramerate = GlobeSkyboxFramerate.value; PostProssesingBaby.Grid = Grid.value; PostProssesingBaby.GridOpac = GridOpac.value; PostProssesingBaby.Map = Map.value; PostProssesingBaby.MapOpac = MapOpac.value; PostProssesingBaby.Projection = Projection.value; Plugin.Globe = Globe.value; Plugin.EffectViewModel = EffectViewModel.value; if (Plugin.DefaultFOV != projectionFOV[(int)Projection.value].value) { Plugin.DefaultFOV = projectionFOV[(int)Projection.value].value; Plugin.FOV = Plugin.DefaultFOV; PostProssesingBaby.PlayerFOV = Plugin.FOV; } Plugin.EnableZooming = EnableZooming.value; PostProssesingBaby.Quality = Quality.value; PostProssesingBaby.FisheyeFit = FisheyeFit.value; PostProssesingBaby.Stretch = projectionStretch[(int)Projection.value].value; PostProssesingBaby.VertFit = projectionVertFit[(int)Projection.value].value; PostProssesingBaby.PaniniFactor = PaniniFactor.value; PostProssesingBaby.WinkelFit = WinkelFit.value; PostProssesingBaby.FisheyeType = FisheyeType.value; PostProssesingBaby.OrthoType = OrthoType.value; PostProssesingBaby.WernerFactor = WernerFactor.value; PostProssesingBaby.WernerFit = WernerFit.value; PostProssesingBaby.BonneShift = BonneShift.value; PostProssesingBaby.GlobeRotX = GlobeRotateX.value; Plugin.GlobeRotX = GlobeRotateX.value; PostProssesingBaby.GlobeRotY = GlobeRotateY.value; Plugin.GlobeRotY = GlobeRotateY.value; PostProssesingBaby.GlobeRotZ = GlobeRotateZ.value; Plugin.GlobeRotZ = GlobeRotateZ.value; GlobeEnabledPlaneMask = 0; for (int i = 0; i < GlobeEnablePlanes.Count; i++) { int num = (GlobeEnablePlanes[i].value ? 1 : 0); GlobeEnabledPlaneMask += num << i; } Plugin.GlobeMask = GlobeEnabledPlaneMask; for (int j = 0; j < configs.Count(); j++) { if (configs[j].guid != "bool.ultrafov") { configs[j].hidden = true; } } ((ConfigField)UltraFOV).hidden = false; if (UltraFOV.value) { ((ConfigField)UltraFOVBind).hidden = false; } ((ConfigField)Projection).hidden = false; ((ConfigField)projectionBinds[(int)Projection.value]).hidden = false; ((ConfigField)projectionFOV[(int)Projection.value]).hidden = false; ((ConfigField)projectionStretch[(int)Projection.value]).hidden = false; ((ConfigField)projectionVertFit[(int)Projection.value]).hidden = false; ((ConfigField)EnableZooming).hidden = false; switch (Projection.value) { case ProjectionMode.Fisheye: ((ConfigField)FisheyeFit).hidden = false; ((ConfigField)FisheyeType).hidden = false; break; case ProjectionMode.Panini: ((ConfigField)PaniniFactor).hidden = false; break; case ProjectionMode.Winkel: ((ConfigField)WinkelFit).hidden = false; break; case ProjectionMode.Bonne: ((ConfigField)WernerFactor).hidden = false; ((ConfigField)WernerFit).hidden = false; ((ConfigField)BonneShift).hidden = false; break; case ProjectionMode.Orthographic: ((ConfigField)OrthoType).hidden = false; break; } ((ConfigField)Globe).hidden = false; ((ConfigField)Quality).hidden = false; ((ConfigField)EnableGlobeSkybox).hidden = false; if (EnableGlobeSkybox.value) { ((ConfigField)GlobeSkyboxFramerate).hidden = false; } ((ConfigField)GlobeRotateX).hidden = false; ((ConfigField)GlobeRotateY).hidden = false; ((ConfigField)GlobeRotateZ).hidden = false; for (int k = 0; k < GlobeEnablePlanes.Count; k++) { ((ConfigField)GlobeEnablePlanes[k]).hidden = false; } ((ConfigField)Grid).hidden = false; ((ConfigField)Map).hidden = false; if (Grid.value) { ((ConfigField)GridOpac).hidden = false; ((ConfigField)GridBind).hidden = false; } if (Map.value) { ((ConfigField)MapOpac).hidden = false; ((ConfigField)MapBind).hidden = false; } ((ConfigField)EffectViewModel).hidden = false; } } public enum GlobeSkyboxType { Limbo, Space, Theater } public class GlobeSkybox : MonoBehaviour { public Camera[] skyboxCams = (Camera[])(object)new Camera[6]; public RenderTexture[] skyboxTexs = (RenderTexture[])(object)new RenderTexture[6]; public bool skyboxSetup = false; public static GlobeSkybox CreateSkyboxGlobe(Transform target) { GlobeSkybox globeSkybox = Object.Instantiate(Plugin.globePref, target).AddComponent(); globeSkybox.SetupSkyboxCams(); return globeSkybox; } public void SetupSkyboxCams() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown skyboxCams = ((Component)this).GetComponentsInChildren(); skyboxTexs = (RenderTexture[])(object)new RenderTexture[skyboxCams.Length]; for (int i = 0; i < skyboxCams.Length; i++) { if (Object.op_Implicit((Object)(object)skyboxCams[i])) { ((Behaviour)skyboxCams[i]).enabled = false; skyboxTexs[i] = new RenderTexture(512, 512, 24, (RenderTextureFormat)0); skyboxCams[i].targetTexture = skyboxTexs[i]; } } UpdateSkyboxCams(); RenderSkybox(); skyboxSetup = true; } public void DestroySkyboxGlobe() { Object.Destroy((Object)(object)((Component)this).gameObject); } public Texture GetSkyboxTexture(int index) { return (Texture)(object)skyboxTexs[index]; } public void UpdateSkyboxCams() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.localRotation = Plugin.globeRotation; for (int i = 0; i < skyboxCams.Length && i < Plugin.cams.Length; i++) { if (Object.op_Implicit((Object)(object)skyboxCams[i]) && Object.op_Implicit((Object)(object)Plugin.cams[i])) { skyboxCams[i].nearClipPlane = Plugin.cams[i].nearClipPlane; skyboxCams[i].farClipPlane = Plugin.cams[i].farClipPlane; skyboxCams[i].cullingMask = Plugin.cams[i].cullingMask; skyboxCams[i].aspect = Plugin.cams[i].aspect; skyboxCams[i].fieldOfView = Plugin.cams[i].fieldOfView; ((Component)skyboxCams[i]).transform.localRotation = ((Component)Plugin.cams[i]).transform.localRotation; } } } public void RenderSkybox() { for (int i = 0; i < skyboxCams.Length && i < Plugin.cams.Length; i++) { if (Object.op_Implicit((Object)(object)skyboxCams[i]) && Object.op_Implicit((Object)(object)Plugin.cams[i]) && ((Behaviour)Plugin.cams[i]).enabled) { skyboxCams[i].Render(); } } } } [BepInPlugin("ironfarm.uk.xbox369", "Eye of Providence", "0.7.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { [HarmonyPatch] public static class XboxGamePass { public static bool reinitTex = UltraFOV; public static bool renderCam = false; [HarmonyPostfix] [HarmonyPatch(typeof(PostProcessV2_Handler), "OnPreRenderCallback")] public static void FUUUUUUUU(PostProcessV2_Handler __instance) { } [HarmonyPostfix] [HarmonyPatch(typeof(PostProcessV2_Handler), "HeatWaves")] public static void skinitsundermyskinoffpeelitoffskinoffpeeloffskin(PostProcessV2_Handler __instance) { } [HarmonyPostfix] [HarmonyPatch(typeof(PostProcessV2_Handler), "ReleaseTextures")] public static void DisbandTrollLegion(PostProcessV2_Handler __instance) { if (Object.op_Implicit((Object)(object)tex)) { tex.Release(); } if (Object.op_Implicit((Object)(object)tex)) { Object.Destroy((Object)(object)tex); } tex = null; } [HarmonyPostfix] [HarmonyPatch(typeof(PostProcessV2_Handler), "ChangeCamera")] public static void remember(PostProcessV2_Handler __instance) { if (UltraFOV) { reinitTex = true; } } [HarmonyPostfix] [HarmonyPatch(typeof(CameraController), "LateUpdate")] public static void updateFov(CameraController __instance) { if (!UltraFOV || !EnableZooming || !Object.op_Implicit((Object)(object)__instance)) { return; } if (__instance.zooming) { FOV = Mathf.MoveTowards(FOV, __instance.zoomTarget, Time.deltaTime * 300f); } else if (Object.op_Implicit((Object)(object)__instance.nm) && __instance.nm.boost) { if (__instance.dodgeDirection == 0) { FOV = DefaultFOV - DefaultFOV / 20f; } else if (__instance.dodgeDirection == 1) { FOV = DefaultFOV + DefaultFOV / 10f; } } else { FOV = Mathf.MoveTowards(FOV, DefaultFOV, Time.deltaTime * 300f); } PostProssesingBaby.PlayerFOV = FOV; } [HarmonyPrefix] [HarmonyPatch(typeof(LimboSkybox), "UpdateCamera")] public static bool NoMario(LimboSkybox __instance, Camera cam) { //IL_00a3: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) if (UltraFOV && enableGlobeSkybox && Object.op_Implicit((Object)(object)globeRender)) { if (!((Behaviour)__instance).isActiveAndEnabled) { return false; } __instance.InitializeRT(); if (Application.isPlaying) { __instance.playerCam = __instance.cc.cam; } if ((Object)(object)cam != (Object)null) { __instance.playerCam = cam; } if ((Object)(object)__instance.playerCam == (Object)null) { return false; } Vector3 val = (((Component)__instance.playerCam).transform.position - __instance.playerStartPos) / 16f; float num = (__instance.lockMinimumHeight ? Mathf.Max(val.y, 0f) : val.y); ((Component)__instance.fakeCam).transform.position = __instance.fakeCamStart.position + new Vector3(val.x, num, val.z); ((Component)__instance.fakeCam).transform.rotation = ((Component)__instance.playerCam).transform.rotation; if (globeRender.HasSkybox(GlobeSkyboxType.Limbo)) { globeSkyboxAcc += Time.deltaTime; if (globeSkyboxAcc >= 1f / (float)globeSkyboxFramerate) { globeRender.RenderSkybox(GlobeSkyboxType.Limbo); globeSkyboxAcc = 0f; } } else if (Object.op_Implicit((Object)(object)__instance.fakeCam)) { globeRender.CreateSkyboxGlobe(GlobeSkyboxType.Limbo, ((Component)__instance.fakeCam).transform); } return false; } return true; } [HarmonyPostfix] [HarmonyPatch(typeof(FraudTheatreSkybox), "UpdateCamera")] public static void NoWario(FraudTheatreSkybox __instance) { } [HarmonyPrefix] [HarmonyPatch(typeof(SpaceSkybox), "UpdateCamera")] public static bool NoLucario(SpaceSkybox __instance, Camera cam) { //IL_00aa: Unknown result type (might be due to invalid IL or missing references) if (UltraFOV && enableGlobeSkybox) { if (Object.op_Implicit((Object)(object)globeRender)) { if (!((Behaviour)__instance).isActiveAndEnabled) { return false; } __instance.InitializeRT(); if (Application.isPlaying) { __instance.playerCam = __instance.cc.cam; } if ((Object)(object)cam != (Object)null) { __instance.playerCam = cam; } if ((Object)(object)__instance.playerCam == (Object)null) { return false; } ((Component)__instance.fakeCam).transform.rotation = ((Component)__instance.playerCam).transform.rotation; if (globeRender.HasSkybox(GlobeSkyboxType.Space)) { globeSkyboxAcc += Time.deltaTime; if (globeSkyboxAcc >= 1f / (float)globeSkyboxFramerate) { globeRender.RenderSkybox(GlobeSkyboxType.Space); globeSkyboxAcc = 0f; } } else if (Object.op_Implicit((Object)(object)__instance.fakeCam)) { globeRender.CreateSkyboxGlobe(GlobeSkyboxType.Space, ((Component)__instance.fakeCam).transform); } return false; } } else { Shader.SetGlobalTexture("_SpaceSky", (Texture)(object)__instance.skybox); } return true; } [HarmonyPrefix] [HarmonyPatch(typeof(LimboSkybox), "OnEnable")] public static void setupSkyCams(LimboSkybox __instance) { } [HarmonyPostfix] [HarmonyPatch(typeof(PostProcessV2_Handler), "SetupRTs")] public static void rage(PostProcessV2_Handler __instance) { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Expected O, but got Unknown //IL_00b2: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: 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) if (!Object.op_Implicit((Object)(object)tex)) { } if (Object.op_Implicit((Object)(object)tex)) { } bool flag = __instance.width != __instance.lastWidth || __instance.height != __instance.lastHeight; if (reinitTex || flag) { tex = new RenderTexture(__instance.width, __instance.height, 0, (RenderTextureFormat)0) { name = "Xx_TrollLegion_xX", antiAliasing = 1, filterMode = (FilterMode)0 }; Graphics.Blit(texst, tex); __instance.mainTex = tex; __instance.buffers[0] = __instance.mainTex.colorBuffer; __instance.buffers[1] = __instance.reusableBufferA.colorBuffer; __instance.buffers[2] = __instance.viewNormal.colorBuffer; __instance.SetupOutlines(false); __instance.postProcessV2_VSRM.SetTexture("_MainTex", (Texture)(object)__instance.mainTex); reinitTex = false; } } } private Harmony harmony = new Harmony("ironfarm.uk.xbox369"); public static Plugin instance; private AssetBundle bundle; public static GameObject globePref; private GameObject globeCube; private GameObject globeTP; private GameObject globeTH; public static int globeIndex = 1; public static bool enableGlobeSkybox = true; public static int globeSkyboxFramerate = 0; public static float globeSkyboxAcc = 0f; public static Camera[] cams = (Camera[])(object)new Camera[6]; private static GameObject globe; public static GlobeMode Globe = GlobeMode.Cube; public static float GlobeRotX = 0f; public static float GlobeRotY = 0f; public static float GlobeRotZ = 0f; public static PostProssesingBaby post; public static GlobeRender globeRender; public static Quaternion globeRotation = Quaternion.identity; public static int GlobeMask = int.MaxValue; public int globeMask = 0; private Material mat; private RenderBuffer[] chumBuckets = (RenderBuffer[])(object)new RenderBuffer[3]; private List globeInfos = new List(); public static RenderTexture tex; private static RenderTexture tempxter; public static Texture texst; public static Texture bexst; public static GameObject testObj; public static Mesh meshTest; public static Material meshMat; public static bool UltraFOV = true; public static float DefaultFOV = 180f; public static float FOV = 180f; public static bool EnableZooming = true; public static bool EnableGlobeSkybox = true; public static int GlobeSkyboxFramerate = 24; public static bool EffectViewModel = false; private bool effectViewModel = false; public static bool test = false; public CommandBuffer bloodOilCB; public void Awake() { } public void Start() { Debug.Log((object)"Reddit, I think I know what we're gonna do today!"); AssetHandler.LoadBundle("ultra_nato"); testObj = AssetHandler.LoadAsset("Cube"); meshTest = AssetHandler.LoadAsset("default").GetComponent().mesh; meshMat = ((Renderer)AssetHandler.LoadAsset("default").GetComponent()).material; globePref = AssetHandler.LoadAsset("GlobeCam"); globeCube = AssetHandler.LoadAsset("GlobeCam Cube"); globeTP = AssetHandler.LoadAsset("GlobeCam TP"); globeTH = AssetHandler.LoadAsset("GlobeCam TH"); mat = AssetHandler.LoadAsset("coolMat"); texst = AssetHandler.LoadAsset("Gun Color Small"); bexst = AssetHandler.LoadAsset("test"); harmony.PatchAll(typeof(XboxGamePass)); ConfigManager.Setup(); instance = this; globeMask = GlobeMask; } public void Update() { if (UltraFOV) { if (Object.op_Implicit((Object)(object)MonoSingleton.Instance) && Object.op_Implicit((Object)(object)MonoSingleton.Instance.cam) && !Object.op_Implicit((Object)(object)globe)) { SetupGlobe(); } } else if (Object.op_Implicit((Object)(object)globe)) { if (Object.op_Implicit((Object)(object)MonoSingleton.Instance.cam.targetTexture)) { } ClearGlobe(); } UpdateGlobe(); ConfigManager.Update(); } public void GlobeMaskCheck() { globeMask = GlobeMask; int num = globeMask; int num2 = 6; if (globeIndex < globeInfos.Count() && globeInfos[globeIndex] != null) { GlobeInfo globeInfo = globeInfos[globeIndex]; num2 = globeInfo.camInfos.Length; } for (int i = 0; i < cams.Length; i++) { ((Behaviour)cams[i]).enabled = num % 2 == 1 && i < num2; num >>= 1; } } public void SetupGlobeInfos() { //IL_00a4: 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_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_019e: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) globeInfos.Clear(); for (int i = 0; i < Enum.GetNames(typeof(GlobeMode)).Length; i++) { GlobeInfo globeInfo = new GlobeInfo(); switch ((GlobeMode)i) { case GlobeMode.Cube: { globeInfo.name = "Cube"; globeInfo.rayMethod = GlobeRayMehtod.Cube; GameObject val = Object.Instantiate(globeCube, ((Component)MonoSingleton.Instance.cam).transform); if (Object.op_Implicit((Object)(object)val)) { Camera[] componentsInChildren = val.GetComponentsInChildren(); globeInfo.camInfos = new CamInfo[componentsInChildren.Length]; for (int k = 0; k < componentsInChildren.Length && k < 6; k++) { CamInfo camInfo2 = new CamInfo(); camInfo2.camRot = ((Component)componentsInChildren[k]).transform.localRotation; camInfo2.posDist = 1f; camInfo2.scale = new Vector2(1f, 1f); globeInfo.camInfos[k] = camInfo2; } globeInfos.Add(globeInfo); Object.Destroy((Object)(object)val); } break; } case GlobeMode.TriPrism: { globeInfo.name = "Triangular Prism"; GameObject val = Object.Instantiate(globeTP, ((Component)MonoSingleton.Instance.cam).transform); if (!Object.op_Implicit((Object)(object)val)) { break; } Camera[] componentsInChildren = val.GetComponentsInChildren(); globeInfo.camInfos = new CamInfo[componentsInChildren.Length]; for (int l = 0; l < componentsInChildren.Length && l < 6; l++) { CamInfo camInfo3 = new CamInfo(); camInfo3.camRot = ((Component)componentsInChildren[l]).transform.localRotation; camInfo3.posDist = 1f; camInfo3.scale = new Vector2(1f, 1f); if (l == 0 || l == 1 || l == 2) { camInfo3.posDist = 1f / Mathf.Sqrt(3f); } else { camInfo3.posDist = 1f; camInfo3.scale.y *= 1.15f; } globeInfo.camInfos[l] = camInfo3; } globeInfos.Add(globeInfo); Object.Destroy((Object)(object)val); break; } case GlobeMode.Tetrahedron: { globeInfo.name = "Tetrahedron"; GameObject val = Object.Instantiate(globeTH, ((Component)MonoSingleton.Instance.cam).transform); if (!Object.op_Implicit((Object)(object)val)) { break; } Camera[] componentsInChildren = val.GetComponentsInChildren(); globeInfo.camInfos = new CamInfo[componentsInChildren.Length]; for (int j = 0; j < componentsInChildren.Length && j < 6; j++) { CamInfo camInfo = new CamInfo(); camInfo.camRot = ((Component)componentsInChildren[j]).transform.localRotation; camInfo.posDist = 1f / (2f * Mathf.Sqrt(3f)); camInfo.scale = new Vector2(1f, 1f); if (j != 3) { camInfo.scale.y *= 0.5f; } globeInfo.camInfos[j] = camInfo; } globeInfos.Add(globeInfo); Object.Destroy((Object)(object)val); break; } } } } public void ResetGlobe() { ClearGlobe(); SetupGlobe(); } public void UpdateGlobe() { //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)globe)) { return; } if (globeMask != GlobeMask) { GlobeMaskCheck(); ResetGlobe(); } if (globeIndex != (int)Globe) { globeIndex = (int)Globe; ResetGlobe(); } if (globeSkyboxFramerate != GlobeSkyboxFramerate) { globeSkyboxFramerate = GlobeSkyboxFramerate; globeSkyboxAcc = 0f; } if (enableGlobeSkybox != EnableGlobeSkybox) { enableGlobeSkybox = EnableGlobeSkybox; ResetGlobe(); } if (effectViewModel != EffectViewModel) { effectViewModel = EffectViewModel; if (!effectViewModel) { Camera hudCamera = MonoSingleton.Instance.hudCamera; hudCamera.cullingMask |= 0x2000; } ResetGlobe(); } if (globeRotation != PostProssesingBaby.globeRotation) { globeRotation = Quaternion.Euler(0f, 0f, 1f) * Quaternion.Inverse(PostProssesingBaby.globeRotation); globe.transform.localRotation = globeRotation; if (Object.op_Implicit((Object)(object)globeRender)) { globeRender.UpdateSkyboxGlobes(); } } if (Object.op_Implicit((Object)(object)tex) && (Object)(object)post.mainCam.targetTexture != (Object)(object)tex) { post.mainCam.targetTexture = tex; } } public void SetupGlobe() { //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) XboxGamePass.reinitTex = true; MonoSingleton.Instance.reinitializeTextures = true; MonoSingleton.Instance.SetupRTs(); globe = Object.Instantiate(globePref, ((Component)MonoSingleton.Instance.cam).transform); post = ((Component)((Component)MonoSingleton.Instance.cam).transform).gameObject.AddComponent(); for (int i = 0; i < cams.Length; i++) { cams[i] = ((Component)globe.transform.GetChild(i)).GetComponent(); ((Object)cams[i]).name = "Globe Cam " + (i + 1); cams[i].nearClipPlane = MonoSingleton.Instance.cam.nearClipPlane; cams[i].farClipPlane = MonoSingleton.Instance.cam.farClipPlane; cams[i].cullingMask = MonoSingleton.Instance.cam.cullingMask; if (effectViewModel) { Camera obj = cams[i]; obj.cullingMask |= 0x2000; } } if (effectViewModel) { Camera hudCamera = MonoSingleton.Instance.hudCamera; hudCamera.cullingMask &= 0; } SetupGlobeInfos(); GlobeMaskCheck(); post.mainCam = ((Component)post).GetComponent(); post.mainCam.targetTexture = tex; post.postEffectMaterial = mat; post.cams = cams; globe.transform.localPosition = Vector3.zero; globe.transform.localRotation = Quaternion.Euler(0f, 0f, 1f); if (globeIndex < globeInfos.Count() && globeInfos[globeIndex] != null) { GlobeInfo globeInfo = globeInfos[globeIndex]; post.UpdateCamInfo(globeInfo.camInfos); post.SetRayMethod((int)globeInfo.rayMethod); } else { Debug.LogError((object)"No custom globes found! Falling back to basic globe"); post.UpdateCamInfo(); } globeRender = globe.AddComponent(); } public void ClearGlobe() { if (Object.op_Implicit((Object)(object)globe)) { Object.Destroy((Object)(object)globe); } globe = null; for (int i = 0; i < cams.Length; i++) { cams[i] = null; } Camera hudCamera = MonoSingleton.Instance.hudCamera; hudCamera.cullingMask |= 0x2000; post.mainCam.targetTexture = MonoSingleton.Instance.mainTex; XboxGamePass.reinitTex = false; MonoSingleton.Instance.reinitializeTextures = true; MonoSingleton.Instance.SetupRTs(); PostProssesingBaby postProssesingBaby = default(PostProssesingBaby); if (((Component)MonoSingleton.Instance).gameObject.TryGetComponent(ref postProssesingBaby)) { Object.Destroy((Object)(object)postProssesingBaby); } } } internal class PluginInfo { public const string Name = "Eye of Providence"; public const string Version = "0.7.0"; public const string GUID = "ironfarm.uk.xbox369"; } public class PostProssesingBaby : MonoBehaviour { private enum CameraFace { Front, Back, Left, Right, Up, Down } public static float PlayerFOV = 360f; public static PostProssesingBaby instance; public static ProjectionMode Projection = ProjectionMode.Equirectangular; public static float Quality = 9f; public static Quaternion globeRotation = Quaternion.identity; public static bool Debug = false; public static bool Grid = false; public static float GridOpac = 0f; public static bool Map = false; public static float MapOpac = 0f; public static bool Stretch = true; public static bool VertFit = false; public static float GlobeRotX = 0f; public static float GlobeRotY = 0f; public static float GlobeRotZ = 0f; public static float FisheyeFit = 0f; public static float PaniniFactor = 1f; public static float WinkelFit = 0f; public static float WernerFactor = 0f; public static float WernerFit = 0f; public static float BonneShift = 0f; public static OrthoMode OrthoType; public static FisheyeMode FisheyeType; public Camera mainCam; private Shader postShader; public Material postEffectMaterial; public Camera[] cams; private List camTexs = new List(); public float fov = 360f; public float quality = 9f; private float prevQuality; public bool debugMode = false; public bool mapMode = false; public float mapOpac = 0.5f; public bool gridMode = false; public float gridOpac = 0.5f; public float globeRotX = 0f; public float globeRotY = 0f; public float globeRotZ = 0f; public bool stretch = true; public bool vertFit = false; public float fisheyeFit = 0f; public float paniniFactor = 1f; public float winkelFit = 0f; public float wernerFactor = 0f; public float wernerFit = 0f; public float bonneShift = 0f; public OrthoMode orthoMode = OrthoMode.Hemisphere; public FisheyeMode fisheyeMode = FisheyeMode.Equidistant; public int projectionMode = 0; private int qualityPixel = 1; public float aspect = 1f; public float prevAspect = 1f; private float width = 2f; private float height = 1f; private float prevWidth = 0f; private float prevHeight = 0f; private bool unconditionalUpdate = false; public FilterMode filterMode = (FilterMode)0; private void Start() { //IL_0019: 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) mainCam = ((Component)this).GetComponent(); mainCam.depthTextureMode = (DepthTextureMode)(mainCam.depthTextureMode | 2); UpdateValues(forceUpdate: true); UpdateGlobeRotations(); instance = this; RefreshRenderTextures(); } private void SetGlobeRotations(float yaw, float pitch, float roll) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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) globeRotation = Quaternion.Euler(roll * 180f, pitch * 180f, yaw * 180f); Matrix4x4 val = Matrix4x4.Rotate(globeRotation); Plugin.instance.UpdateGlobe(); postEffectMaterial.SetMatrix("_rotMatrix", val); postEffectMaterial.SetFloat("_GLOBE_ROTATE", 1f); } public void UpdateGlobeRotations() { SetGlobeRotations(globeRotZ, globeRotX, globeRotY); } private void Update() { UpdateValues(); } public void UpdateValues(bool forceUpdate = false) { unconditionalUpdate = forceUpdate; SetFOV(PlayerFOV); SetProjectionMode(Projection); SetStretch(Stretch); SetQuality(Quality); SetFisheyeMode(FisheyeType); SetOrthographicMode(OrthoType); SetVerticalFit(VertFit); SetFisheyeFit(FisheyeFit); SetPaniniFactor(PaniniFactor); SetWernerFactor(WernerFactor); SetWernerFit(WernerFit); SetBonneShift(BonneShift); SetGridEnable(Grid); SetGridOpac(GridOpac); SetMapEnable(Map); SetMapOpac(MapOpac); SetGlobeRot(GlobeRotX, GlobeRotY, GlobeRotZ); unconditionalUpdate = false; } public void UpdateCamInfo() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0038: 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_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: 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_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022a: 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_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) Vector3 val = default(Vector3); for (int i = 0; i < 6; i++) { if (!Object.op_Implicit((Object)(object)cams[i])) { ((Vector3)(ref val))..ctor(30000000f, 3000000f, 300000f); Vector3 val2 = val; Vector3 val3 = val; Vector3 val4 = val; List list = new List { Vector4.op_Implicit(val), Vector4.op_Implicit(val2), Vector4.op_Implicit(val3), Vector4.op_Implicit(val4) }; postEffectMaterial.SetVectorArray("_Cam" + (i + 1) + "_Info", list); continue; } Transform transform = ((Component)cams[i]).transform; Transform parent = ((Component)transform).transform.parent; float num = 1f; float num2 = 1f; float num3 = 1f; float num4 = 1f; float num5 = 2f; float num6 = 2f; if (!((Object)cams[i]).name.Contains("Up") && !((Object)cams[i]).name.Contains("Down")) { num = 1f / Mathf.Sqrt(3f); } num = 1f; if (((Object)cams[i]).name.Contains("Down") || ((Object)cams[i]).name.Contains("Up")) { } if (!((Object)cams[i]).name.Contains("Back")) { } float num7 = 1f / num4; float num8 = 1f / num3; num5 *= 1f / num8; num6 *= 1f / num7; num2 = num5 / num6; Vector3 val5 = parent.InverseTransformDirection(((Component)transform).transform.forward) * num; Vector3 val6 = parent.InverseTransformDirection(((Component)transform).transform.forward); Vector3 val7 = parent.InverseTransformDirection(((Component)transform).transform.up) * num7; Vector3 val8 = parent.InverseTransformDirection(((Component)transform).transform.right) * num8; float num9 = num2; float num10 = Mathf.Atan(num5 / 2f / Vector3.Distance(Vector3.zero, val5)) * 2f; cams[i].aspect = num9; cams[i].fieldOfView = Camera.VerticalToHorizontalFieldOfView(num10 * 57.29578f, 1f / cams[i].aspect); List list2 = new List { Vector4.op_Implicit(val5), Vector4.op_Implicit(val6), Vector4.op_Implicit(val7), Vector4.op_Implicit(val8) }; postEffectMaterial.SetVectorArray("_Cam" + (i + 1) + "_Info", list2); } } public void UpdateCamInfo(CamInfo[] infos) { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: 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_0057: 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) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_007d: 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) Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(1000000f, 1000000f, 1000000f); Vector2 val2 = default(Vector2); for (int i = 0; i < cams.Length; i++) { if (i >= infos.Length) { postEffectMaterial.SetVectorArray("_Cam" + (i + 1) + "_Info", new List { Vector4.op_Implicit(val), Vector4.op_Implicit(val), Vector4.op_Implicit(val), Vector4.op_Implicit(val) }); continue; } CamInfo camInfo = infos[i]; Vector2 scale = camInfo.scale; ((Vector2)(ref val2))..ctor(1f / scale.x, 1f / scale.y); Vector3 val3 = camInfo.camRot * Vector3.forward; Vector3 val4 = val3 * camInfo.posDist; Vector3 val5 = camInfo.camRot * Vector3.right * val2.x; Vector3 val6 = camInfo.camRot * Vector3.up * val2.y; float num = 2f; float num2 = 2f; num *= 1f / val2.x; num2 *= 1f / val2.y; float num3 = num / num2; float num4 = Mathf.Atan(num / 2f / Vector3.Distance(Vector3.zero, val4)) * 2f; ((Component)cams[i]).transform.localRotation = camInfo.camRot; cams[i].aspect = num3; cams[i].fieldOfView = Camera.VerticalToHorizontalFieldOfView(num4 * 57.29578f, 1f / num3); List list = new List { Vector4.op_Implicit(val4), Vector4.op_Implicit(val3), Vector4.op_Implicit(val6), Vector4.op_Implicit(val5) }; postEffectMaterial.SetVectorArray("_Cam" + (i + 1) + "_Info", list); } } public void SetRayMethod(int rayMethod) { postEffectMaterial.SetInt("_RAY_METHOD", rayMethod); } public void RefreshRenderTextures() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < cams.Length; i++) { if (Object.op_Implicit((Object)(object)cams[i])) { if ((Object)(object)cams[i].targetTexture != (Object)null) { cams[i].targetTexture.Release(); } RenderTexture val = new RenderTexture(qualityPixel, qualityPixel, 24); ((Texture)val).filterMode = filterMode; cams[i].targetTexture = val; } } } private void OnRenderImage(RenderTexture src, RenderTexture dest) { for (int i = 0; i < 6; i++) { if (Object.op_Implicit((Object)(object)cams[i])) { postEffectMaterial.SetTexture("_Cam" + (i + 1), (Texture)(object)cams[i].targetTexture); } } Graphics.Blit((Texture)(object)src, dest, postEffectMaterial); } private void SetFOV(float _fov) { if (fov != _fov || unconditionalUpdate) { fov = _fov; postEffectMaterial.SetFloat("_FOV", fov); } } private void SetProjectionMode(ProjectionMode _projectionMode) { if (projectionMode != (int)_projectionMode || unconditionalUpdate) { projectionMode = (int)_projectionMode; postEffectMaterial.SetFloat("_MODE", (float)projectionMode); width = Screen.width; height = Screen.height; prevWidth = width; prevHeight = height; RefreshRenderTextures(); } } private void SetAspect(float _aspect) { if (aspect != _aspect || unconditionalUpdate) { aspect = _aspect; postEffectMaterial.SetFloat("_ASPECT", aspect); } } private void SetStretch(bool _stretch) { if (stretch != _stretch || unconditionalUpdate) { stretch = _stretch; width = Screen.width; height = Screen.height; aspect = (stretch ? 1f : ((float)Screen.width / (float)Screen.height)); SetAspect(aspect); postEffectMaterial.SetFloat("_STRETCH", stretch ? 1f : 0f); prevWidth = width; prevHeight = height; } } private void SetQuality(float _quality) { if (quality != _quality || unconditionalUpdate) { quality = Mathf.Clamp(_quality, 0f, 10f); prevQuality = quality; qualityPixel = (int)Mathf.Pow(2f, quality); RefreshRenderTextures(); } } private void SetVerticalFit(bool _vertFit) { if (vertFit != _vertFit || unconditionalUpdate) { vertFit = _vertFit; postEffectMaterial.SetFloat("_VERT_FIT", (float)(vertFit ? 1 : 0)); } } private void SetFisheyeFit(float _fisheyeFit) { if (fisheyeFit != _fisheyeFit || unconditionalUpdate) { fisheyeFit = _fisheyeFit; postEffectMaterial.SetFloat("_FISHEYE_EQUIDIST_FIT", fisheyeFit); } } private void SetPaniniFactor(float _paniniFactor) { if (paniniFactor != _paniniFactor || unconditionalUpdate) { paniniFactor = _paniniFactor; postEffectMaterial.SetFloat("_PANINI_FACTOR", paniniFactor); } } private void SetWernerFactor(float _wernerFactor) { if (wernerFactor != _wernerFactor || unconditionalUpdate) { wernerFactor = _wernerFactor; postEffectMaterial.SetFloat("_WERNER_FACTOR", wernerFactor); } } private void SetWernerFit(float _wernerFit) { if (wernerFit != _wernerFit || unconditionalUpdate) { wernerFit = _wernerFit; postEffectMaterial.SetFloat("_WERNER_FIT", wernerFit); } } private void SetBonneShift(float _bonneShift) { if (bonneShift != _bonneShift || unconditionalUpdate) { bonneShift = _bonneShift; postEffectMaterial.SetFloat("_BONNE_SHIFT", bonneShift); } } private void SetFisheyeMode(FisheyeMode _fisheyeMode) { if (fisheyeMode != _fisheyeMode || unconditionalUpdate) { fisheyeMode = _fisheyeMode; postEffectMaterial.SetFloat("_FISHEYE_MODE", (float)fisheyeMode); } } private void SetOrthographicMode(OrthoMode _orthoMode) { if (orthoMode != _orthoMode || unconditionalUpdate) { orthoMode = _orthoMode; postEffectMaterial.SetFloat("_ORTHO_MODE", (float)orthoMode); } } private void SetGridEnable(bool _gridEnable) { if (gridMode != _gridEnable || unconditionalUpdate) { gridMode = _gridEnable; postEffectMaterial.SetFloat("_GRID", (float)(gridMode ? 1 : 0)); } } private void SetGridOpac(float _gridOpac) { if (gridOpac != _gridOpac || unconditionalUpdate) { gridOpac = _gridOpac; postEffectMaterial.SetFloat("_GRID_FACTOR", gridOpac); } } private void SetMapEnable(bool _mapEnable) { if (mapMode != _mapEnable || unconditionalUpdate) { mapMode = _mapEnable; postEffectMaterial.SetFloat("_MAP", (float)(mapMode ? 1 : 0)); } } private void SetMapOpac(float _mapOpac) { if (mapOpac != _mapOpac || unconditionalUpdate) { mapOpac = _mapOpac; postEffectMaterial.SetFloat("_MAP_FACTOR", mapOpac); } } private void SetGlobeRot(float _globeRotX, float _globeRotY, float _globeRotZ) { if (globeRotX != _globeRotX || unconditionalUpdate) { globeRotX = _globeRotX; } if (globeRotY != _globeRotY || unconditionalUpdate) { globeRotY = _globeRotY; } if (globeRotZ != _globeRotZ || unconditionalUpdate) { globeRotZ = _globeRotZ; } SetGlobeRotations(globeRotZ, globeRotX, globeRotY); } } public static class Utils { public const float TIMESTEP_BANDAGE = 60f; private static List descendants = new List(); private static int descendantDepth = 0; public static string ModDir() { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } public static string ModDataDir() { return Path.Combine(ModDir(), "Data"); } public static Vector3 RandPos(float x, float y, float z) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: 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) return new Vector3(Random.Range(0f - x, x), Random.Range(0f - y, y), Random.Range(0f - z, z)); } public static Vector3 RandPos(float x, float y) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) return new Vector3(Random.Range(0f - x, x), Random.Range(0f - y, y), 0f); } public static Vector3 Uniform(float num) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: 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) return new Vector3(num, num, num); } public static Vector3 Scale(float num) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: 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) return new Vector3(num, num, num); } public static float Sin01(float x) { return (Mathf.Sin(x) + 1f) * 0.5f; } public static float Normalize(float num, bool oneDefault = true) { if (num == 0f) { if (oneDefault) { return 1f; } return 0f; } return num / Mathf.Abs(num); } public static float DirToAngle(Vector3 dir) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) return Mathf.Atan2(dir.y, dir.x) * 57.29578f; } public static float UpDirToAngle(Vector3 dir) { //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_0010: 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_0016: 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_001e: Unknown result type (might be due to invalid IL or missing references) dir = Quaternion.AngleAxis(-90f, Vector3.forward) * dir; return Mathf.Atan2(dir.y, dir.x) * 57.29578f; } public static float AngleRelToDir(Vector3 dir, Vector3 relDir) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) dir = Quaternion.AngleAxis(0f - DirToAngle(relDir), Vector3.forward) * dir; return Mathf.Atan2(dir.y, dir.x) * 57.29578f; } public static float AngleRelToDir(Vector3 dir, float angle) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //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_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) dir = Quaternion.AngleAxis(angle, Vector3.forward) * dir; return Mathf.Atan2(dir.y, dir.x) * 57.29578f; } public static Vector3 AngleToDir(float angle) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: 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) return Quaternion.Euler(0f, 0f, 0f - angle) * Vector3.right; } public static Vector3 UpAngleToDir(float angle) { //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_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) return Quaternion.Euler(0f, 0f, angle) * Vector3.up; } public static void SetTimelineBinding(PlayableDirector pd, int index, Object obj) { ? val = pd; PlayableAsset playableAsset = pd.playableAsset; ((PlayableDirector)val).SetGenericBinding((Object)(object)((TimelineAsset)((playableAsset is TimelineAsset) ? playableAsset : null)).GetOutputTrack(index), obj); } public static string GetTransformPath(Transform transform) { List list = new List(); Transform val = transform; while ((Object)(object)val != (Object)null) { list.Add(((Object)val).name); val = val.parent; } string text = ""; for (int num = list.Count() - 1; num >= 0; num--) { text += list[num]; if (num != 0) { text += "/"; } } return text; } private static void GatherDescendants(this GameObject from) { for (int i = 0; i < from.transform.childCount; i++) { ((Component)from.transform.GetChild(i)).gameObject.GatherDescendants(); descendants.Add(((Component)from.transform.GetChild(i)).gameObject); } } public static List DescendantsList(this GameObject from) { if (descendants.Count > 0) { descendants.Clear(); } from.GatherDescendants(); return descendants; } public static GameObject DescendantByName(this GameObject from, string name) { if (from.transform.childCount > 0) { for (int i = 0; i < from.transform.childCount; i++) { GameObject gameObject = ((Component)from.transform.GetChild(i)).gameObject; if (((Object)gameObject).name == name) { return gameObject; } descendantDepth++; GameObject val = gameObject.DescendantByName(name); descendantDepth--; if ((Object)(object)val != (Object)null) { return val; } } } if (descendantDepth == 0) { Debug.Log((object)("No child with name " + name + " found in " + ((Object)from).name)); } return null; } }