private void generateBlock() { if (currentBlock == null) { currentBlock = BlockFabric.generateRandomBlock(board.boardPositions); } }
private void Face(BlockType block, int direction, Vector3 position, float scale) { // TRIANGLES int tri = vertices.Count; triangles.Add(tri + 0); triangles.Add(tri + 2); triangles.Add(tri + 1); triangles.Add(tri + 2); triangles.Add(tri + 3); triangles.Add(tri + 1); // UVS Vector2 uvPos = BlockFabric.GetUV(block); float unit = BlockFabric.TEXTURE_SIZE; uvs.Add(uvPos + Vector2.zero / unit); uvs.Add(uvPos + Vector2.right / unit); uvs.Add(uvPos + Vector2.up / unit); uvs.Add(uvPos + Vector2.one / unit); // VERTICES & NORMALS if (direction == FACE_TOP) { vertices.Add(new Vector3(-1, 1, -1) * scale + position); vertices.Add(new Vector3(1, 1, -1) * scale + position); vertices.Add(new Vector3(-1, 1, 1) * scale + position); vertices.Add(new Vector3(1, 1, 1) * scale + position); normals.Add(Vector3.up); normals.Add(Vector3.up); normals.Add(Vector3.up); normals.Add(Vector3.up); } if (direction == FACE_FRONT) { vertices.Add(new Vector3(-1, -1, -1) * scale + position); vertices.Add(new Vector3(1, -1, -1) * scale + position); vertices.Add(new Vector3(-1, 1, -1) * scale + position); vertices.Add(new Vector3(1, 1, -1) * scale + position); normals.Add(Vector3.back); normals.Add(Vector3.back); normals.Add(Vector3.back); normals.Add(Vector3.back); } if (direction == FACE_RIGHT) { vertices.Add(new Vector3(1, -1, -1) * scale + position); vertices.Add(new Vector3(1, -1, 1) * scale + position); vertices.Add(new Vector3(1, 1, -1) * scale + position); vertices.Add(new Vector3(1, 1, 1) * scale + position); normals.Add(Vector3.right); normals.Add(Vector3.right); normals.Add(Vector3.right); normals.Add(Vector3.right); } if (direction == FACE_LEFT) { vertices.Add(new Vector3(-1, -1, 1) * scale + position); vertices.Add(new Vector3(-1, -1, -1) * scale + position); vertices.Add(new Vector3(-1, 1, 1) * scale + position); vertices.Add(new Vector3(-1, 1, -1) * scale + position); normals.Add(Vector3.left); normals.Add(Vector3.left); normals.Add(Vector3.left); normals.Add(Vector3.left); } if (direction == FACE_BACK) { vertices.Add(new Vector3(1, -1, 1) * scale + position); vertices.Add(new Vector3(-1, -1, 1) * scale + position); vertices.Add(new Vector3(1, 1, 1) * scale + position); vertices.Add(new Vector3(-1, 1, 1) * scale + position); normals.Add(Vector3.forward); normals.Add(Vector3.forward); normals.Add(Vector3.forward); normals.Add(Vector3.forward); } if (direction == FACE_BOTTOM) { vertices.Add(new Vector3(1, -1, -1) * scale + position); vertices.Add(new Vector3(-1, -1, -1) * scale + position); vertices.Add(new Vector3(1, -1, 1) * scale + position); vertices.Add(new Vector3(-1, -1, 1) * scale + position); normals.Add(Vector3.down); normals.Add(Vector3.down); normals.Add(Vector3.down); normals.Add(Vector3.down); } }