示例#1
0
            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>() };
            }
示例#2
0
            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();
            }