using System; using System.Collections; using Kino; using UnityEngine; // Token: 0x020000D1 RID: 209 public class RenderPortraitSetup : MonoBehaviour { // Token: 0x0600134B RID: 4939 RVA: 0x00174780 File Offset: 0x00172980 public void Setup(int index, string character, Body body, Transform head, RenderPortraits rp, float idleTime, RenderTexture rt, Library.Characters crow) { this.directionalLight = rp.directionalLight; this.idle = idleTime; this.texCapture = rt; base.StartCoroutine(this.TakeCaptures(index, character, body, head, rp, idleTime, crow)); } // Token: 0x0600134C RID: 4940 RVA: 0x001747C4 File Offset: 0x001729C4 public void PlayAnimation(string animName, string bodyAnimName) { if (this.bodyObject.GetLookIK()) { if (this.bodyObject.anim.runtimeAnimatorController.name.Contains("Vol")) { this.cam.gameObject.transform.GetChild(3).gameObject.GetComponent().Play(animName, -1, 0f); } if (bodyAnimName != "") { this.bodyObject.anim.Play(bodyAnimName); } if (this.bodyObject.GetLookIK().solver.target == null) { this.bodyObject.GetLookIK().solver.IKPositionWeight = 0.7f; this.bodyObject.GetLookIK().solver.target = this.cam.gameObject.transform.GetChild(3); this.bodyObject.GetLookIK().enabled = true; this.bodyObject.GetLookIK().solver.bodyWeight = 0.1f; } this.SetLookAt(); } } // Token: 0x0600134D RID: 4941 RVA: 0x001748E4 File Offset: 0x00172AE4 public void SetLookAt() { if (this.bodyObject) { this.bodyObject.GetLookIK().solver.IKPositionWeight = 0.7f; this.bodyObject.GetLookIK().enabled = true; } } // Token: 0x0600134E RID: 4942 RVA: 0x00174920 File Offset: 0x00172B20 public void FreshBlink() { if (this.bodyObject.headAnim) { this.bodyObject.headAnim.FreshBlink(); } if (Time.timeScale < 0.5f) { this.bodyObject.anim.updateMode = AnimatorUpdateMode.UnscaledTime; return; } this.bodyObject.anim.updateMode = AnimatorUpdateMode.Normal; } // Token: 0x0600134F RID: 4943 RVA: 0x00174980 File Offset: 0x00172B80 public void FaceForward() { this.bodyObject.transform.localRotation = Quaternion.Euler(new Vector3(0f, 60f, 0f)); this.cam.orthographicSize = 0.99f; this.cam.clearFlags = CameraClearFlags.Color; this.cam.backgroundColor = Color.clear; this.cam.gameObject.transform.GetChild(2).gameObject.SetActive(false); this.obs.enabled = true; } // Token: 0x06001350 RID: 4944 RVA: 0x00174A10 File Offset: 0x00172C10 public void FaceToTheSide() { this.bodyObject.transform.localRotation = Quaternion.Euler(new Vector3(0f, 100f, 0f)); this.cam.orthographicSize = 0.7f; this.cam.clearFlags = CameraClearFlags.Color; this.cam.backgroundColor = Color.black; this.cam.gameObject.transform.GetChild(2).gameObject.SetActive(true); this.obs.enabled = false; } // Token: 0x06001351 RID: 4945 RVA: 0x00174AA0 File Offset: 0x00172CA0 public void ToggleCrossFade(bool state) { MenuCameraCrossFade component = this.cam.gameObject.GetComponent(); if (component) { component.enabled = state; } } // Token: 0x06001352 RID: 4946 RVA: 0x00174ACD File Offset: 0x00172CCD public void ToggleDownsampling(bool state) { if (this.savedCharacter && this.savedCharacter.party) { this.obs.enabled = state; } } // Token: 0x06001353 RID: 4947 RVA: 0x00174AF8 File Offset: 0x00172CF8 public void CheckForModel() { bool flag = false; if (!this.model) { flag = true; } if (!flag && (!this.model.activeSelf || this.model.transform.parent == Links.x.archives.tr)) { flag = true; } if (flag) { Links.x.fellowship.AddPortraitChange(this.savedCharacter); } } // Token: 0x06001354 RID: 4948 RVA: 0x00174B66 File Offset: 0x00172D66 public void HeadBobble() { base.StartCoroutine(this.Bobble()); } // Token: 0x06001355 RID: 4949 RVA: 0x00174B75 File Offset: 0x00172D75 private IEnumerator Bobble() { if (this.bodyObject) { this.bodyObject.GetLookIK().solver.IKPositionWeight = 0.7f; Transform t = this.cam.gameObject.transform.GetChild(4); Transform t2 = this.cam.gameObject.transform.GetChild(3); t.position = t2.position; if (!this.bodyObject.headBone) { this.bodyObject.GetHead(); } int i = Random.Range(4, 8); this.bodyObject.GetLookIK().solver.target = t; Vector3 straightAhead = t2.position; int num3; for (int j = 0; j < i; j = num3 + 1) { float num = -0.3f; float num2 = 0.3f; t.position = straightAhead + new Vector3(Random.Range(num, num2), Random.Range(num, num2), Random.Range(num, num2)); yield return new WaitForSeconds(0.1f); num3 = j; } this.bodyObject.GetLookIK().solver.target = t2; t = null; t2 = null; straightAhead = default(Vector3); } yield break; } // Token: 0x06001356 RID: 4950 RVA: 0x00174B84 File Offset: 0x00172D84 public void CrossFade() { if (!this.cam.gameObject.GetComponent()) { this.cam.gameObject.AddComponent(); } } // Token: 0x06001357 RID: 4951 RVA: 0x00174BAE File Offset: 0x00172DAE private IEnumerator TakeCaptures(int index, string character, Body body, Transform head, RenderPortraits rp, float idleTime, Library.Characters crow) { this.directionalLight.enabled = true; this.characterRow = crow; bool flag = false; if (this.obs) { flag = true; } this.cam.gameObject.SetActive(true); this.model.SetActive(true); this.bodyObject = body; Transform child = this.cam.gameObject.transform.GetChild(1); body.transform.SetParent(child, true); this.obs = this.cam.gameObject.GetComponent(); this.obs.enabled = false; if (this.savedCharacter) { if (this.savedCharacter.party && (Links.x.creation || Links.x.characterSheet.open || !this.firstCrossFade)) { MenuCameraCrossFade menuCameraCrossFade = this.cam.gameObject.GetComponent(); if (!menuCameraCrossFade) { menuCameraCrossFade = this.cam.gameObject.AddComponent(); } if (menuCameraCrossFade) { menuCameraCrossFade.enabled = true; if (!this.firstCrossFade) { menuCameraCrossFade.StartCrossFadeFast(); } else { menuCameraCrossFade.StartCrossFade(); } } this.obs.enabled = true; this.obs.downsampling = false; } this.firstCrossFade = true; } this.cam.orthographicSize = 0.7f; if (body.GetLookIK() && this.savedCharacter) { body.anim.enabled = true; if (body.anim.runtimeAnimatorController.name.Contains("Dialogue") && this.savedCharacter.party) { if (!Links.x.creation) { body.GetLookIK().solver.IKPositionWeight = 0.7f; body.GetLookIK().solver.target = this.cam.gameObject.transform.GetChild(3); body.GetLookIK().enabled = true; body.GetLookIK().solver.bodyWeight = 0.1f; } else { body.GetLookIK().solver.IKPositionWeight = 0f; body.GetLookIK().solver.target = this.cam.gameObject.transform.GetChild(3); body.GetLookIK().enabled = true; body.GetLookIK().solver.bodyWeight = 0.1f; } this.bodyObject.anim.Play("Look Around Less", -1, idleTime); this.party = true; Transform child2 = this.cam.gameObject.transform.GetChild(2); if (!flag) { child2.localPosition = new Vector3(Random.Range(-0.98f, 2.75f), child2.localPosition.y, child2.localPosition.z); } this.cam.gameObject.transform.GetChild(3).gameObject.GetComponent().Play("talk1", -1, 0f); } if (this.savedCharacter.stats.animal) { this.cam.gameObject.transform.GetChild(2).gameObject.GetComponent().enabled = false; } else { this.cam.gameObject.transform.GetChild(2).gameObject.GetComponent().enabled = true; } this.FreshBlink(); } else { if (body.GetLookIK()) { body.GetLookIK().enabled = false; body.GetLookIK().solver.IKPositionWeight = 0f; } if (this.model.name.Contains("Boro")) { this.cam.orthographicSize = 1f; } } this.cam.enabled = true; this.cam.targetTexture = null; body.SetLayer(26); body.isPortrait = true; body.SetMagicaClothState(true); body.SetMagicaClothWind(); body.SetMeshState(true, false); if (!body.anim.runtimeAnimatorController) { body.anim.runtimeAnimatorController = this.animatorOverrideController; } if (this.savedCharacter) { if (!this.savedCharacter.party) { body.transform.localRotation = Quaternion.Euler(rp.rot); } else { body.transform.localRotation = Quaternion.Euler(new Vector3(0f, 100f, 0f)); } } else { body.transform.localRotation = Quaternion.Euler(rp.rot); } if (Time.timeScale < 0.5f) { body.anim.updateMode = AnimatorUpdateMode.UnscaledTime; } else { body.anim.updateMode = AnimatorUpdateMode.Normal; } if (body) { body.anim.speed = 1f; if (Records.x.filming && Time.timeScale < 0.5f) { body.anim.speed = 0.2f; } } body.gameObject.transform.localPosition = new Vector3(0f, this.characterRow._Height * -1f, this.characterRow._PortraitZ); if (this.savedCharacter && this.savedCharacter.party && this.savedCharacter.stats.race == "Yeti") { body.gameObject.transform.localPosition = new Vector3(0f, -4f, 0.1f); } Vector3 local = body.gameObject.transform.localPosition; if (body) { body.anim.Rebind(); if (!body.anim.runtimeAnimatorController) { body.anim.runtimeAnimatorController = Links.x.archives.GetOverrideController("_Volling_Unarmed"); } if (body.anim.runtimeAnimatorController.name.Contains("Dialogue")) { this.bodyObject.anim.Play("Look Around Less", -1, idleTime); } body.anim.Update(0f); body.anim.enabled = false; body.anim.enabled = true; body.anim.cullingMode = AnimatorCullingMode.AlwaysAnimate; } if (!this.stop) { if (this.gamecard) { this.gamecard.stopPlaying = true; } this.Render(0, index); if (this.portrait) { this.portrait.currIndex = -1; } yield return new WaitForSecondsRealtime(0.1f); } if (!this.stop) { if (!this.savedCharacter) { this.cam.enabled = false; } this.cam.targetTexture = this.texCapture; } yield return new WaitForSecondsRealtime(0.25f); body.gameObject.transform.localPosition = local; yield return new WaitForSecondsRealtime(0.25f); if (!this.savedCharacter) { this.cam.enabled = false; this.cam.targetTexture = null; this.cam.gameObject.SetActive(false); } yield break; } // Token: 0x06001358 RID: 4952 RVA: 0x00174BE3 File Offset: 0x00172DE3 public void Reload() { this.cam.enabled = false; this.cam.targetTexture = null; this.cam.gameObject.SetActive(false); Object.Destroy(this); } // Token: 0x06001359 RID: 4953 RVA: 0x00174C14 File Offset: 0x00172E14 public void Render(int index, int i) { if (this.texCapture != null && !this.stop) { if (!this.model.activeSelf) { this.model.SetActive(true); } this.cam.targetTexture = this.texCapture; } } // Token: 0x04002085 RID: 8325 public Light directionalLight; // Token: 0x04002086 RID: 8326 public Camera cam; // Token: 0x04002087 RID: 8327 public GameObject model; // Token: 0x04002088 RID: 8328 public Portrait portrait; // Token: 0x04002089 RID: 8329 public GameCard gamecard; // Token: 0x0400208A RID: 8330 public AnimatorOverrideController animatorOverrideController; // Token: 0x0400208B RID: 8331 private Obscurance obs; // Token: 0x0400208C RID: 8332 public RenderTexture texCapture; // Token: 0x0400208D RID: 8333 public bool stop; // Token: 0x0400208E RID: 8334 public bool party; // Token: 0x0400208F RID: 8335 public float idle; // Token: 0x04002090 RID: 8336 private Body bodyObject; // Token: 0x04002091 RID: 8337 public Character savedCharacter; // Token: 0x04002092 RID: 8338 public Library.Characters characterRow; // Token: 0x04002093 RID: 8339 private bool firstCrossFade; }