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_Leaf(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 } } }
// <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); }