using System; using System.Collections.Generic; using System.Runtime.InteropServices; using AGUI.StackedUI; using Cpp2IlInjected; using RecRoom; using RecRoom.Core.UI; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; using UnityEngine.UI; // Token: 0x02000590 RID: 1424 [Token(Token = "0x2000590")] [StructLayout(3)] public class CachedViewManager : MonoBehaviour { // Token: 0x170007A9 RID: 1961 // (get) Token: 0x06002A85 RID: 10885 RVA: 0x000B08E8 File Offset: 0x000AEAE8 [Token(Token = "0x170007A9")] private static Material MEABCDIFJPC { [Token(Token = "0x6002A85")] [Address(RVA = "0x1376140", Offset = "0x1374B40", VA = "0x181376140")] get { Material pdcimkkobod = CachedViewManager.PDCIMKKOBOD; int num = 0; if (pdcimkkobod == num) { CachedViewManager.PDCIMKKOBOD = Resources.Load(CachedViewManager.HJHDOIFODNO); } return CachedViewManager.PDCIMKKOBOD; } } // Token: 0x06002A86 RID: 10886 RVA: 0x000B091C File Offset: 0x000AEB1C [Token(Token = "0x6002A86")] [Address(RVA = "0x1375060", Offset = "0x1373A60", VA = "0x181375060")] public static CachedViewManager Get(string CKEBCMEKCJH) { Dictionary amlfllbokio = CachedViewManager.AMLFLLBOKIO; bool flag; if (!flag) { float activeRenderScale = UniversalRenderPipeline.ActiveRenderScale; if (KNMNINOPCAI.k__BackingField == NDGAFBPFAMI.UNSUPPORTED) { } CachedViewManager cachedViewManager = new GameObject(string.Format("CachedViewManager (\"{0}\")", CKEBCMEKCJH)).AddComponent(); cachedViewManager.CKEBCMEKCJH = CKEBCMEKCJH; RenderTexture renderTexture; renderTexture.name = "CachedViewManager_Shared"; renderTexture.filterMode = FilterMode.Bilinear; renderTexture.anisoLevel = 4; int num = 0; renderTexture.autoGenerateMips = num != 0; int num2 = 0; renderTexture.useMipMap = num2 != 0; uint num3; renderTexture.antiAliasing = (int)num3; cachedViewManager.KHEHLADAOMN = renderTexture; Material pdcimkkobod = CachedViewManager.PDCIMKKOBOD; int num4 = 0; if (pdcimkkobod == num4) { CachedViewManager.PDCIMKKOBOD = Resources.Load(CachedViewManager.HJHDOIFODNO); } Material material = new Material(CachedViewManager.PDCIMKKOBOD); cachedViewManager.KDNJGHJOJFK = material; Material kdnjghjojfk = cachedViewManager.KDNJGHJOJFK; RenderTexture khehladaomn = cachedViewManager.KHEHLADAOMN; kdnjghjojfk.mainTexture = khehladaomn; CachedViewManager.AMLFLLBOKIO.Add(CKEBCMEKCJH, cachedViewManager); GameObject ndcbgikgfna = CachedViewManager.NDCBGIKGFNA; int num5 = 0; if (ndcbgikgfna == num5) { CachedViewManager.NDCBGIKGFNA = new GameObject("CachedView Master Objects"); } Transform transform = cachedViewManager.transform; Transform transform2 = CachedViewManager.NDCBGIKGFNA.transform; transform.parentInternal = transform2; } throw new NullReferenceException(); } // Token: 0x170007AA RID: 1962 // (get) Token: 0x06002A87 RID: 10887 RVA: 0x000B0A54 File Offset: 0x000AEC54 [Token(Token = "0x170007AA")] public Canvas HICIBKCICMH { [Token(Token = "0x6002A87")] [Address(RVA = "0x3C1250", Offset = "0x3BFC50", VA = "0x1803C1250")] get { return this.ENFECKDMKEJ; } } // Token: 0x170007AB RID: 1963 // (get) Token: 0x06002A88 RID: 10888 RVA: 0x000B0A68 File Offset: 0x000AEC68 [Token(Token = "0x170007AB")] public ImposterGraphicRaycaster DHCGLGBDCHO { [Token(Token = "0x6002A88")] [Address(RVA = "0x3EE8E0", Offset = "0x3ED2E0", VA = "0x1803EE8E0")] get { return this.HBFAAIIJMAK; } } // Token: 0x170007AC RID: 1964 // (get) Token: 0x06002A89 RID: 10889 RVA: 0x000B0A7C File Offset: 0x000AEC7C [Token(Token = "0x170007AC")] public Camera CEJINGNOIIG { [Token(Token = "0x6002A89")] [Address(RVA = "0x3D32F0", Offset = "0x3D1CF0", VA = "0x1803D32F0")] get { return this.PLMJOEINOJL; } } // Token: 0x06002A8A RID: 10890 RVA: 0x000B0A90 File Offset: 0x000AEC90 [Token(Token = "0x6002A8A")] [Address(RVA = "0x1376040", Offset = "0x1374A40", VA = "0x181376040")] private void OnDestroy() { RenderTexture khehladaomn = this.KHEHLADAOMN; int num = 0; if (khehladaomn != num) { this.KHEHLADAOMN.Release(); global::UnityEngine.Object.DestroyImmediate(this.KHEHLADAOMN); this.KHEHLADAOMN = (ulong)0L; } Dictionary amlfllbokio = CachedViewManager.AMLFLLBOKIO; string ckebcmekcjh = this.CKEBCMEKCJH; bool flag = amlfllbokio.Remove(ckebcmekcjh); } // Token: 0x06002A8B RID: 10891 RVA: 0x000B0AEC File Offset: 0x000AECEC [Token(Token = "0x6002A8B")] [Address(RVA = "0x1374FF0", Offset = "0x13739F0", VA = "0x181374FF0")] public void AddView(CachedView DNGNGFFGPNL) { GameObject gameObject = this.OKMCCPLCPFD(DNGNGFFGPNL); this.EFFBCAONHNB.Add(gameObject); } // Token: 0x06002A8C RID: 10892 RVA: 0x000B0B14 File Offset: 0x000AED14 [Token(Token = "0x6002A8C")] [Address(RVA = "0x1376250", Offset = "0x1374C50", VA = "0x181376250")] public void RemoveImposter(GameObject LLEMJAJMBOI) { bool flag = this.EFFBCAONHNB.Remove(LLEMJAJMBOI); } // Token: 0x06002A8D RID: 10893 RVA: 0x000B0B34 File Offset: 0x000AED34 [Token(Token = "0x6002A8D")] [Address(RVA = "0x10235D0", Offset = "0x1021FD0", VA = "0x1810235D0")] public void MarkForRender() { this.COAGIBJBOID = true; } // Token: 0x06002A8E RID: 10894 RVA: 0x000B0B48 File Offset: 0x000AED48 [Token(Token = "0x6002A8E")] [Address(RVA = "0x13762B0", Offset = "0x1374CB0", VA = "0x1813762B0")] public void Update() { Camera plmjoeinojl; for (;;) { plmjoeinojl = this.PLMJOEINOJL; int num = 0; bool flag = plmjoeinojl == num; if (flag) { return; } if (this.COAGIBJBOID != flag) { break; } int num2 = 0; plmjoeinojl.enabled = num2 != 0; if (Time.timeSinceLevelLoad > 5f) { return; } } float timeSinceLevelLoad = Time.timeSinceLevelLoad; GameObject fbdcenmhmga = this.FBDCENMHMGA; this.DFKBCGIJNOA = timeSinceLevelLoad; fbdcenmhmga.SetActive(true); Dictionary.ValueCollection values = CachedViewManager.AMLFLLBOKIO.Values; int frameCount = Time.frameCount; int count = values.Count; CachedViewManager cachedViewManager; bool flag2 = cachedViewManager != this; Camera plmjoeinojl2 = this.PLMJOEINOJL; if (flag2) { int num3 = 0; plmjoeinojl.enabled = num3 != 0; return; } float aspect = plmjoeinojl2.aspect; if (plmjoeinojl2 == 0) { Camera plmjoeinojl3 = this.PLMJOEINOJL; float orthographicSize = plmjoeinojl3.orthographicSize; if (plmjoeinojl3 == 0) { goto IL_D5; } } Camera plmjoeinojl4 = this.PLMJOEINOJL; float iimbiodngjn = this.IIMBIODNGJN; plmjoeinojl4.aspect = iimbiodngjn; Camera plmjoeinojl5 = this.PLMJOEINOJL; float gobhbedfcml = this.GOBHBEDFCML; plmjoeinojl5.orthographicSize = gobhbedfcml; IL_D5: this.PLMJOEINOJL.enabled = true; this.COAGIBJBOID = false; } // Token: 0x06002A8F RID: 10895 RVA: 0x000B0C70 File Offset: 0x000AEE70 [Token(Token = "0x6002A8F")] [Address(RVA = "0x1375550", Offset = "0x1373F50", VA = "0x181375550")] private GameObject OKMCCPLCPFD(CachedView DNGNGFFGPNL) { GameObject gameObject; MeshFilter meshFilter; Vector3[] array; for (;;) { Transform parent = DNGNGFFGPNL.transform.parent; string ckebcmekcjh = this.CKEBCMEKCJH; gameObject = new GameObject(string.Format("CachedView Imposter ({0})", ckebcmekcjh)); gameObject.NHCPFEKJPIA(DAJFOCGPHGP.UI); Transform transform = DNGNGFFGPNL.transform; Transform transform2 = base.transform; int num = 0; transform.SetParent(transform2, num != 0); Transform transform3 = gameObject.transform; int num2 = 0; transform3.SetParent(parent, num2 != 0); Canvas canvas = gameObject.AddComponent(); CanvasScaler canvasScaler = gameObject.AddComponent(); Material material = gameObject.AddComponent().material; gameObject.AddComponent().ImposterViewManager = this; Transform transform4 = gameObject.transform; Transform transform5 = DNGNGFFGPNL.transform; Transform transform6 = gameObject.transform; Transform transform7 = DNGNGFFGPNL.transform; Transform transform8 = gameObject.transform; Transform transform9 = DNGNGFFGPNL.transform; Transform transform10 = gameObject.transform; if (DNGNGFFGPNL.transform != 0 && transform10 != 0) { CachedViewImposterCollider cachedViewImposterCollider = gameObject.AddComponent(); meshFilter = gameObject.AddComponent(); array = new Vector3[4]; Transform transform11 = canvas.transform; if (transform11 != 0) { break; } } } meshFilter.mesh = new Mesh { name = "CachedViewManager_VisibilityQuad", vertices = array }; MeshRenderer meshRenderer = gameObject.AddComponent(); int num3 = 0; meshRenderer.lightProbeUsage = (LightProbeUsage)num3; int num4 = 0; meshRenderer.reflectionProbeUsage = (ReflectionProbeUsage)num4; int num5 = 0; meshRenderer.shadowCastingMode = (ShadowCastingMode)num5; meshRenderer.motionVectorGenerationMode = MotionVectorGenerationMode.ForceNoMotion; int num6 = 0; meshRenderer.receiveShadows = num6 != 0; Canvas enfeckdmkej = this.ENFECKDMKEJ; int num7 = 0; bool flag = enfeckdmkej == num7; GameObject gameObject2 = DNGNGFFGPNL.gameObject; if (!flag) { global::UnityEngine.Object.Destroy(gameObject2); } this.FBDCENMHMGA = gameObject2; global::UnityEngine.Object.Destroy(DNGNGFFGPNL); Canvas component = this.FBDCENMHMGA.GetComponent(); this.ENFECKDMKEJ = component; Camera worldCamera = component.worldCamera; int num8 = 0; if (worldCamera == num8) { UIInputModule instance = UIInputModule.Instance; Canvas enfeckdmkej2 = this.ENFECKDMKEJ; Camera k__BackingField = instance.k__BackingField; enfeckdmkej2.worldCamera = k__BackingField; } BaseRaycaster component2 = this.FBDCENMHMGA.gameObject.GetComponent(); int num9 = 0; if (component2 != num9) { global::UnityEngine.Object.Destroy(component2); } ImposterGraphicRaycaster imposterGraphicRaycaster = this.FBDCENMHMGA.AddComponent(); this.HBFAAIIJMAK = imposterGraphicRaycaster; imposterGraphicRaycaster.ignoresAllInput = true; this.FBDCENMHMGA.IBAICLIPHDI(DAJFOCGPHGP.UI, DAJFOCGPHGP.CachedView); Canvas enfeckdmkej3 = this.ENFECKDMKEJ; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; GameObject fbdcenmhmga = this.FBDCENMHMGA; int num10 = 0; fbdcenmhmga.transform.position = num10; Transform transform12 = this.FBDCENMHMGA.transform; int num11 = 0; Quaternion identity = Quaternion.identity; transform12.rotation = num11; string ckebcmekcjh2 = this.CKEBCMEKCJH; GameObject gameObject3 = new GameObject(string.Format("CachedView Camera ({0})", ckebcmekcjh2)); this.EFACHFECFCP = gameObject3; Transform transform13 = gameObject3.transform; Transform transform14 = this.FBDCENMHMGA.transform; int num12 = 0; transform13.SetParent(transform14, num12 != 0); Camera camera = this.EFACHFECFCP.AddComponent(); this.PLMJOEINOJL = camera; camera.clearFlags = CameraClearFlags.Color; Camera plmjoeinojl = this.PLMJOEINOJL; this.PLMJOEINOJL.cullingMask = int.MinValue; this.PLMJOEINOJL.renderingPath = RenderingPath.Forward; Camera plmjoeinojl2 = this.PLMJOEINOJL; int num13 = 0; plmjoeinojl2.useOcclusionCulling = num13 != 0; Camera plmjoeinojl3 = this.PLMJOEINOJL; int num14 = 0; plmjoeinojl3.allowHDR = num14 != 0; Camera plmjoeinojl4 = this.PLMJOEINOJL; int num15 = 0; plmjoeinojl4.allowMSAA = num15 != 0; Camera plmjoeinojl5 = this.PLMJOEINOJL; int num16 = 0; plmjoeinojl5.stereoTargetEye = (StereoTargetEyeMask)num16; Camera plmjoeinojl6 = this.PLMJOEINOJL; RenderTexture khehladaomn = this.KHEHLADAOMN; plmjoeinojl6.targetTexture = khehladaomn; this.PLMJOEINOJL.orthographic = true; this.PLMJOEINOJL.GetOrCreateAdditionalCameraData().k__BackingField = true; Canvas enfeckdmkej4 = this.ENFECKDMKEJ; KIFFHLOFBHD.LJANPOGDMDI(this.PLMJOEINOJL, enfeckdmkej4); float orthographicSize = this.PLMJOEINOJL.orthographicSize; Camera plmjoeinojl7 = this.PLMJOEINOJL; this.GOBHBEDFCML = orthographicSize; float aspect = plmjoeinojl7.aspect; this.IIMBIODNGJN = aspect; return gameObject; } // Token: 0x06002A90 RID: 10896 RVA: 0x000B1070 File Offset: 0x000AF270 [Token(Token = "0x6002A90")] [Address(RVA = "0x13765E0", Offset = "0x1374FE0", VA = "0x1813765E0")] public CachedViewManager() { List list = new List(); this.EFFBCAONHNB = list; base..ctor(); } // Token: 0x06002A91 RID: 10897 RVA: 0x000B1090 File Offset: 0x000AF290 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x6002A91")] [Address(RVA = "0x1376510", Offset = "0x1374F10", VA = "0x181376510")] static CachedViewManager() { float z = Vector3.zero.z; } // Token: 0x040023AA RID: 9130 [Token(Token = "0x40023AA")] private static readonly string HJHDOIFODNO = "legacy_CachedView_mat"; // Token: 0x040023AB RID: 9131 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40023AB")] private string CKEBCMEKCJH; // Token: 0x040023AC RID: 9132 [Token(Token = "0x40023AC")] private static Material PDCIMKKOBOD; // Token: 0x040023AD RID: 9133 [Token(Token = "0x40023AD")] private static Dictionary AMLFLLBOKIO = new Dictionary(); // Token: 0x040023AE RID: 9134 [Token(Token = "0x40023AE")] private static Vector3 AAOKNPNNOJM; // Token: 0x040023AF RID: 9135 [Token(Token = "0x40023AF")] private static GameObject NDCBGIKGFNA; // Token: 0x040023B0 RID: 9136 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40023B0")] private GameObject EFACHFECFCP; // Token: 0x040023B1 RID: 9137 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40023B1")] private GameObject FBDCENMHMGA; // Token: 0x040023B2 RID: 9138 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40023B2")] private Canvas ENFECKDMKEJ; // Token: 0x040023B3 RID: 9139 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40023B3")] private ImposterGraphicRaycaster HBFAAIIJMAK; // Token: 0x040023B4 RID: 9140 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x40023B4")] private Camera PLMJOEINOJL; // Token: 0x040023B5 RID: 9141 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x40023B5")] public bool SupportsAutoDisable; // Token: 0x040023B6 RID: 9142 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x40023B6")] private List EFFBCAONHNB; // Token: 0x040023B7 RID: 9143 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x40023B7")] private RenderTexture KHEHLADAOMN; // Token: 0x040023B8 RID: 9144 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x40023B8")] private Material KDNJGHJOJFK; // Token: 0x040023B9 RID: 9145 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x40023B9")] private bool COAGIBJBOID; // Token: 0x040023BA RID: 9146 [global::Cpp2IlInjected.FieldOffset(Offset = "0x6C")] [Token(Token = "0x40023BA")] private float DFKBCGIJNOA; // Token: 0x040023BB RID: 9147 [Token(Token = "0x40023BB")] private const float PBAHCKBOIHK = 5f; // Token: 0x040023BC RID: 9148 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x40023BC")] private float IIMBIODNGJN; // Token: 0x040023BD RID: 9149 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x40023BD")] private float GOBHBEDFCML; }