public GameObject GetChunkNeighbour(int x, int y, int z, direction dir) { Vector3 pos = new Vector3(x, y, z); DataCoordinates offsetToCheck = offsets[(int)dir]; DataCoordinates neighbourCoord = new DataCoordinates((int)pos.x + offsetToCheck.x, (int)pos.y + offsetToCheck.y, (int)pos.z + offsetToCheck.z); if (neighbourCoord.x != chunkColumnIndex.x || neighbourCoord.z != chunkColumnIndex.z) { return(WorldRef.GetChunkNeighbour(neighbourCoord.x, neighbourCoord.y, neighbourCoord.z)); } else { return(GetChunk(neighbourCoord.y)); } }
public GameObject getNeighbour(int x, int y, int z, direction dir) { Vector3 pos = new Vector3(x, y, z); DataCoordinates offsetToCheck = offsets[(int)dir]; DataCoordinates neighbourCoord = new DataCoordinates((int)pos.x + offsetToCheck.x, (int)pos.y + offsetToCheck.y, (int)pos.z + offsetToCheck.z); if (neighbourCoord.x < 0 || neighbourCoord.x >= Width || neighbourCoord.y < 0 || neighbourCoord.y >= Height || neighbourCoord.z < 0 || neighbourCoord.z >= Depth) { return(checkChunkNeighbours(x, y, z, dir)); } else { //if(y == chunkSize.y) { Debug.Log("Returning Block at: X: " + neighbourCoord.x + " Y: " + neighbourCoord.y + " Z: " + neighbourCoord.z); } return(GetBlock(neighbourCoord.x, neighbourCoord.y, neighbourCoord.z)); } }