123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #include "Chunk.h"
- Chunk::Chunk(int chunkX, int chunkZ) : chunkX(chunkX), chunkZ(chunkZ)
- {
- for(int i = 0; i < WORLD_HIGH; i++)
- {
- dirty[i] = true;
- }
- for(int y = 0; y < MAX_Y; y++)
- {
- for(int x = 0; x < CHUNK_SIZE; x++)
- {
- for(int z = 0; z < CHUNK_SIZE; z++)
- {
- blocks[y][x][z] = 0;
- }
- }
- }
- }
- Chunk::Chunk(const Chunk& orig)
- {
- }
- Chunk::~Chunk()
- {
- }
- void Chunk::setBlock(int x, int y, int z, unsigned short block)
- {
- if(x >= 0 && x < CHUNK_SIZE && y >= 0 && y < MAX_Y && z >= 0 && z < CHUNK_SIZE)
- {
- blocks[y][x][z] = block;
- }
- }
- unsigned short Chunk::getBlock(int x, int y, int z)
- {
- if(x >= 0 && x < CHUNK_SIZE && y >= 0 && y < MAX_Y && z >= 0 && z < CHUNK_SIZE)
- {
- return blocks[y][x][z];
- }
- return 0;
- }
- void Chunk::init()
- {
- for(int i = 0; i < WORLD_HIGH; i++)
- {
- mesh[i].init();
- }
- }
- void Chunk::renderTick(float lag)
- {
- for(int i = 0; i < WORLD_HIGH; i++)
- {
- if(dirty[i])
- {
- mesh[i].build();
- /*
- // bottom
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.125f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.125f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.125f, 0.0625f);
-
- // top
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.3125f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.3125f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.3125f, 0.0625f);
-
- // right
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
-
- // left
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
-
- // back
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.1875f, 0.0f);
-
- // front
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.25f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.25f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.25f, 0.0f);
-
- */
- }
- mesh[i].draw();
- }
- }
|