Esempio n. 1
0
    void Ores(AllData allData)
    {
        if (allData.ore != null)
        {
            string[] data     = allData.ore.stats;
            bool[]   eternals = allData.ore.eternalMounted;
            int      num      = allData.ore.numStats;
            int      amount   = data.Length / num;//because every n'th element starts a new item

            for (int i = 0; i < amount; i++)
            {
                OreController o = Instantiate(StaticFunctions.GetOreFromString(data[(i * num) + 4]), Vector3.zero, Quaternion.identity);
                o.transform.position = new Vector3(float.Parse(data[(i * num)]), float.Parse(data[(i * num) + 1]), 0);
                o.transform.rotation = Quaternion.Euler(0, 0, float.Parse(data[(i * num) + 2]));
                o.currentQuantity    = int.Parse(data[(i * num) + 3]);
                o.quantity           = int.Parse(data[(i * num) + 3]);
                //string[] color = data[(i * num) + 4].Split(',');
                //o.oreColor = new Color(float.Parse(color[0]), float.Parse(color[1]), float.Parse(color[2]));
                //o.product = StaticFunctions.GetItemFromString(data[(i * num) + 5]);

                //eternaliser

                if (eternals?[i] == true)
                {
                    Instantiate(moed, o.transform.position, Quaternion.identity).goThru = false;
                }
                o.transform.localScale = new Vector2(float.Parse(data[(i * num) + 5]), float.Parse(data[(i * num) + 6]));
            }
        }
    }
Esempio n. 2
0
    public void Landed()
    {
        cons?.AddLine("MOED has been mounted");
        bool foundOre = false;

        Collider2D[] possibilities = Physics2D.OverlapCircleAll(transform.position, 0.1f);
        foreach (Collider2D p in possibilities)
        {
            if (p.GetComponent <OreController>())
            {
                foundOre   = true;
                mountedOre = p.GetComponent <OreController>();
            }
        }

        if (foundOre)
        {
            print("ore found");
            mountedOre.eternal = true;
        }
        else
        {
            print("exit");
            Leave();
        }
    }
Esempio n. 3
0
    public OreData(SaveMaster mast)
    {
        numStats = 7; //posx, y, rot, count of remaining items, color r, g, b
        //actually, its just the product lol
        //actually, thats wrong too lol
        eternalMounted = new bool[mast.ores.Length];
        stats          = new string[mast.ores.Length * numStats];
        for (int i = 0; i < mast.ores.Length; i++)
        {
            OreController ore = mast.ores[i];

            eternalMounted[i] = ore.eternal; // now mount eternalizer based on this

            stats[(i * numStats)]     = ore.transform.position.x.ToString();
            stats[(i * numStats) + 1] = ore.transform.position.y.ToString();
            stats[(i * numStats) + 2] = ore.transform.rotation.eulerAngles.z.ToString();
            //numitems
            stats[(i * numStats) + 3] = ore.currentQuantity.ToString();
            //item type
            stats[(i * numStats) + 4] = ore.product.GetComponent <Item>().typeOfItem;//for getting the prefab later
            //scale mod

            stats[(i * numStats) + 5] = ore.transform.localScale.x.ToString();
            stats[(i * numStats) + 6] = ore.transform.localScale.y.ToString();
        }
    }
    public static OreController GetOreFromString(string input)
    {
        OreController[] allOres = Resources.LoadAll <OreController>("Ores");
        OreController   nullOre = Resources.Load <OreController>("Ores/NullOre");

        for (int i = 0; i < allOres.Length; i++)
        {
            //Debug.Log(allItems[i].name + ":" + input);
            if (allOres[i].product.typeOfItem == input)
            {
                return(allOres[i]);
            }
        }
        Debug.Log("RETURNING NULL ORE BECAUSE F**K yoU THATS WHY");
        return(nullOre);
    }
Esempio n. 5
0
 void Start()
 {
     //get the timer
     tim = GameObject.FindObjectOfType <Timer>();
     tim.miners.Add(gameObject.GetComponent <Miner>());
     //StartCoroutine(LaunchItem());
     sp = gameObject.GetComponent <SpriteRenderer>();
     //make sure you dont add shit behind this, because it will error out and fail if the miner isnt on a patch
     if (Physics2D.OverlapCircle(transform.position, 1, layerMask))
     {
         orePatch           = Physics2D.OverlapCircle(transform.position, 1, layerMask).gameObject.GetComponent <OreController>();
         hasHadOrePatch     = true;
         product            = orePatch.product.GetComponent <Rigidbody2D>();
         hardnessMultiplier = orePatch.hardness;
     }
     //draw line renderer to nearby ore
     if (!StaticFunctions.lowGraphics)
     {
         UpdateConnections();
     }
 }
Esempio n. 6
0
    IEnumerator LaunchItem()
    {
        ///I think that any launcher which does not start with an item is failing rn because it errors and then stops
        ///I need it to only launch if there is an item in it. This is vital. Otherwise it stops the loop
        //yield return new WaitForSeconds(coolDown * hardnessMultiplier);
        yield return(new WaitForEndOfFrame());

        if (!orePatch)
        {
            if (hasHadOrePatch)
            {
                //since you used to but dont anymore, the patch must have faded. Remove miner from ticker
                tim.miners.Remove(this);
                UpdateConnections();//also remove line
            }
            //product = null;
            sp.color = new Color(0.2f, 0.2f, 0.2f, 1);
            if (Physics2D.OverlapCircle(transform.position, 1, layerMask))
            {
                orePatch = Physics2D.OverlapCircle(transform.position, 1, layerMask).gameObject.GetComponent <OreController>();
            }
            if (orePatch)
            {
                hasHadOrePatch     = true;
                hardnessMultiplier = orePatch.hardness;
                UpdateConnections();
                product = orePatch.product.GetComponent <Rigidbody2D>();
            }
            //StartCoroutine(LaunchItem());
        }
        else
        {
            Rigidbody2D p = Instantiate(product, launchPoint.position, launchPoint.rotation);
            p.gameObject.SetActive(true);
            p.AddForce(launchPoint.up * launchForce);
            orePatch.currentQuantity -= 1;
            sp.color = Color.white;
            //StartCoroutine(LaunchItem());
        }
    }
Esempio n. 7
0
    public void OpenEditor(GameObject editable)
    {
        //break out?
        gameInfo = GameObject.FindObjectOfType <GameInfo>();
        if (gameInfo.currentlyMouseAiming)
        {
            Close();
            return;
        }
        if (!metaInventory)
        {
            metaInventory = GameObject.FindObjectOfType <MetaInventory>();
        }
        //activate cursor
        Cursor.visible = true;

        //get editable
        obj = editable.transform.parent.gameObject;
        if (editable.GetComponent <EditRotation>())
        {
            //activate mouseaim if...
            mouseAimButton.SetActive(true);
            eRot = editable.GetComponent <EditRotation>();
            elements[4].SetActive(true);
        }
        else
        {
            mouseAimButton.SetActive(false);
            eRot = null;
            //so that you never end up doing it for something else
        }
        //make the title of the ui the obj name
        string objName = obj.name;

        //if it has a (, remove everything after that (
        if (objName.Contains("("))
        {
            int loc = objName.IndexOf("(");
            //substring does the trick
            objName   = objName.Substring(0, loc);
            name.text = objName;
        }
        else
        {
            name.text = objName;
        }

        if (obj.GetComponent <Miner>())
        {
            //set type
            typeSelected = 1;
            //set up layout for miner obj
            miner = obj.GetComponent <Miner>();
            s1.gameObject.SetActive(true);
            s1.maxValue = 1000;
            s1.value    = miner.launchForce;
            s1T.text    = "Launch Force: " + s1.value.ToString();
        }
        if (obj.GetComponent <LauncherController>())
        {
            //set type
            typeSelected = 2;
            //set up layout for launcher obj
            launcher = obj.GetComponent <LauncherController>();
            s1.gameObject.SetActive(true);
            s1.maxValue = 1000;
            s1.value    = launcher.launchForce;
            s1T.text    = "Launch Force: " + s1.value.ToString();
            //set up second slider for interval
            s2.gameObject.SetActive(true);
            s2.maxValue = 2;
            s2.minValue = 0.25f;
            s2.value    = launcher.coolDown;
            s2T.text    = "Fire Interval: " + s2.value.ToString();
        }
        if (obj.GetComponent <OreController>())
        {
            typeSelected = 3;
            ore          = obj.GetComponent <OreController>();
            MidInfoT.gameObject.SetActive(true);
            if (ore.eternal)
            {
                MidInfoT.text = "Quantity: Eternal" + " Hardness: " + ore.hardness;
            }
            else
            {
                MidInfoT.text = "Quantity: " + ore.currentQuantity.ToString() + System.Environment.NewLine + "Hardness: " + ore.hardness;
            }
            MidInfoT.color = ore.GetComponent <SpriteRenderer>().color;

            bottomButton.gameObject.SetActive(true);
            if (ore.eternal)
            {
                print("ore is eternal");
                bottomButton.interactable = true;
                bottomButtonText.text     = "Destroy Ore";
            }
            else if (metaInventory.eternalizers > 0)
            {
                bottomButton.interactable = true;
                bottomButtonText.text     = "Mount MOED";
            }
            else
            {
                bottomButton.interactable = false;
                bottomButtonText.text     = "No MOED's";
            }
        }
        if (obj.GetComponent <Crafting>())
        {
            //set up crafter ui
            typeSelected = 4;
            crafterPanel.SetActive(true);
            craft = obj.GetComponent <Crafting>();
            MidInfoT.gameObject.SetActive(true);
            UIButtonArray car = crafterPanel.GetComponent <UIButtonArray>();
            foreach (Button b in car.buttons)
            {
                ///THIS
                ///MEANS
                ///THAT
                ///ALL
                ///BUTTONS
                ///MUST BE NAMED
                ///P R O P E R L Y !!!
                //print(b.name + " : " + craft.recipe.name);
                if (b.name == craft.recipe.name)
                {
                    car.BClick(b);
                }
            }
        }
        if (obj.GetComponent <UnPackager>())
        {
            typeSelected = 5;
        }
        if (obj.GetComponent <Packager>())
        {
            Packager pack = obj.GetComponent <Packager>();
            typeSelected = 6;
            s1.gameObject.SetActive(true);
            s1.maxValue = 100;
            s1.minValue = 10;
            s1.value    = pack.maxItems;
            s1T.text    = "Maximum Items: " + Mathf.RoundToInt(s1.value).ToString();
        }
        else if (obj.GetComponent <Splitter>())
        {
            split        = obj.GetComponent <Splitter>();
            typeSelected = 7;
            MidInfoT.gameObject.SetActive(true);
            MidInfoT.text  = "Set a filter ->";
            MidInfoT.color = new Color(0, 255, 255, 255);
            filterPanel.gameObject.SetActive(true);
            //setup filter panel
            UIButtonArray ar = filterPanel.GetComponent <UIButtonArray>();
            foreach (Button b in ar.buttons)
            {
                ///THIS
                ///MEANS
                ///THAT
                ///ALL
                ///BUTTONS
                ///MUST BE NAMED
                ///P R O P E R L Y !!!
                if (b.name == split.typeName)
                {
                    ar.BClick(b);
                }
                else
                {
                    if (b.name == "Empty filter" && split.typeName == "")
                    {
                        ar.BClick(b);
                    }
                }
            }
        }
        else if (obj.GetComponent <Pump>())
        {
            pump = obj.GetComponent <Pump>();
            MidInfoT.gameObject.SetActive(true);
            typeSelected = 8;
        }
        else if (obj.GetComponent <Core>())
        {
            typeSelected = 9;
            core         = obj.GetComponent <Core>();
            int lv = core.level;
            MidInfoT.gameObject.SetActive(true);
            MidInfoT.text = "Level " + lv.ToString();
        }
        else if (obj.GetComponent <RocketBase>())
        {
            typeSelected = 10;
            rocket       = obj.GetComponent <RocketBase>();
            MidInfoT.gameObject.SetActive(true);
            rocketPanel.SetActive(true);
            rIronSlider.slider.maxValue = rocket.maxIron;
            rCopSlider.slider.maxValue  = rocket.maxCopper;
            rFuelSlider.slider.maxValue = rocket.maxFuel;
            MidInfoT.text = "Needs rocket fuel";
            //set max
            rIronSlider.SetSliderParameters(rocket.maxIron);
            rCopSlider.SetSliderParameters(rocket.maxCopper);
            rFuelSlider.SetSliderParameters(rocket.maxFuel);
        }
    }