diff options
author | Mattes D <github@xoft.cz> | 2014-10-28 22:07:09 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-10-28 22:07:09 +0100 |
commit | 2f0abb73c94eb896c956ceb0375d2e72065d95d5 (patch) | |
tree | 2cf8a72a9aaf59fa218f5978045412a47662d52b /Tools/QtBiomeVisualiser/Region.cpp | |
parent | Forgotten m_SendChunksMediumPriority.empty() check. (diff) | |
parent | QtBiomeVisualiser: Reduced memory usage. (diff) | |
download | cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar.gz cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar.bz2 cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar.lz cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar.xz cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.tar.zst cuberite-2f0abb73c94eb896c956ceb0375d2e72065d95d5.zip |
Diffstat (limited to 'Tools/QtBiomeVisualiser/Region.cpp')
-rw-r--r-- | Tools/QtBiomeVisualiser/Region.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Tools/QtBiomeVisualiser/Region.cpp b/Tools/QtBiomeVisualiser/Region.cpp new file mode 100644 index 000000000..d8a0a2f76 --- /dev/null +++ b/Tools/QtBiomeVisualiser/Region.cpp @@ -0,0 +1,72 @@ + +#include "Globals.h" +#include "Region.h" + + + + + +Region::Region() +{ +} + + + + + +Chunk & Region::getRelChunk(int a_RelChunkX, int a_RelChunkZ) +{ + ASSERT(a_RelChunkX >= 0); + ASSERT(a_RelChunkZ >= 0); + ASSERT(a_RelChunkX < 32); + ASSERT(a_RelChunkZ < 32); + + return m_Chunks[a_RelChunkX + a_RelChunkZ * 32]; +} + + + + + +int Region::getRelBiome(int a_RelBlockX, int a_RelBlockZ) +{ + ASSERT(a_RelBlockX >= 0); + ASSERT(a_RelBlockZ >= 0); + ASSERT(a_RelBlockX < 512); + ASSERT(a_RelBlockZ < 512); + + int chunkX = a_RelBlockX / 16; + int chunkZ = a_RelBlockZ / 16; + Chunk & chunk = m_Chunks[chunkX + 32 * chunkZ]; + if (chunk.isValid()) + { + return chunk.getBiome(a_RelBlockX - 16 * chunkX, a_RelBlockZ - 16 * chunkZ); + } + else + { + return biInvalidBiome; + } +} + + + + +void Region::blockToRegion(int a_BlockX, int a_BlockZ, int & a_RegionX, int & a_RegionZ) +{ + a_RegionX = static_cast<int>(std::floor(static_cast<float>(a_BlockX) / 512)); + a_RegionZ = static_cast<int>(std::floor(static_cast<float>(a_BlockZ) / 512)); +} + + + + + +void Region::chunkToRegion(int a_ChunkX, int a_ChunkZ, int & a_RegionX, int & a_RegionZ) +{ + a_RegionX = static_cast<int>(std::floor(static_cast<float>(a_ChunkX) / 32)); + a_RegionZ = static_cast<int>(std::floor(static_cast<float>(a_ChunkZ) / 32)); +} + + + + |