// Token: 0x06000D6F RID: 3439 RVA: 0x0003C4CB File Offset: 0x0003A6CB private IEnumerator HighlightNewItem(ItemIndex itemIndex) { yield return(new WaitForSeconds(0.05f)); CharacterMaster component = base.GetComponent <CharacterMaster>(); if (component) { GameObject bodyObject = component.GetBodyObject(); if (bodyObject) { ModelLocator component2 = bodyObject.GetComponent <ModelLocator>(); if (component2) { Transform modelTransform = component2.modelTransform; if (modelTransform) { CharacterModel component3 = modelTransform.GetComponent <CharacterModel>(); if (component3) { component3.HighlightItemDisplay(itemIndex); } } } } } yield break; }
// Token: 0x06000EBE RID: 3774 RVA: 0x000489C0 File Offset: 0x00046BC0 public void SimpleMuzzleFlash(GameObject effectPrefab, GameObject obj, string muzzleName, bool transmit) { if (!obj) { return; } ModelLocator component = obj.GetComponent <ModelLocator>(); if (component && component.modelTransform) { ChildLocator component2 = component.modelTransform.GetComponent <ChildLocator>(); if (component2) { int childIndex = component2.FindChildIndex(muzzleName); Transform transform = component2.FindChild(childIndex); if (transform) { EffectData effectData = new EffectData { origin = transform.position }; effectData.SetChildLocatorTransformReference(obj, childIndex); EffectManager.instance.SpawnEffect(effectPrefab, effectData, transmit); } } } }
// Token: 0x060015D7 RID: 5591 RVA: 0x0005D1FC File Offset: 0x0005B3FC private Transform FindAttachmentTransform() { this.projectileGhostController = base.GetComponent <ProjectileGhostController>(); if (this.projectileGhostController) { Transform authorityTransform = this.projectileGhostController.authorityTransform; if (authorityTransform) { ProjectileController component = authorityTransform.GetComponent <ProjectileController>(); if (component) { GameObject owner = component.owner; if (owner) { ModelLocator component2 = owner.GetComponent <ModelLocator>(); if (component2) { Transform modelTransform = component2.modelTransform; if (modelTransform) { ChildLocator component3 = modelTransform.GetComponent <ChildLocator>(); if (component3) { return(component3.FindChild(this.attachmentString)); } } } } } } } return(null); }
// Token: 0x06000A12 RID: 2578 RVA: 0x000322FF File Offset: 0x000304FF private static IEnumerator GeneratePortraits() { ModelPanel modelPanel = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/UI/IconGenerator")).GetComponentInChildren <ModelPanel>(); yield return(new WaitForEndOfFrame()); int num; for (int i = 0; i < BodyCatalog.bodyPrefabs.Length; i = num) { if (BodyCatalog.bodyPrefabBodyComponents[i] && (!BodyCatalog.bodyPrefabBodyComponents[i].portraitIcon || BodyCatalog.bodyPrefabBodyComponents[i].portraitIcon.name == "texDifficultyNormalIcon")) { try { Debug.LogFormat("Generating portrait for {0}", new object[] { BodyCatalog.bodyPrefabs[i].name }); ModelPanel modelPanel2 = modelPanel; ModelLocator component = BodyCatalog.bodyPrefabs[i].GetComponent <ModelLocator>(); modelPanel2.modelPrefab = ((component != null) ? component.modelTransform.gameObject : null); modelPanel.SetAnglesForCharacterThumbnail(true); } catch (Exception message) { Debug.Log(message); } yield return(new WaitForSeconds(1f)); modelPanel.SetAnglesForCharacterThumbnail(true); yield return(new WaitForEndOfFrame()); yield return(new WaitForEndOfFrame()); try { Texture2D texture2D = new Texture2D(modelPanel.renderTexture.width, modelPanel.renderTexture.height, TextureFormat.ARGB32, false, false); RenderTexture active = RenderTexture.active; RenderTexture.active = modelPanel.renderTexture; texture2D.ReadPixels(new Rect(0f, 0f, (float)modelPanel.renderTexture.width, (float)modelPanel.renderTexture.height), 0, 0, false); RenderTexture.active = active; byte[] array = texture2D.EncodeToPNG(); using (FileStream fileStream = new FileStream("Assets/RoR2/GeneratedPortraits/" + BodyCatalog.bodyPrefabs[i].name + ".png", FileMode.Create, FileAccess.Write)) { fileStream.Write(array, 0, array.Length); } } catch (Exception message2) { Debug.Log(message2); } yield return(new WaitForEndOfFrame()); } num = i + 1; } UnityEngine.Object.Destroy(modelPanel.transform.root.gameObject); yield break; }
// Token: 0x060003EF RID: 1007 RVA: 0x0000F7B4 File Offset: 0x0000D9B4 private static void SetBodyPrefabs([NotNull] GameObject[] newBodyPrefabs) { BodyCatalog.bodyPrefabs = HGArrayUtilities.Clone <GameObject>(newBodyPrefabs); BodyCatalog.bodyPrefabBodyComponents = new CharacterBody[BodyCatalog.bodyPrefabs.Length]; BodyCatalog.bodyNames = new string[BodyCatalog.bodyPrefabs.Length]; BodyCatalog.bodyComponents = new Component[BodyCatalog.bodyPrefabs.Length][]; BodyCatalog.skillSlots = new GenericSkill[BodyCatalog.bodyPrefabs.Length][]; BodyCatalog.skins = new SkinDef[BodyCatalog.bodyPrefabs.Length][]; BodyCatalog.nameToIndexMap.Clear(); for (int i = 0; i < BodyCatalog.bodyPrefabs.Length; i++) { GameObject gameObject = BodyCatalog.bodyPrefabs[i]; string name = gameObject.name; BodyCatalog.bodyNames[i] = name; BodyCatalog.bodyComponents[i] = gameObject.GetComponents <Component>(); BodyCatalog.skillSlots[i] = gameObject.GetComponents <GenericSkill>(); BodyCatalog.nameToIndexMap.Add(name, i); BodyCatalog.nameToIndexMap.Add(name + "(Clone)", i); (BodyCatalog.bodyPrefabBodyComponents[i] = gameObject.GetComponent <CharacterBody>()).bodyIndex = i; Texture2D texture2D = Resources.Load <Texture2D>("Textures/BodyIcons/" + name); SkinDef[][] array = BodyCatalog.skins; int num = i; ModelLocator component = gameObject.GetComponent <ModelLocator>(); SkinDef[] array2; if (component == null) { array2 = null; } else { Transform modelTransform = component.modelTransform; if (modelTransform == null) { array2 = null; } else { ModelSkinController component2 = modelTransform.GetComponent <ModelSkinController>(); array2 = ((component2 != null) ? component2.skins : null); } } array[num] = (array2 ?? Array.Empty <SkinDef>()); if (texture2D) { BodyCatalog.bodyPrefabBodyComponents[i].portraitIcon = texture2D; } else if (BodyCatalog.bodyPrefabBodyComponents[i].portraitIcon == null) { BodyCatalog.bodyPrefabBodyComponents[i].portraitIcon = Resources.Load <Texture2D>("Textures/MiscIcons/texMysteryIcon"); } if (Language.IsTokenInvalid(BodyCatalog.bodyPrefabBodyComponents[i].baseNameToken)) { BodyCatalog.bodyPrefabBodyComponents[i].baseNameToken = "UNIDENTIFIED"; } } BodyCatalog.bodyCount = BodyCatalog.bodyPrefabs.Length; }
// Token: 0x06000CC3 RID: 3267 RVA: 0x0003F598 File Offset: 0x0003D798 private void Start() { this.UpdateAuthority(); ModelLocator component = base.GetComponent <ModelLocator>(); if (component) { this.modelAnimator = component.modelTransform.GetComponent <Animator>(); } }
// Token: 0x06000EE1 RID: 3809 RVA: 0x000420A4 File Offset: 0x000402A4 private static ChildLocator LookUpChildLocator(Transform rootObject) { ModelLocator component = rootObject.GetComponent <ModelLocator>(); if (!component) { return(null); } Transform modelTransform = component.modelTransform; if (!modelTransform) { return(null); } return(modelTransform.GetComponent <ChildLocator>()); }
// Token: 0x06001630 RID: 5680 RVA: 0x0006A479 File Offset: 0x00068679 private void Awake() { ModelLocator component = base.GetComponent <ModelLocator>(); HurtBoxGroup hurtBoxGroup; if (component == null) { hurtBoxGroup = null; } else { Transform modelTransform = component.modelTransform; hurtBoxGroup = ((modelTransform != null) ? modelTransform.GetComponent <HurtBoxGroup>() : null); } this.hurtBoxGroup = hurtBoxGroup; }
// Token: 0x0600042E RID: 1070 RVA: 0x000111E4 File Offset: 0x0000F3E4 public void Fire() { Vector3[] array = new Vector3[this.bulletCount]; Vector3 up = Vector3.up; Vector3 axis = Vector3.Cross(up, this.aimVector); int num = 0; while ((long)num < (long)((ulong)this.bulletCount)) { float x = UnityEngine.Random.Range(this.minSpread, this.maxSpread); float z = UnityEngine.Random.Range(0f, 360f); Vector3 vector = Quaternion.Euler(0f, 0f, z) * (Quaternion.Euler(x, 0f, 0f) * Vector3.forward); float y = vector.y; vector.y = 0f; float angle = (Mathf.Atan2(vector.z, vector.x) * 57.29578f - 90f) * this.spreadYawScale; float angle2 = Mathf.Atan2(y, vector.magnitude) * 57.29578f * this.spreadPitchScale; array[num] = Quaternion.AngleAxis(angle, up) * (Quaternion.AngleAxis(angle2, axis) * this.aimVector); num++; } int muzzleIndex = -1; Vector3 vector2 = this.origin; if (!this.weapon) { this.weapon = this.owner; } if (this.weapon) { ModelLocator component = this.weapon.GetComponent <ModelLocator>(); if (component && component.modelTransform) { ChildLocator component2 = component.modelTransform.GetComponent <ChildLocator>(); if (component2) { muzzleIndex = component2.FindChildIndex(this.muzzleName); } } } int num2 = 0; while ((long)num2 < (long)((ulong)this.bulletCount)) { this.FireSingle(array[num2], muzzleIndex); num2++; } }
// Token: 0x06000CD8 RID: 3288 RVA: 0x00039A5C File Offset: 0x00037C5C public GameObject ResolveGameObject() { if (this.hurtBoxIndexPlusOne == 0) { return(this.rootObject); } GameObject gameObject = this.rootObject; HurtBox[] array; if (gameObject == null) { array = null; } else { ModelLocator component = gameObject.GetComponent <ModelLocator>(); if (component == null) { array = null; } else { Transform modelTransform = component.modelTransform; if (modelTransform == null) { array = null; } else { HurtBoxGroup component2 = modelTransform.GetComponent <HurtBoxGroup>(); array = ((component2 != null) ? component2.hurtBoxes : null); } } } HurtBox[] array2 = array; if (array2 != null) { int num = (int)(this.hurtBoxIndexPlusOne - 1); if (num < array2.Length) { return(array2[num].gameObject); } } return(null); }
// Token: 0x060010DC RID: 4316 RVA: 0x00049D8C File Offset: 0x00047F8C private void Start() { this.characterDirection = base.GetComponent <CharacterDirection>(); this.inputBank = base.GetComponent <InputBankTest>(); this.characterBody = base.GetComponent <CharacterBody>(); this.railGraph = SceneInfo.instance.railNodes; ModelLocator component = base.GetComponent <ModelLocator>(); if (component) { this.modelAnimator = component.modelTransform.GetComponent <Animator>(); } this.nodeA = this.railGraph.FindClosestNode(base.transform.position, this.characterBody.hullClassification); NodeGraph.LinkIndex[] activeNodeLinks = this.railGraph.GetActiveNodeLinks(this.nodeA); this.currentLink = activeNodeLinks[0]; this.UpdateNodeAndLinkInfo(); this.useRootMotion = this.characterBody.rootMotionInMainState; }
// Token: 0x06000AD6 RID: 2774 RVA: 0x000357B8 File Offset: 0x000339B8 public Transform ResolveChildLocatorTransformReference() { if (this.rootObject) { if (this.modelChildIndex == -1) { return(this.rootObject.transform); } ModelLocator component = this.rootObject.GetComponent <ModelLocator>(); if (component && component.modelTransform) { ChildLocator component2 = component.modelTransform.GetComponent <ChildLocator>(); if (component2) { return(component2.FindChild((int)this.modelChildIndex)); } } } return(null); }
// Token: 0x060007F7 RID: 2039 RVA: 0x00022934 File Offset: 0x00020B34 public void OnDeath() { if (Util.HasEffectiveAuthority(base.gameObject)) { if (this.deathStateMachine) { this.deathStateMachine.SetNextState(EntityState.Instantiate(this.deathState)); } EntityStateMachine[] array = this.idleStateMachine; for (int i = 0; i < array.Length; i++) { array[i].SetNextState(new Idle()); } } base.gameObject.layer = LayerIndex.debris.intVal; CharacterMotor component = base.GetComponent <CharacterMotor>(); if (component) { component.Motor.RebuildCollidableLayers(); } ILifeBehavior[] components = base.GetComponents <ILifeBehavior>(); for (int i = 0; i < components.Length; i++) { components[i].OnDeathStart(); } ModelLocator component2 = base.GetComponent <ModelLocator>(); if (component2) { Transform modelTransform = component2.modelTransform; if (modelTransform) { components = modelTransform.GetComponents <ILifeBehavior>(); for (int i = 0; i < components.Length; i++) { components[i].OnDeathStart(); } } } }
public CharacterMaster OpenSummonReturnMaster(Interactor activator) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'RoR2.CharacterMaster RoR2.SummonMasterBehavior::OpenSummonReturnMaster(RoR2.Interactor)' called on client"); return(null); } float d = 0f; CharacterMaster characterMaster = new MasterSummon { masterPrefab = this.masterPrefab, position = base.transform.position + Vector3.up * d, rotation = base.transform.rotation, summonerBodyObject = ((activator != null) ? activator.gameObject : null), ignoreTeamMemberLimit = true }.Perform(); if (characterMaster) { GameObject bodyObject = characterMaster.GetBodyObject(); if (bodyObject) { ModelLocator component = bodyObject.GetComponent <ModelLocator>(); if (component && component.modelTransform) { TemporaryOverlay temporaryOverlay = component.modelTransform.gameObject.AddComponent <TemporaryOverlay>(); temporaryOverlay.duration = 0.5f; temporaryOverlay.animateShaderAlpha = true; temporaryOverlay.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); temporaryOverlay.destroyComponentOnEnd = true; temporaryOverlay.originalMaterial = Resources.Load <Material>("Materials/matSummonDrone"); temporaryOverlay.AddToCharacerModel(component.modelTransform.GetComponent <CharacterModel>()); } } } if (this.destroyAfterSummoning) { UnityEngine.Object.Destroy(base.gameObject); } return(characterMaster); }
// Token: 0x060016AB RID: 5803 RVA: 0x0006C140 File Offset: 0x0006A340 public override void OnStartClient() { base.OnStartClient(); if (this.target) { ModelLocator component = this.target.GetComponent <ModelLocator>(); if (component) { Transform modelTransform = component.modelTransform; if (modelTransform) { CharacterModel component2 = modelTransform.GetComponent <CharacterModel>(); if (component2) { TeleportOutController.AddTPOutEffect(component2, 0f, 1f, 2f); if (component2.rendererInfos.Length != 0) { Renderer renderer = component2.rendererInfos[component2.rendererInfos.Length - 1].renderer; if (renderer) { ParticleSystem.ShapeModule shape = this.bodyGlowParticles.shape; if (renderer is MeshRenderer) { shape.shapeType = ParticleSystemShapeType.MeshRenderer; shape.meshRenderer = (renderer as MeshRenderer); } else if (renderer is SkinnedMeshRenderer) { shape.shapeType = ParticleSystemShapeType.SkinnedMeshRenderer; shape.skinnedMeshRenderer = (renderer as SkinnedMeshRenderer); } } } } } } } this.bodyGlowParticles.Play(); Util.PlaySound(TeleportOutController.tpOutSoundString, base.gameObject); }
// Token: 0x06001155 RID: 4437 RVA: 0x0005635C File Offset: 0x0005455C private Transform FindWings() { ModelLocator component = this.targetObject.GetComponent <ModelLocator>(); if (component) { Transform modelTransform = component.modelTransform; if (modelTransform) { CharacterModel component2 = modelTransform.GetComponent <CharacterModel>(); if (component2) { List <GameObject> equipmentDisplayObjects = component2.GetEquipmentDisplayObjects(EquipmentIndex.Jetpack); if (equipmentDisplayObjects.Count > 0) { return(equipmentDisplayObjects[0].transform); } } } } return(null); }
// Token: 0x06000A94 RID: 2708 RVA: 0x0002E1BC File Offset: 0x0002C3BC public Transform FindActiveEquipmentDisplay() { ModelLocator component = base.GetComponent <ModelLocator>(); if (component) { Transform modelTransform = component.modelTransform; if (modelTransform) { CharacterModel component2 = modelTransform.GetComponent <CharacterModel>(); if (component2) { List <GameObject> equipmentDisplayObjects = component2.GetEquipmentDisplayObjects(this.equipmentIndex); if (equipmentDisplayObjects.Count > 0) { return(equipmentDisplayObjects[0].transform); } } } } return(null); }
// Token: 0x06000AD4 RID: 2772 RVA: 0x00035740 File Offset: 0x00033940 public GameObject ResolveHurtBoxReference() { if (this.modelChildIndex == -1) { return(this.rootObject); } GameObject gameObject = this.rootObject; if (gameObject == null) { return(null); } ModelLocator component = gameObject.GetComponent <ModelLocator>(); if (component == null) { return(null); } Transform modelTransform = component.modelTransform; if (modelTransform == null) { return(null); } HurtBoxGroup component2 = modelTransform.GetComponent <HurtBoxGroup>(); if (component2 == null) { return(null); } HurtBox hurtBox = component2.hurtBoxes.ElementAtOrDefault((int)this.modelChildIndex); if (hurtBox == null) { return(null); } return(hurtBox.gameObject); }
// Token: 0x060014D8 RID: 5336 RVA: 0x00058D2C File Offset: 0x00056F2C public void SetOwner(GameObject newOwner) { this.ownerInputBank = null; this.ownerCharacterBody = null; this.isCrit = false; this.Networkowner = newOwner; if (this.owner) { this.ownerInputBank = this.owner.GetComponent <InputBankTest>(); this.ownerCharacterBody = this.owner.GetComponent <CharacterBody>(); ModelLocator component = this.owner.GetComponent <ModelLocator>(); if (component) { Transform modelTransform = component.modelTransform; if (modelTransform) { ChildLocator component2 = modelTransform.GetComponent <ChildLocator>(); if (component2) { this.targetTransform = component2.FindChild("Chest"); if (this.targetTransform) { base.transform.rotation = this.targetTransform.rotation; } } } } base.transform.position = this.owner.transform.position + Vector3.down * 20f; if (NetworkServer.active && this.ownerCharacterBody) { CharacterMaster master = this.ownerCharacterBody.master; if (master) { this.isCrit = Util.CheckRoll(this.ownerCharacterBody.crit, master); } } } }
// Token: 0x06000A4B RID: 2635 RVA: 0x0002CD80 File Offset: 0x0002AF80 private void FixedUpdate() { GameObject victimObject = this.victimObject; if (!victimObject) { if (NetworkServer.active) { UnityEngine.Object.Destroy(base.gameObject); } return; } if (NetworkServer.active) { for (DotController.DotIndex dotIndex = DotController.DotIndex.Bleed; dotIndex < DotController.DotIndex.Count; dotIndex++) { DotController.DotDef dotDef = this.GetDotDef(dotIndex); float num = this.dotTimers[(int)dotIndex] - Time.fixedDeltaTime; if (num <= 0f) { num += dotDef.interval; int num2 = 0; this.EvaluateDotStacksForType(dotIndex, dotDef.interval, out num2); byte b = (byte)(1 << (int)dotIndex); this.NetworkactiveDotFlags = (this.activeDotFlags & ~b); if (num2 != 0) { this.NetworkactiveDotFlags = (this.activeDotFlags | b); } } this.dotTimers[(int)dotIndex] = num; } if (this.dotStackList.Count == 0) { UnityEngine.Object.Destroy(base.gameObject); } } if ((this.activeDotFlags & 1) != 0) { if (!this.bleedEffect) { this.bleedEffect = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/BleedEffect"), base.transform); } } else if (this.bleedEffect) { UnityEngine.Object.Destroy(this.bleedEffect); this.bleedEffect = null; } if ((this.activeDotFlags & 2) != 0 || (this.activeDotFlags & 8) != 0) { if (!this.burnEffectController) { ModelLocator component = victimObject.GetComponent <ModelLocator>(); if (component && component.modelTransform) { this.burnEffectController = base.gameObject.AddComponent <BurnEffectController>(); this.burnEffectController.effectType = BurnEffectController.normalEffect; this.burnEffectController.target = component.modelTransform.gameObject; } } } else if (this.burnEffectController) { UnityEngine.Object.Destroy(this.burnEffectController); this.burnEffectController = null; } if ((this.activeDotFlags & 4) != 0) { if (!this.helfireEffectController) { ModelLocator component2 = victimObject.GetComponent <ModelLocator>(); if (component2 && component2.modelTransform) { this.helfireEffectController = base.gameObject.AddComponent <BurnEffectController>(); this.helfireEffectController.effectType = BurnEffectController.helfireEffect; this.helfireEffectController.target = component2.modelTransform.gameObject; } } } else if (this.helfireEffectController) { UnityEngine.Object.Destroy(this.helfireEffectController); this.helfireEffectController = null; } if ((this.activeDotFlags & 16) != 0) { if (!this.poisonEffect) { this.poisonEffect = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/PoisonEffect"), base.transform); return; } } else if (this.poisonEffect) { UnityEngine.Object.Destroy(this.poisonEffect); this.poisonEffect = null; } }
// Token: 0x060003F0 RID: 1008 RVA: 0x0000F96A File Offset: 0x0000DB6A private static IEnumerator GeneratePortraits(bool forceRegeneration) { BodyCatalog.< > c__DisplayClass33_0 CS$ < > 8__locals1 = new BodyCatalog.< > c__DisplayClass33_0(); Debug.Log("Starting portrait generation."); CS$ < > 8__locals1.modelPanel = UnityEngine.Object.Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/UI/IconGenerator")).GetComponentInChildren <ModelPanel>(); yield return(new WaitForEndOfFrame()); int num2; for (int i = 0; i < BodyCatalog.bodyPrefabs.Length; i = num2) { CharacterBody characterBody = BodyCatalog.bodyPrefabBodyComponents[i]; if (characterBody && (forceRegeneration || !characterBody.portraitIcon || characterBody.portraitIcon.name == "texMysteryIcon")) { float num = 1f; try { Debug.LogFormat("Generating portrait for {0}", new object[] { BodyCatalog.bodyPrefabs[i].name }); ModelPanel modelPanel = CS$ < > 8__locals1.modelPanel; ModelLocator component = BodyCatalog.bodyPrefabs[i].GetComponent <ModelLocator>(); modelPanel.modelPrefab = ((component != null) ? component.modelTransform.gameObject : null); CS$ < > 8__locals1.modelPanel.SetAnglesForCharacterThumbnail(true); GameObject modelPrefab = CS$ < > 8__locals1.modelPanel.modelPrefab; PrintController printController; if ((printController = ((modelPrefab != null) ? modelPrefab.GetComponentInChildren <PrintController>() : null)) != null) { num = Mathf.Max(num, printController.printTime + 1f); } GameObject modelPrefab2 = CS$ < > 8__locals1.modelPanel.modelPrefab; TemporaryOverlay temporaryOverlay; if ((temporaryOverlay = ((modelPrefab2 != null) ? modelPrefab2.GetComponentInChildren <TemporaryOverlay>() : null)) != null) { num = Mathf.Max(num, temporaryOverlay.duration + 1f); } } catch (Exception message) { Debug.Log(message); } RoR2Application.onLateUpdate += CS$ < > 8__locals1.< GeneratePortraits > g__UpdateCamera | 0; yield return(new WaitForSeconds(num)); CS$ < > 8__locals1.modelPanel.SetAnglesForCharacterThumbnail(true); yield return(new WaitForEndOfFrame()); yield return(new WaitForEndOfFrame()); try { Texture2D texture2D = new Texture2D(CS$ < > 8__locals1.modelPanel.renderTexture.width, CS$ < > 8__locals1.modelPanel.renderTexture.height, TextureFormat.ARGB32, false, false); RenderTexture active = RenderTexture.active; RenderTexture.active = CS$ < > 8__locals1.modelPanel.renderTexture; texture2D.ReadPixels(new Rect(0f, 0f, (float)CS$ < > 8__locals1.modelPanel.renderTexture.width, (float)CS$ < > 8__locals1.modelPanel.renderTexture.height), 0, 0, false); RenderTexture.active = active; byte[] array = texture2D.EncodeToPNG(); using (FileStream fileStream = new FileStream("Assets/RoR2/GeneratedPortraits/" + BodyCatalog.bodyPrefabs[i].name + ".png", FileMode.Create, FileAccess.Write)) { fileStream.Write(array, 0, array.Length); } } catch (Exception message2) { Debug.Log(message2); } RoR2Application.onLateUpdate -= CS$ < > 8__locals1.< GeneratePortraits > g__UpdateCamera | 0; yield return(new WaitForEndOfFrame()); } num2 = i + 1; } UnityEngine.Object.Destroy(CS$ < > 8__locals1.modelPanel.transform.root.gameObject); Debug.Log("Portrait generation complete."); yield break; }