|
@@ -79,10 +79,10 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
{
|
|
|
for(int z = 0; z < Chunk::DEPTH; z++)
|
|
|
{
|
|
|
- if(c.getBlock(x, y, z) == 1)
|
|
|
+ if(!c.getBlock(x, y, z).isEmpty())
|
|
|
{
|
|
|
// bottom
|
|
|
- if(y <= 0 || c.getBlock(x, y - 1, z) != 1)
|
|
|
+ if(y <= 0 || !c.getBlock(x, y - 1, z).isBlockingFace(Face::UP))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|
|
@@ -110,7 +110,7 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
}
|
|
|
|
|
|
// top
|
|
|
- if(y + 1 >= Chunk::HEIGHT || c.getBlock(x, y + 1, z) != 1)
|
|
|
+ if(y + 1 >= Chunk::HEIGHT || !c.getBlock(x, y + 1, z).isBlockingFace(Face::DOWN))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|
|
@@ -136,10 +136,10 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
m.addPosition(x + 0.0f, y + 1.0f, z + 1.0f);
|
|
|
m.addPosition(x + 1.0f, y + 1.0f, z + 1.0f);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// right
|
|
|
- if((x + 1 < Chunk::WIDTH && c.getBlock(x + 1, y, z) != 1) ||
|
|
|
- (x + 1 >= Chunk::WIDTH && (north == nullptr || north->getBlock(x + 1 - Chunk::WIDTH, y, z) != 1)))
|
|
|
+ if((x + 1 < Chunk::WIDTH && !c.getBlock(x + 1, y, z).isBlockingFace(Face::SOUTH)) ||
|
|
|
+ (x + 1 >= Chunk::WIDTH && (north == nullptr || !north->getBlock(x + 1 - Chunk::WIDTH, y, z).isBlockingFace(Face::SOUTH))))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|
|
@@ -165,10 +165,10 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
m.addPosition(x + 1.0f, y + 1.0f, z + 0.0f);
|
|
|
m.addPosition(x + 1.0f, y + 1.0f, z + 1.0f);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// left
|
|
|
- if((x - 1 >= 0 && c.getBlock(x - 1, y, z) != 1) ||
|
|
|
- (x - 1 < 0 && (south == nullptr || south->getBlock(x - 1 + Chunk::WIDTH, y, z) != 1)))
|
|
|
+ if((x - 1 >= 0 && !c.getBlock(x - 1, y, z).isBlockingFace(Face::NORTH)) ||
|
|
|
+ (x - 1 < 0 && (south == nullptr || !south->getBlock(x - 1 + Chunk::WIDTH, y, z).isBlockingFace(Face::NORTH))))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|
|
@@ -196,8 +196,8 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
}
|
|
|
|
|
|
// back
|
|
|
- if((z + 1 < Chunk::DEPTH && c.getBlock(x, y, z + 1) != 1) ||
|
|
|
- (z + 1 >= Chunk::DEPTH && (east == nullptr || east->getBlock(x, y, z + 1 - Chunk::DEPTH) != 1)))
|
|
|
+ if((z + 1 < Chunk::DEPTH && !c.getBlock(x, y, z + 1).isBlockingFace(Face::WEST)) ||
|
|
|
+ (z + 1 >= Chunk::DEPTH && (east == nullptr || !east->getBlock(x, y, z + 1 - Chunk::DEPTH).isBlockingFace(Face::WEST))))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|
|
@@ -225,8 +225,8 @@ void ChunkRenderer::buildChunk(int partionY, Chunk& c, Chunk* north, Chunk* east
|
|
|
}
|
|
|
|
|
|
// front
|
|
|
- if((z - 1 >= 0 && c.getBlock(x, y, z - 1) != 1) ||
|
|
|
- (z - 1 < 0 && (west == nullptr || west->getBlock(x, y, z - 1 + Chunk::DEPTH) != 1)))
|
|
|
+ if((z - 1 >= 0 && !c.getBlock(x, y, z - 1).isBlockingFace(Face::EAST)) ||
|
|
|
+ (z - 1 < 0 && (west == nullptr || !west->getBlock(x, y, z - 1 + Chunk::DEPTH).isBlockingFace(Face::EAST))))
|
|
|
{
|
|
|
for(int i = 0; i < 6; i++)
|
|
|
{
|