Still dealing with a very strange issue (Mind fixing it, Kacperks?)

This commit is contained in:
2022-10-30 15:43:20 -04:00
parent 4c76fd1144
commit 3aa203bac9
5 changed files with 41 additions and 39 deletions

View File

@@ -2,6 +2,7 @@
#define MAPBLOCK_H
#include "Base.h"
#include <math.h>
#include <cstdio>
@@ -18,6 +19,10 @@ class MapBlock
}
int getNodeAt(int x, int y, int z) // Deprecated; only used internally.
{
return x < 16 && z < 16 && x >= 0 && z >= 0 ? mapBlock[256 * y + z * 16 + x] : 0;
}
void addNode(int id, int meta, int x, int y, int z)
{
@@ -58,15 +63,18 @@ class BlockManager
{
//if(x < 16 && x >= 0 && z < 16 && z >= 0)
//{
if(x < 0 || z < 0)
{
return 0;
}
Position2D block = BlockUtilities::getBlockFromNodeCoordinates(x, z);
return mapBlocks[block.x][block.z].mapBlock[256 * y + z * 16 + x];
// else
// {
//return mapBlocks[BlockUtilities::getBlockFromNodeCoordinates(x, z).x][BlockUtilities::getBlockFromNodeCoordinates(x, z).z];
//return 0;
//}
//printf("\n\nold x: %i, old z: %i", x, z);
//int localX = x - block.x * 16;
//int localZ = z - block.z * 16;
//printf("\nnew x: %i, new z: %i", x, z);
//return mapBlocks[block.x][block.z].mapBlock[256 * y + localZ * 16 + localX];
return mapBlocks[block.x][block.z].getNodeAt(x, y, z);
}
bool isAir(int x, int y, int z)

View File

@@ -19,13 +19,13 @@ class NodeRenderer
int renderNode(int x, int y, int z)
{
//Position2D block = BlockUtilities::getBlockFromNodeCoordinates(x, z); // The block the node at (x, y, z) is in
Position2D block = BlockUtilities::getBlockFromNodeCoordinates(x, z); // The block the node at (x, y, z) is in
glColor3f(1.0F, 1.0F, 1.0F);
glBegin(GL_QUADS);
// Front
if(blockManager.getNodeAt(x, y, z - 1))
if(blockManager.mapBlocks[block.x][block.z].getNodeAt(x - block.x * 16, y, z - block.z * 16 - 1) == 0)
{
glTexCoord2f(.0F, .0F);
glVertex3f(x + .0F, y + 1.0F, z + .0F);
@@ -42,11 +42,10 @@ class NodeRenderer
glColor3f(1.0F, 1.0F, 1.0F);
}
// Back
if(blockManager.getNodeAt(x, y, z + 1))
if(blockManager.mapBlocks[block.x][block.z].getNodeAt(x - block.x * 16, y, z - block.z * 16 + 1) == 0)
{
glTexCoord2f(.0F, .0F);
glVertex3f(x + .0F, y + 1.0F, z + 1.0F);
@@ -63,7 +62,7 @@ class NodeRenderer
}
// Right
if(blockManager.getNodeAt(x + 1, y, z));
if(blockManager.mapBlocks[block.x][block.z].getNodeAt(x - block.x * 16 + 1, y, z - block.z * 16) == 0);
{
glTexCoord2f(1.0F, .0F);
glVertex3f(x + 1.0F, y + 1.0F, z + .0F);
@@ -80,10 +79,8 @@ class NodeRenderer
glVertex3f(x + 1.0F, y + 1.0F, z + 1.0F);
}
// Left
if(blockManager.getNodeAt(x - 1, y, z));
if(blockManager.mapBlocks[block.x][block.z].getNodeAt(x - block.x * 16 - 1, y, z - block.z * 16) == 0);
{
glTexCoord2f(1.0F, .0F);
glVertex3f(x + .0F, y + 1.0F, z + .0F);
@@ -101,7 +98,7 @@ class NodeRenderer
}
// Bottom
if(blockManager.getNodeAt(x, y - 1, z));
if(blockManager.getNodeAt(x, y - 1, z) == 0);
{
glTexCoord2f(.0F, .0F);
glVertex3f(x + 1.0F, y + .0F, z + .0F);
@@ -117,7 +114,7 @@ class NodeRenderer
}
// Top
if(blockManager.getNodeAt(x, y + 1, z));
/*if(blockManager.mapBlocks[block.x][block.z].getNodeAt(x - block.x * 16, y + 1, z - block.z * 16) == 0);
{
glTexCoord2f(.0F, .0F);
glVertex3f(x + 1.0F, y + 1.0F, z + .0F);
@@ -130,7 +127,7 @@ class NodeRenderer
glTexCoord2f(.0F, 1.0F);
glVertex3f(x + 1.0F, y + 1.0F, z + 1.0F);
}
}*/
glEnd();
return 1;