예제 #1
0
        public override void OnLoad()
        {
            PLAYER          = GameObject.Find("PLAYER");
            foodInteraction = PLAYER.AddComponent <InteractionRaycast>();
            PLAYER.AddComponent <PlayerFoodSystems>();
            GUIuse = PlayMakerGlobals.Instance.Variables.GetFsmBool("GUIuse");

            //delet zone over
            AssetBundle ab        = LoadAssets.LoadBundle(this, "foodoverhaul.unity3d");
            GameObject  peas      = ab.LoadAsset("canned pea soup.prefab") as GameObject;
            GameObject  fishsticc = ab.LoadAsset("fish sticks.prefab") as GameObject;
            GameObject  colabruh  = ab.LoadAsset("cola.prefab") as GameObject;
            GameObject  sodabruh  = ab.LoadAsset("soda.prefab") as GameObject;

            ab.Unload(false);

            GameObject peasbruh = GameObject.Instantiate(peas);

            LoadAssets.MakeGameObjectPickable(peasbruh);
            GameObject fishsticks = GameObject.Instantiate(fishsticc);

            LoadAssets.MakeGameObjectPickable(fishsticks);
            GameObject cola = GameObject.Instantiate(colabruh);

            LoadAssets.MakeGameObjectPickable(cola);
            GameObject soda = GameObject.Instantiate(sodabruh);

            LoadAssets.MakeGameObjectPickable(soda);
        }
예제 #2
0
 void ThrowEvent()
 {
     transform.SetParent(null);
     LoadAssets.MakeGameObjectPickable(gameObject);
     rigidbody.isKinematic   = false;
     transform.localPosition = Camera.main.transform.position + new Vector3(0, -0.1f, 0);
     MasterAudio.PlaySound3DAndForget("Burb", transform, false, 1f, null, 0f, "burb01");
     rigidbody.AddForce(Camera.main.transform.forward * 150);
     gameObject.name = "empty(Clone)";
     enabled         = false;
 }
 void TakeOutItem()
 {
     if (amount > 0)
     {
         GameObject instantiatedObject = GameObject.Instantiate(item) as GameObject;
         instantiatedObject.transform.position = gameObject.transform.position;
         LoadAssets.MakeGameObjectPickable(instantiatedObject);
         amount -= 1;
     }
     else
     {
         gameObject.name = "empty(Clone)";
         enabled         = false;
     }
 }
예제 #4
0
        public void Load()
        {
            string old_path  = Path.Combine(ModLoader.GetModConfigFolder(this), "case.save");
            string old_path2 = Path.Combine(ModLoader.GetModConfigFolder(this), "cd.save");

            if (File.Exists(old_path))
            {
                File.Delete(old_path);
            }
            if (File.Exists(old_path2))
            {
                File.Delete(old_path2);
            }

            CDSaveData data = SaveLoad.DeserializeSaveFile <CDSaveData>(this, "cdplayer.save");

            if (data != null)
            {
                if (data.rackpurchased)
                {
                    rack10.transform.position = data.rackpos;
                    rack10.transform.rotation = Quaternion.Euler(data.rackrotX, data.rackrotY, data.rackrotZ);
                    rack10.SetActive(true);
                    rack10.GetComponent <CDRack>().purchased = true;
                }
                foreach (GameObject go in listOfCases)
                {
                    for (int i = 0; i < data.cases.Count; i++)
                    {
                        if (data.cases[i].CDName == go.GetComponent <CDCase>().CDName&& data.cases[i].purchased)
                        {
                            if (!data.cases[i].inRack)
                            {
                                go.transform.position = data.cases[i].pos;
                                go.transform.rotation = Quaternion.Euler(data.cases[i].rotX, data.cases[i].rotY, data.cases[i].rotZ);
                            }
                            else
                            {
                                go.GetComponent <Rigidbody>().isKinematic      = true;
                                go.GetComponent <Rigidbody>().detectCollisions = false;
                                go.transform.SetParent(rack10.transform.GetChild(data.cases[i].inRackSlot), false);
                                go.transform.localPosition            = Vector3.zero;
                                go.transform.localEulerAngles         = Vector3.zero;
                                go.GetComponent <CDCase>().inRack     = true;
                                go.GetComponent <CDCase>().inRackSlot = data.cases[i].inRackSlot;
                                go.name = "cd case (" + (data.cases[i].inRackSlot + 1).ToString() + ")(item4)";
                            }
                            go.GetComponent <CDCase>().purchased = true;
                            go.SetActive(true);
                        }
                    }
                }
                foreach (GameObject go in listOfCDs)
                {
                    for (int i = 0; i < data.cds.Count; i++)
                    {
                        if (data.cds[i].CDName == go.GetComponent <CD>().CDName)
                        {
                            if (!data.cds[i].inCase)
                            {
                                go.GetComponent <CD>().inCase = false;
                                LoadAssets.MakeGameObjectPickable(go);
                                go.transform.SetParent(null);
                                go.transform.position = data.cds[i].pos;
                                go.transform.rotation = Quaternion.Euler(data.cds[i].rotX, data.cds[i].rotY, data.cds[i].rotZ);
                            }
                        }
                    }
                }
            }
        }
예제 #5
0
        //Called when mod is loading
        public override void OnLoad()
        {
            //f**k playmaker, use AssetBundle!
            AssetBundle ab = LoadAssets.LoadBundle(this, "cdplayer.unity3d");

            rack10    = GameObject.Instantiate(ab.LoadAsset <GameObject>("rack10.prefab"));
            cdp       = ab.LoadAsset <GameObject>("cd.prefab");
            cdCaseP   = ab.LoadAsset <GameObject>("cd case.prefab");
            cd_icon   = ab.LoadAsset <Sprite>("cd.png");
            rack_icon = ab.LoadAsset <Sprite>("rackicon.png");
            ab.Unload(false);

            rack10.name = "CD Rack(item4)";
            LoadAssets.MakeGameObjectPickable(rack10);
            rack10.transform.position = new Vector3(-9.76f, 0.17f, 6.47f);
            rack10.AddComponent <CDRack>();
            rack10.SetActive(false);
            //it's now 3 disks, they works, but f**k them for safety reasons
            if (GameObject.Find("cd(item1") != null)
            {
                //if player loaded CD's they would spawn and we need to turn off them
                GameObject.Find("cd(item1)").SetActive(false);
                GameObject.Find("cd case(item1)").SetActive(false);
            }
            //there might be all 3 disks and only 1
            if (GameObject.Find("cd(item2)") != null)
            {
                GameObject.Find("cd(item2)").SetActive(false);
                GameObject.Find("cd case(item2)").SetActive(false);
            }
            if (GameObject.Find("cd(item3)") != null)
            {
                GameObject.Find("cd(item3)").SetActive(false);
                GameObject.Find("cd case(item3)").SetActive(false);
            }

            string[] dirs = Directory.GetDirectories(path);
            int      i    = 0;

            listOfCDs   = new List <GameObject>();
            listOfCases = new List <GameObject>();
            foreach (string dir in dirs)
            {
                //Quaternion e = Quaternion.Euler(new Vector3(270, 0, 0));
                GameObject cd = (GameObject)Object.Instantiate(cdp);
                cd.layer = 0;
                GameObject cdCase = GameObject.Instantiate(cdCaseP);
                LoadAssets.MakeGameObjectPickable(cdCase);
                cd.name     = "cd(item4)";
                cdCase.name = "cd case(item4)";
                cd.AddComponent <CD>().CDName         = new DirectoryInfo(dir).Name;
                cdCase.AddComponent <CDCase>().CDName = new DirectoryInfo(dir).Name;
                if (i == dirs.Length - 1)
                {
                    cdCase.GetComponent <CDCase>().cdp = this;
                }
                if (File.Exists(Path.Combine(dir, "folder.txt")))
                {
                    string[] txtDirs = File.ReadAllLines(Path.Combine(dir, "folder.txt"));
                    cd.GetComponent <CD>().CDPath = Path.GetFullPath(txtDirs[0]);
                }
                else
                {
                    cd.GetComponent <CD>().CDPath = Path.GetFullPath(dir);
                }
                cd.GetComponent <CD>().cdCase = cdCase.GetComponent <CDCase>();

                cd.GetComponent <CD>().InCase();
                cd.transform.SetParent(cdCase.transform.GetChild(2), false);

                //Load coverart.png if exists, else leave default.
                if (File.Exists(Path.Combine(dir, "coverart.png")))
                {
                    Texture2D t2d = new Texture2D(1, 1);
                    t2d.LoadImage(File.ReadAllBytes(Path.Combine(dir, "coverart.png")));
                    cd.transform.GetChild(0).GetComponent <MeshRenderer>().material.mainTexture                 = t2d;
                    cdCase.transform.GetChild(3).GetComponent <MeshRenderer>().material.mainTexture             = t2d;
                    cdCase.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material.mainTexture = t2d;
                }
                listOfCDs.Add(cd);
                listOfCases.Add(cdCase);
                cdCase.SetActive(false);
                i++;
            }
            Load();
            if (GameObject.Find("Shop for mods") != null)
            {
                ModsShop.ShopItem shop;
                //Shop for mods is installed
                shop = GameObject.Find("Shop for mods").GetComponent <ModsShop.ShopItem>();
                if (!rack10.activeSelf)
                {
                    ModsShop.ProductDetails cdRack = new ModsShop.ProductDetails
                    {
                        productName       = "Rack for 10 CDs",
                        multiplePurchases = false,
                        productCategory   = "Accesories",
                        productIcon       = rack_icon,
                        productPrice      = 50
                    };
                    shop.Add(this, cdRack, ModsShop.ShopType.Teimo, BuyCDRack, rack10);
                }
                foreach (GameObject go in listOfCases)
                {
                    if (!go.activeSelf)
                    {
                        ModsShop.ProductDetails cases = new ModsShop.ProductDetails
                        {
                            productName       = go.GetComponent <CDCase>().CDName,
                            multiplePurchases = false,
                            productCategory   = "CDs",
                            productIcon       = cd_icon,
                            productPrice      = 100
                        };
                        shop.Add(this, cases, ModsShop.ShopType.Teimo, BuyCDs, go);
                    }
                }
            }
            else
            {
                //if no shop catalog installed.
                rack10.SetActive(true);
                foreach (GameObject go in listOfCases)
                {
                    go.SetActive(true);
                }
            }
            FindPlayer();
        }
예제 #6
0
        //Called when mod is loading
        public override void OnLoad()
        {
            //f**k playmaker, use AssetBundle!
            AssetBundle ab = LoadAssets.LoadBundle(this, "cdplayer.unity3d");

            rack10    = GameObject.Instantiate(ab.LoadAsset <GameObject>("rack10.prefab"));
            cdp       = ab.LoadAsset <GameObject>("cd.prefab");
            cdCaseP   = ab.LoadAsset <GameObject>("cd case.prefab");
            cd_icon   = ab.LoadAsset <Sprite>("cd.png");
            rack_icon = ab.LoadAsset <Sprite>("rackicon.png");
            ab.Unload(false);

            rack10.name = "CD Rack(itemy)";
            LoadAssets.MakeGameObjectPickable(rack10);
            rack10.transform.position = new Vector3(-9.76f, 0.17f, 6.47f);
            rack10.AddComponent <CDRack>();
            rack10.SetActive(false);
            if (!Directory.Exists(path)) //CD folder was renamed to CD1/2/3
            {
                Directory.CreateDirectory(path);
            }
            if (!File.Exists(Path.Combine(path, "CD Player Enhanced.txt")))
            {
                File.WriteAllText(Path.Combine(path, "CD Player Enhanced.txt"), readme);
            }
            string[] dirs = Directory.GetDirectories(path);
            int      i    = 0;

            listOfCDs   = new List <GameObject>();
            listOfCases = new List <GameObject>();
            foreach (string dir in dirs)
            {
                //Quaternion e = Quaternion.Euler(new Vector3(270, 0, 0));
                GameObject cd = (GameObject)Object.Instantiate(cdp);
                cd.layer = 0;
                GameObject cdCase = GameObject.Instantiate(cdCaseP);
                LoadAssets.MakeGameObjectPickable(cdCase);
                cd.name     = "cd(itemy)";
                cdCase.name = "cd case(itemy)";
                cd.AddComponent <CD>().CDName         = new DirectoryInfo(dir).Name;
                cdCase.AddComponent <CDCase>().CDName = new DirectoryInfo(dir).Name;

                string[] pls = Directory.GetFiles(dir, "*.*").Where(file => file.ToLower().EndsWith(".m3u", System.StringComparison.OrdinalIgnoreCase) ||
                                                                    file.ToLower().EndsWith(".m3u8", System.StringComparison.OrdinalIgnoreCase) ||
                                                                    file.ToLower().EndsWith(".pls", System.StringComparison.OrdinalIgnoreCase)).ToArray();
                if (pls.Length > 0)
                {
                    cd.GetComponent <CD>().isPlaylist = true;
                    cd.GetComponent <CD>().CDPath     = Path.GetFullPath(pls[0]);
                }
                else
                {
                    if (File.Exists(Path.Combine(dir, "folder.txt")))
                    {
                        string[] txtDirs = File.ReadAllLines(Path.Combine(dir, "folder.txt"));
                        cd.GetComponent <CD>().CDPath = Path.GetFullPath(txtDirs[0]);
                    }
                    else
                    {
                        cd.GetComponent <CD>().CDPath = Path.GetFullPath(dir);
                    }
                }
                cd.GetComponent <CD>().cdCase = cdCase.GetComponent <CDCase>();

                cd.GetComponent <CD>().InCase();
                cd.transform.SetParent(cdCase.transform.GetChild(2), false);

                //Load coverart.png if exists, else leave default.
                if (File.Exists(Path.Combine(dir, "coverart.png")))
                {
                    Texture2D t2d = new Texture2D(1, 1);
                    t2d.LoadImage(File.ReadAllBytes(Path.Combine(dir, "coverart.png")));
                    cd.transform.GetChild(0).GetComponent <MeshRenderer>().material.mainTexture                 = t2d;
                    cdCase.transform.GetChild(3).GetComponent <MeshRenderer>().material.mainTexture             = t2d;
                    cdCase.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material.mainTexture = t2d;
                }
                listOfCDs.Add(cd);
                listOfCases.Add(cdCase);
                cdCase.SetActive(false);
                i++;
            }
            Load();
            if (GameObject.Find("Shop for mods") != null)
            {
                ModsShop.ShopItem shop;
                //Shop for mods is installed
                shop = GameObject.Find("Shop for mods").GetComponent <ModsShop.ShopItem>();
                if (!rack10.activeSelf)
                {
                    ModsShop.ProductDetails cdRack = new ModsShop.ProductDetails
                    {
                        productName       = "Rack for 10 CDs",
                        multiplePurchases = false,
                        productCategory   = "Accesories",
                        productIcon       = rack_icon,
                        productPrice      = 50
                    };
                    shop.Add(this, cdRack, ModsShop.ShopType.Teimo, BuyCDRack, rack10);
                }
                foreach (GameObject go in listOfCases)
                {
                    if (!go.activeSelf)
                    {
                        ModsShop.ProductDetails cases = new ModsShop.ProductDetails
                        {
                            productName       = go.GetComponent <CDCase>().CDName,
                            multiplePurchases = false,
                            productCategory   = "CDs",
                            productIcon       = cd_icon,
                            productPrice      = 100
                        };
                        shop.Add(this, cases, ModsShop.ShopType.Teimo, BuyCDs, go);
                    }
                }
            }
            else
            {
                //if no shop catalog installed.
                rack10.SetActive(true);
                foreach (GameObject go in listOfCases)
                {
                    go.SetActive(true);
                }
            }
            FindPlayer();
            if (GameObject.Find("cd(item1)") != null)
            {
                GameObject.Find("cd(item1)").SetActive(false);
            }
            if (GameObject.Find("cd case(item1)") != null)
            {
                GameObject.Find("cd case(item1)").SetActive(false);
            }
            if (GameObject.Find("cd(item2)") != null)
            {
                GameObject.Find("cd(item2)").SetActive(false);
            }
            if (GameObject.Find("cd case(item2)") != null)
            {
                GameObject.Find("cd case(item2)").SetActive(false);
            }
            if (GameObject.Find("cd(item3)") != null)
            {
                GameObject.Find("cd(item3)").SetActive(false);
            }
            if (GameObject.Find("cd case(item3)") != null)
            {
                GameObject.Find("cd case(item3)").SetActive(false);
            }
        }
예제 #7
0
        public void Load()
        {
            string old_path  = Path.Combine(ModLoader.GetModConfigFolder(this), "case.save");
            string old_path2 = Path.Combine(ModLoader.GetModConfigFolder(this), "cd.save");

            if (File.Exists(old_path))
            {
                File.Delete(old_path);
            }
            if (File.Exists(old_path2))
            {
                File.Delete(old_path2);
            }

            CDSaveData data = SaveLoad.DeserializeSaveFile <CDSaveData>(this, "cdplayer.save");

            if (data != null)
            {
                if (data.rackpurchased)
                {
                    rack10.transform.position    = data.rackpos;
                    rack10.transform.eulerAngles = new Vector3(data.rackrotX, data.rackrotY, data.rackrotZ);
                    rack10.SetActive(true);
                    rack10.GetComponent <CDRack>().purchased = true;
                }
                for (int i = 0; i < listOfCases.Count; i++)
                {
                    CaseSaveDataList cas = data.cases.Where(x => x.CDName == listOfCases[i].GetComponent <CDCase>().CDName&& x.purchased).FirstOrDefault();
                    if (cas != null)
                    {
                        if (!cas.inRack)
                        {
                            listOfCases[i].transform.position    = cas.pos;
                            listOfCases[i].transform.eulerAngles = new Vector3(cas.rotX, cas.rotY, cas.rotZ);
                        }
                        else
                        {
                            listOfCases[i].GetComponent <Rigidbody>().isKinematic      = true;
                            listOfCases[i].GetComponent <Rigidbody>().detectCollisions = false;
                            listOfCases[i].transform.SetParent(rack10.transform.GetChild(cas.inRackSlot), false);
                            listOfCases[i].transform.localPosition            = Vector3.zero;
                            listOfCases[i].transform.localEulerAngles         = Vector3.zero;
                            listOfCases[i].GetComponent <CDCase>().inRack     = true;
                            listOfCases[i].GetComponent <CDCase>().inRackSlot = cas.inRackSlot;
                            listOfCases[i].name = "cd case (" + (cas.inRackSlot + 1).ToString() + ")(itemy)";
                        }
                        listOfCases[i].GetComponent <CDCase>().purchased = true;
                        listOfCases[i].SetActive(true);
                    }
                }

                for (int i = 0; i < listOfCDs.Count; i++)
                {
                    CDSaveDataList cds = data.cds.Where(x => x.CDName == listOfCDs[i].GetComponent <CD>().CDName).FirstOrDefault();
                    if (cds != null)
                    {
                        if (cds.CDName == listOfCDs[i].GetComponent <CD>().CDName)
                        {
                            if (!cds.inCase)
                            {
                                listOfCDs[i].GetComponent <CD>().inCase = false;
                                LoadAssets.MakeGameObjectPickable(listOfCDs[i]);
                                listOfCDs[i].transform.SetParent(null);
                                listOfCDs[i].transform.position    = cds.pos;
                                listOfCDs[i].transform.eulerAngles = new Vector3(cds.rotX, cds.rotY, cds.rotZ);
                            }
                        }
                    }
                }
            }
        }
예제 #8
0
 public static void MakePickable(this GameObject gameObject, bool includeTag = true) => LoadAssets.MakeGameObjectPickable(gameObject);