static void SetClassic(LevelChangerScript __instance) { if (GameObject.Find("MFPLevel")) { return; } MFPClassicAssets.root = GameObject.FindObjectOfType <RootScript>(); MFPClassicAssets.rootShared = GameObject.FindObjectOfType <RootSharedScript>(); GameObject gameObject = GameObject.Find("Player/PlayerGraphics/TorsorBlackLongSleeve"); GameObject.Find("Player/PlayerGraphics/Armature/Center/LowerBack/UpperBack/Shoulder_L/UpperArm_L/LowerArm_L/Hand_L/hand_01_L").GetComponent <SkinnedMeshRenderer>().material.color = Color.black; GameObject.Find("Player/PlayerGraphics/Armature/Center/LowerBack/UpperBack/Shoulder_R/UpperArm_R/LowerArm_R/Hand_R/hand_01").GetComponent <SkinnedMeshRenderer>().material.color = Color.black; #region Beta Looks if (Resources.FindObjectsOfTypeAll <GameObject>().FirstOrDefault((GameObject g) => g.name == "Head01" && g.transform.root.name == "Player") != null) { GameObject betaHead = Resources.FindObjectsOfTypeAll <GameObject>().FirstOrDefault((GameObject g) => g.name == "Head01" && g.transform.root.name == "Player"); betaHead.SetActive(true); betaHead.GetComponent <SkinnedMeshRenderer>().updateWhenOffscreen = true; betaHead.GetComponent <SkinnedMeshRenderer>().materials = new Material[] { MFPClassicAssets.character_head_test_bald }; } else { MFPEditorUtils.Log("Head01 not present!"); } GameObject betaLegs = Resources.FindObjectsOfTypeAll <GameObject>().FirstOrDefault((GameObject g) => g.name == "Legs01" && g.transform.root.name == "Player"); betaLegs.SetActive(true); betaLegs.GetComponent <SkinnedMeshRenderer>().sharedMaterial.mainTexture = MFPClassicAssets.classicBundle.LoadAsset("legs01_2") as Texture; GameObject defaultRenderer = GameObject.Find("Player/PlayerGraphics/TorsorBlackLongSleeve"); GameObject torsor = new GameObject(); SkinnedMeshRenderer torsorRenderer = torsor.AddComponent <SkinnedMeshRenderer>(); torsorRenderer.sharedMesh = MFPClassicAssets.classicBundle.LoadAsset("TorsoLongCoatAndHoodie") as Mesh; torsorRenderer.sharedMaterial = MFPClassicAssets.classicBundle.LoadAsset("torsor_long_coat_and_hoodie") as Material; // torsorRenderer.sharedMaterial.mainTexture = MFPClassicAssets.classicBundle.LoadAsset("torsor_long_coat_and_hoodie_tex") as Texture; // torsorRenderer.sharedMaterial.SetTexture("_BumpMap", MFPClassicAssets.classicBundle.LoadAsset("torsor_long_coat_and_hoodie_normal") as Texture); torsorRenderer.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off; torsorRenderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; MFPEditorUtils.Log("Torso material loaded"); torsor.transform.parent = defaultRenderer.transform; torsor.transform.position = defaultRenderer.transform.position; SkinnedMeshRenderer originalRenderer = defaultRenderer.GetComponent <SkinnedMeshRenderer>(); Transform[] replacementBones = new Transform[25]; for (int i = 0; i < 23; i++) { replacementBones[i] = originalRenderer.bones[i]; } replacementBones[23] = replacementBones[0]; replacementBones[24] = replacementBones[0]; torsorRenderer.bones = replacementBones; torsorRenderer.rootBone = originalRenderer.rootBone; torsorRenderer.probeAnchor = originalRenderer.probeAnchor; torsorRenderer.updateWhenOffscreen = true; originalRenderer.enabled = false; #endregion foreach (SkinnedMeshRenderer rend in MFPClassicAssets.player.GetComponentsInChildren <SkinnedMeshRenderer>()) { rend.lightProbeUsage = UnityEngine.Rendering.LightProbeUsage.Off; rend.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; } __instance.inputSwitch = new SwitchScript[] { __instance.gameObject.AddComponent <SwitchScript>() }; }
static void KillObsoleteEntities() { MFPClassicAssets.healthBar2HUDRect = GameObject.Find("HUD/Canvas/HealthAndSlowMo/HealthBar/HealthBar2/Bar").GetComponent <RectTransform>(); foreach (InstructionTextScript insScript in GameObject.FindObjectsOfType <InstructionTextScript>()) { foreach (string st in insScript.textLines) { MFPEditorUtils.Log(st); } MFPEditorUtils.Log(insScript.reTrigger.ToString()); MFPEditorUtils.Log(insScript.forceActivate.ToString()); MFPEditorUtils.Log(insScript.triggerWithoutPlayer.ToString()); MFPEditorUtils.Log("--------------"); foreach (Component comp in insScript.gameObject.GetComponents <Component>()) { MFPEditorUtils.Log(comp.ToString() + " " + comp.gameObject.name); ExtensiveLogging.Log(comp); } MFPEditorUtils.Log("--------------"); } MFPEditorUtils.Log("Done"); if (!doLoad) { return; } MFPEditorUtils.Log(MFPClassicAssets.player.transform.position.x.ToString() + " " + MFPClassicAssets.player.transform.position.y.ToString() + " " + MFPClassicAssets.player.transform.position.z.ToString()); if (GameObject.FindObjectOfType <AutoControlZoneScript>()) { GameObject.Destroy(GameObject.FindObjectOfType <AutoControlZoneScript>().gameObject); } if (GameObject.FindObjectOfType <CameraZoneScript>()) { GameObject.Destroy(GameObject.FindObjectOfType <CameraZoneScript>().gameObject); } foreach (PedroScript pedro in GameObject.FindObjectsOfType <PedroScript>()) { if (MFPClassicAssets.pedroSample == null) { GameObject newPedro = GameObject.Instantiate(pedro.gameObject); MFPClassicAssets.pedroSample = newPedro; MFPClassicAssets.pedroSample.SetActive(false); } GameObject.Destroy(pedro.gameObject); } #region Knife Animator playerAnim = GameObject.Find("Player").GetComponentInChildren <Animator>(); AnimatorOverrideController knifeOverride = new AnimatorOverrideController(playerAnim.runtimeAnimatorController); AnimationClip knifeIdle = MFPClassicAssets.classicBundle.LoadAsset("knife_idle") as AnimationClip; AnimationClip knifeStab = MFPClassicAssets.classicBundle.LoadAsset("Punch1") as AnimationClip; knifeOverride["FightPose"] = knifeIdle; knifeOverride["Punch1"] = knifeStab; playerAnim.runtimeAnimatorController = knifeOverride; #endregion foreach (SpeechTriggerControllerScript speech in Resources.FindObjectsOfTypeAll <SpeechTriggerControllerScript>()) { GameObject.Destroy(speech.gameObject); } foreach (Light l in GameObject.FindObjectsOfType <Light>()) { l.enabled = false; } GameObject.Find("HorizonBackground_Theme_1/Background Camera").GetComponent <Camera>().backgroundColor = Color.black; foreach (Light light in GameObject.FindObjectsOfType <Light>()) { if (light.transform.parent == null && !light.transform.name.Contains("Pedro")) { GameObject.DestroyImmediate(light.gameObject); } } LightmapSettings.lightmaps = new LightmapData[] { }; RenderSettings.fogEndDistance = 1000; DynamicGI.UpdateEnvironment(); }