Report world coordinate limits and map heigth and depth limits with --verbose

master
Rogier 2014-03-23 20:52:58 +01:00
parent 6420eb48fb
commit 5296f9f9e7
1 changed files with 53 additions and 4 deletions

View File

@ -330,6 +330,10 @@ void TileGenerator::openDb(const std::string &input)
void TileGenerator::loadBlocks()
{
int mapXMin, mapXMax;
int mapYMin, mapYMax;
int mapZMin, mapZMax;
int geomYMin, geomYMax;
if (verboseCoordinates) {
cout << "Requested Geometry: "
<< m_reqXMin*16 << "," << m_reqYMin*16+m_reqYMinNode << "," << m_reqZMin*16 << ".."
@ -339,10 +343,45 @@ void TileGenerator::loadBlocks()
<< m_reqXMax << "," << m_reqYMax << "," << m_reqZMax
<< ")\n";
}
mapXMin = INT_MAX/16-1;
mapXMax = -INT_MIN/16+1;
mapYMin = INT_MAX/16-1;
mapYMax = -INT_MIN/16+1;
mapZMin = INT_MAX/16-1;
mapZMax = -INT_MIN/16+1;
geomYMin = INT_MAX/16-1;
geomYMax = -INT_MIN/16+1;
std::vector<int64_t> vec = m_db->getBlockPos();
for(unsigned int i = 0; i < vec.size(); i++) {
BlockPos pos = decodeBlockPos(vec[i]);
if (pos.x < m_reqXMin || pos.x > m_reqXMax || pos.y < m_reqYMin || pos.y > m_reqYMax || pos.z < m_reqZMin || pos.z > m_reqZMax) {
if (pos.x < mapXMin) {
mapXMin = pos.x;
}
if (pos.x > mapXMax) {
mapXMax = pos.x;
}
if (pos.y < mapYMin) {
mapYMin = pos.y;
}
if (pos.y > mapYMax) {
mapYMax = pos.y;
}
if (pos.z < mapZMin) {
mapZMin = pos.z;
}
if (pos.z > mapZMax) {
mapZMax = pos.z;
}
if (pos.x < m_reqXMin || pos.x > m_reqXMax || pos.z < m_reqZMin || pos.z > m_reqZMax) {
continue;
}
if (pos.y < geomYMin) {
geomYMin = pos.y;
}
if (pos.y > geomYMax) {
geomYMax = pos.y;
}
if (pos.y < m_reqYMin || pos.y > m_reqYMax) {
continue;
}
if (pos.y < m_yMin) {
@ -365,9 +404,18 @@ void TileGenerator::loadBlocks()
}
m_positions.push_back(std::pair<int, int>(pos.x, pos.z));
}
if (verboseCoordinates) {
cout << "World Geometry: "
<< mapXMin*16 << "," << mapYMin*16 << "," << mapZMin*16 << ".."
<< mapXMax*16+15 << "," << mapYMax*16+15 << "," << mapZMax*16+15
<< " ("
<< mapXMin << "," << mapYMin << "," << mapZMin << ".."
<< mapXMax << "," << mapYMax << "," << mapZMax
<< ")\n";
}
if (m_forceGeom) {
if (verboseCoordinates) {
cout << "Minimal Geometry: "
cout << "Minimal Map Geometry: "
<< m_xMin*16 << "," << m_yMin*16+m_reqYMinNode << "," << m_zMin*16 << ".."
<< m_xMax*16+15 << "," << m_yMax*16+m_reqYMaxNode << "," << m_zMax*16+15
<< " ("
@ -381,6 +429,7 @@ void TileGenerator::loadBlocks()
m_zMax = m_reqZMax;
}
if (verboseCoordinates) {
cout << "Map Vertical Limits: x," << geomYMin*16 << ",z..x," << geomYMax*16+15 << ",z (x," << geomYMin << ",z..x," << geomYMax << ",z)\n";
cout << "Map Output Geometry: "
<< m_xMin*16 << "," << m_yMin*16+m_reqYMinNode << "," << m_zMin*16 << ".."
<< m_xMax*16+15 << "," << m_yMax*16+m_reqYMaxNode << "," << m_zMax*16+15