Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void insertFace(int x, int y, int z, int side, int block) {
- float u = (float)(((block - 1) % 16) * 16) / 256;
- float v = (float)(((block - 1) / 16) * 16) / 256;
- float u2 = (float)((((block - 1) % 16) * 16) + 16) / 256;
- float v2 = (float)((((block - 1) / 16) * 16) + 16) / 256;
- vertices.push_back(quadThingy[side * 18] + x);
- vertices.push_back(quadThingy[(side * 18) + 1] + y);
- vertices.push_back(quadThingy[(side * 18) + 2] + z);
- vertices.push_back(u);
- vertices.push_back(v2);
- vertices.push_back(quadThingy[(side * 18) + 3] + x);
- vertices.push_back(quadThingy[(side * 18) + 4] + y);
- vertices.push_back(quadThingy[(side * 18) + 5] + z);
- vertices.push_back(u);
- vertices.push_back(v);
- vertices.push_back(quadThingy[(side * 18) + 6] + x);
- vertices.push_back(quadThingy[(side * 18) + 7] + y);
- vertices.push_back(quadThingy[(side * 18) + 8] + z);
- vertices.push_back(u2);
- vertices.push_back(v);
- vertices.push_back(quadThingy[(side * 18) + 9] + x);
- vertices.push_back(quadThingy[(side * 18) + 10] + y);
- vertices.push_back(quadThingy[(side * 18) + 11] + z);
- vertices.push_back(u);
- vertices.push_back(v2);
- vertices.push_back(quadThingy[(side * 18) + 12] + x);
- vertices.push_back(quadThingy[(side * 18) + 13] + y);
- vertices.push_back(quadThingy[(side * 18) + 14] + z);
- vertices.push_back(u2);
- vertices.push_back(v);
- vertices.push_back(quadThingy[(side * 18) + 15] + x);
- vertices.push_back(quadThingy[(side * 18) + 16] + y);
- vertices.push_back(quadThingy[(side * 18) + 17] + z);
- vertices.push_back(u2);
- vertices.push_back(v2);
- }
- void generateWorldMesh() {
- vertices.clear();
- for (int x = 1; x < SIZE - 1; x++) {
- for (int y = 1; y < 7; y++) {
- for (int z = 1; z < SIZE - 1; z++) {
- if (blocks[x][y][z] != 0) {
- if (blocks[x][y][z - 1] == 0) {
- insertFace(x, y, z, 0, blocks[x][y][z]);
- }
- if (blocks[x][y][z + 1] == 0) {
- insertFace(x, y, z, 1, blocks[x][y][z]);
- }
- if (blocks[x - 1][y][z] == 0) {
- insertFace(x, y, z, 2, blocks[x][y][z]);
- }
- if (blocks[x + 1][y][z] == 0) {
- insertFace(x, y, z, 3, blocks[x][y][z]);
- }
- if (blocks[x][y + 1][z] == 0) {
- insertFace(x, y, z, 4, blocks[x][y][z]);
- }
- if (blocks[x][y - 1][z] == 0) {
- insertFace(x, y, z, 5, blocks[x][y][z]);
- }
- }
- }
- }
- }
- for (int x = 0; x < SIZE; x++) {
- for (int y = 0; y < 8; y++) {
- if (blocks[x][y][0] != 0) {
- insertFace(x, y, 0, 0, blocks[x][y][0]);
- insertFace(x, y, 0, 2, blocks[x][y][0]);
- insertFace(x, y, 0, 3, blocks[x][y][0]);
- insertFace(x, y, 0, 4, blocks[x][y][0]);
- insertFace(x, y, 0, 5, blocks[x][y][0]);
- }
- if (blocks[x][y][SIZE - 1] != 0) {
- insertFace(x, y, SIZE - 1, 1, blocks[x][y][SIZE - 1]);
- insertFace(x, y, SIZE - 1, 2, blocks[x][y][SIZE - 1]);
- insertFace(x, y, SIZE - 1, 3, blocks[x][y][SIZE - 1]);
- insertFace(x, y, SIZE - 1, 4, blocks[x][y][SIZE - 1]);
- insertFace(x, y, SIZE - 1, 5, blocks[x][y][SIZE - 1]);
- }
- }
- }
- for (int x = 0; x < SIZE; x++) {
- for (int z = 0; z < SIZE; z++) {
- if (blocks[x][0][z] != 0) {
- insertFace(x, 0, z, 0, blocks[x][0][z]);
- insertFace(x, 0, z, 1, blocks[x][0][z]);
- insertFace(x, 0, z, 2, blocks[x][0][z]);
- insertFace(x, 0, z, 3, blocks[x][0][z]);
- insertFace(x, 0, z, 5, blocks[x][0][z]);
- }
- if (blocks[x][7][z] != 0) {
- insertFace(x, 7, z, 0, blocks[x][7][z]);
- insertFace(x, 7, z, 1, blocks[x][7][z]);
- insertFace(x, 7, z, 2, blocks[x][7][z]);
- insertFace(x, 7, z, 3, blocks[x][7][z]);
- insertFace(x, 7, z, 4, blocks[x][7][z]);
- }
- }
- }
- for (int y = 0; y < 8; y++) {
- for (int z = 0; z < SIZE; z++) {
- if (blocks[0][y][z] != 0) {
- insertFace(0, y, z, 0, blocks[0][y][z]);
- insertFace(0, y, z, 1, blocks[0][y][z]);
- insertFace(0, y, z, 2, blocks[0][y][z]);
- insertFace(0, y, z, 4, blocks[0][y][z]);
- insertFace(0, y, z, 5, blocks[0][y][z]);
- }
- if (blocks[SIZE - 1][y][z] != 0) {
- insertFace(SIZE - 1, y, z, 0, blocks[SIZE - 1][y][z]);
- insertFace(SIZE - 1, y, z, 1, blocks[SIZE - 1][y][z]);
- insertFace(SIZE - 1, y, z, 3, blocks[SIZE - 1][y][z]);
- insertFace(SIZE - 1, y, z, 4, blocks[SIZE - 1][y][z]);
- insertFace(SIZE - 1, y, z, 5, blocks[SIZE - 1][y][z]);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement