Advertisement
atm959

Yikes

May 28th, 2019
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.27 KB | None | 0 0
  1. void insertFace(int x, int y, int z, int side, int block) {
  2.     float u = (float)(((block - 1) % 16) * 16) / 256;
  3.     float v = (float)(((block - 1) / 16) * 16) / 256;
  4.     float u2 = (float)((((block - 1) % 16) * 16) + 16) / 256;
  5.     float v2 = (float)((((block - 1) / 16) * 16) + 16) / 256;
  6.     vertices.push_back(quadThingy[side * 18] + x);
  7.     vertices.push_back(quadThingy[(side * 18) + 1] + y);
  8.     vertices.push_back(quadThingy[(side * 18) + 2] + z);
  9.     vertices.push_back(u);
  10.     vertices.push_back(v2);
  11.     vertices.push_back(quadThingy[(side * 18) + 3] + x);
  12.     vertices.push_back(quadThingy[(side * 18) + 4] + y);
  13.     vertices.push_back(quadThingy[(side * 18) + 5] + z);
  14.     vertices.push_back(u);
  15.     vertices.push_back(v);
  16.     vertices.push_back(quadThingy[(side * 18) + 6] + x);
  17.     vertices.push_back(quadThingy[(side * 18) + 7] + y);
  18.     vertices.push_back(quadThingy[(side * 18) + 8] + z);
  19.     vertices.push_back(u2);
  20.     vertices.push_back(v);
  21.     vertices.push_back(quadThingy[(side * 18) + 9] + x);
  22.     vertices.push_back(quadThingy[(side * 18) + 10] + y);
  23.     vertices.push_back(quadThingy[(side * 18) + 11] + z);
  24.     vertices.push_back(u);
  25.     vertices.push_back(v2);
  26.     vertices.push_back(quadThingy[(side * 18) + 12] + x);
  27.     vertices.push_back(quadThingy[(side * 18) + 13] + y);
  28.     vertices.push_back(quadThingy[(side * 18) + 14] + z);
  29.     vertices.push_back(u2);
  30.     vertices.push_back(v);
  31.     vertices.push_back(quadThingy[(side * 18) + 15] + x);
  32.     vertices.push_back(quadThingy[(side * 18) + 16] + y);
  33.     vertices.push_back(quadThingy[(side * 18) + 17] + z);
  34.     vertices.push_back(u2);
  35.     vertices.push_back(v2);
  36. }
  37.  
  38. void generateWorldMesh() {
  39.     vertices.clear();
  40.     for (int x = 1; x < SIZE - 1; x++) {
  41.         for (int y = 1; y < 7; y++) {
  42.             for (int z = 1; z < SIZE - 1; z++) {
  43.                 if (blocks[x][y][z] != 0) {
  44.                     if (blocks[x][y][z - 1] == 0) {
  45.                         insertFace(x, y, z, 0, blocks[x][y][z]);
  46.                     }
  47.                     if (blocks[x][y][z + 1] == 0) {
  48.                         insertFace(x, y, z, 1, blocks[x][y][z]);
  49.                     }
  50.                     if (blocks[x - 1][y][z] == 0) {
  51.                         insertFace(x, y, z, 2, blocks[x][y][z]);
  52.                     }
  53.                     if (blocks[x + 1][y][z] == 0) {
  54.                         insertFace(x, y, z, 3, blocks[x][y][z]);
  55.                     }
  56.                     if (blocks[x][y + 1][z] == 0) {
  57.                         insertFace(x, y, z, 4, blocks[x][y][z]);
  58.                     }
  59.                     if (blocks[x][y - 1][z] == 0) {
  60.                         insertFace(x, y, z, 5, blocks[x][y][z]);
  61.                     }
  62.                 }
  63.             }
  64.         }
  65.     }
  66.  
  67.     for (int x = 0; x < SIZE; x++) {
  68.         for (int y = 0; y < 8; y++) {
  69.             if (blocks[x][y][0] != 0) {
  70.                 insertFace(x, y, 0, 0, blocks[x][y][0]);
  71.                 insertFace(x, y, 0, 2, blocks[x][y][0]);
  72.                 insertFace(x, y, 0, 3, blocks[x][y][0]);
  73.                 insertFace(x, y, 0, 4, blocks[x][y][0]);
  74.                 insertFace(x, y, 0, 5, blocks[x][y][0]);
  75.             }
  76.             if (blocks[x][y][SIZE - 1] != 0) {
  77.                 insertFace(x, y, SIZE - 1, 1, blocks[x][y][SIZE - 1]);
  78.                 insertFace(x, y, SIZE - 1, 2, blocks[x][y][SIZE - 1]);
  79.                 insertFace(x, y, SIZE - 1, 3, blocks[x][y][SIZE - 1]);
  80.                 insertFace(x, y, SIZE - 1, 4, blocks[x][y][SIZE - 1]);
  81.                 insertFace(x, y, SIZE - 1, 5, blocks[x][y][SIZE - 1]);
  82.             }
  83.         }
  84.     }
  85.  
  86.     for (int x = 0; x < SIZE; x++) {
  87.         for (int z = 0; z < SIZE; z++) {
  88.             if (blocks[x][0][z] != 0) {
  89.                 insertFace(x, 0, z, 0, blocks[x][0][z]);
  90.                 insertFace(x, 0, z, 1, blocks[x][0][z]);
  91.                 insertFace(x, 0, z, 2, blocks[x][0][z]);
  92.                 insertFace(x, 0, z, 3, blocks[x][0][z]);
  93.                 insertFace(x, 0, z, 5, blocks[x][0][z]);
  94.             }
  95.             if (blocks[x][7][z] != 0) {
  96.                 insertFace(x, 7, z, 0, blocks[x][7][z]);
  97.                 insertFace(x, 7, z, 1, blocks[x][7][z]);
  98.                 insertFace(x, 7, z, 2, blocks[x][7][z]);
  99.                 insertFace(x, 7, z, 3, blocks[x][7][z]);
  100.                 insertFace(x, 7, z, 4, blocks[x][7][z]);
  101.             }
  102.         }
  103.     }
  104.  
  105.     for (int y = 0; y < 8; y++) {
  106.         for (int z = 0; z < SIZE; z++) {
  107.             if (blocks[0][y][z] != 0) {
  108.                 insertFace(0, y, z, 0, blocks[0][y][z]);
  109.                 insertFace(0, y, z, 1, blocks[0][y][z]);
  110.                 insertFace(0, y, z, 2, blocks[0][y][z]);
  111.                 insertFace(0, y, z, 4, blocks[0][y][z]);
  112.                 insertFace(0, y, z, 5, blocks[0][y][z]);
  113.             }
  114.             if (blocks[SIZE - 1][y][z] != 0) {
  115.                 insertFace(SIZE - 1, y, z, 0, blocks[SIZE - 1][y][z]);
  116.                 insertFace(SIZE - 1, y, z, 1, blocks[SIZE - 1][y][z]);
  117.                 insertFace(SIZE - 1, y, z, 3, blocks[SIZE - 1][y][z]);
  118.                 insertFace(SIZE - 1, y, z, 4, blocks[SIZE - 1][y][z]);
  119.                 insertFace(SIZE - 1, y, z, 5, blocks[SIZE - 1][y][z]);
  120.             }
  121.         }
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement