public override void m_break(int amount)
    {
        if (breakable)
        {
            m_hardness -= 1;
            if (m_hardness <= 0)
            {
                Main mainscrpt = GameObject.FindObjectOfType <Main>();
                mainscrpt.wg.worldBlocks[(int)index.x, (int)index.y, (int)index.z] = null; // unlocate yourself from worldblocks
                m_hide();

                Main mainclass = GameObject.FindObjectOfType <Main>();
                mainclass.wg.Draw(mainclass.transform.position);

                // black magic fuckery

                Block instance = new Block_Log(Vector3.zero);                 // get type of child class and make an instance

                InventoryItem_Block item = new InventoryItem_Block(instance); // create a new inventory item of type "block" and set its refference to the type of this class(the derived class type)

                Inventory.AddItem(item);                                      // add dthe inventory item to inventory
            }
        }
    }
Exemple #2
0
    // <summary> return a set of blocks resembeling a tree </summary>
    private Block[,,] GenerateTree()
    {
        int rand = Random.Range(0, 4);

        Block[,,] tree = new Block[1, 1, 1];
        switch (rand)
        {
        case 0:
            tree          = new Block[5, 6, 5];
            tree[2, 0, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 1, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 2, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 3, 2] = new Block_Log(new Vector3(0, 0, 0));

            tree[2, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 0] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[0, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));

            break;

        case 1:
            tree          = new Block[7, 8, 7];
            tree[3, 0, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 1, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 2, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 3, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 4, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 5, 3] = new Block_Log(new Vector3(0, 0, 0));

            tree[3, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 4] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 5, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));


            tree[1, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            break;

        case 2:
            tree          = new Block[5, 6, 5];
            tree[2, 0, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 1, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 2, 2] = new Block_Log(new Vector3(0, 0, 0));
            tree[2, 3, 2] = new Block_Log(new Vector3(0, 0, 0));

            tree[2, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 3, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 0] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[0, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 3, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 3, 2] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            break;

        case 3:
            tree          = new Block[7, 8, 7];
            tree[3, 0, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 1, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 2, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 3, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 4, 3] = new Block_Log(new Vector3(0, 0, 0));
            tree[3, 5, 3] = new Block_Log(new Vector3(0, 0, 0));

            tree[3, 4, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 4, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 4, 4] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 5, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 5, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 5, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 5, 3] = new Block_Leaf(new Vector3(0, 0, 0));


            tree[1, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[1, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 1] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[5, 6, 5] = new Block_Leaf(new Vector3(0, 0, 0));

            tree[2, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[2, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[3, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 2] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 3] = new Block_Leaf(new Vector3(0, 0, 0));
            tree[4, 7, 4] = new Block_Leaf(new Vector3(0, 0, 0));
            break;
        }
        return(tree);
    }