From bdcca4767c77ccd48b71fa6a5277d72171129da8 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 27 Jan 2012 01:40:57 +0200 Subject: Make mapgen generate stuff in chunks of 3^3 mapblocks --- src/mapgen.cpp | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/mapgen.cpp') diff --git a/src/mapgen.cpp b/src/mapgen.cpp index fe2ce13f5..0b8781f5a 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -1491,23 +1491,34 @@ void make_block(BlockMakeData *data) assert(data->vmanip); assert(data->nodedef); + assert(data->blockpos_requested.X >= data->blockpos_min.X && + data->blockpos_requested.Y >= data->blockpos_min.Y && + data->blockpos_requested.Z >= data->blockpos_min.Z); + assert(data->blockpos_requested.X <= data->blockpos_max.X && + data->blockpos_requested.Y <= data->blockpos_max.Y && + data->blockpos_requested.Z <= data->blockpos_max.Z); INodeDefManager *ndef = data->nodedef; - v3s16 blockpos = data->blockpos; + // Hack: use minimum block coordinates for old code that assumes + // a single block + v3s16 blockpos = data->blockpos_min; /*dstream<<"makeBlock(): ("<blockpos_min; + v3s16 blockpos_max = data->blockpos_max; + v3s16 blockpos_full_min = blockpos_min - v3s16(1,1,1); + v3s16 blockpos_full_max = blockpos_max + v3s16(1,1,1); + ManualMapVoxelManipulator &vmanip = *(data->vmanip); - v3s16 blockpos_min = blockpos - v3s16(1,1,1); - v3s16 blockpos_max = blockpos + v3s16(1,1,1); // Area of center block - v3s16 node_min = blockpos*MAP_BLOCKSIZE; - v3s16 node_max = (blockpos+v3s16(1,1,1))*MAP_BLOCKSIZE-v3s16(1,1,1); + v3s16 node_min = blockpos_min*MAP_BLOCKSIZE; + v3s16 node_max = (blockpos_max+v3s16(1,1,1))*MAP_BLOCKSIZE-v3s16(1,1,1); // Full allocated area - v3s16 full_node_min = (blockpos-1)*MAP_BLOCKSIZE; - v3s16 full_node_max = (blockpos+2)*MAP_BLOCKSIZE-v3s16(1,1,1); + v3s16 full_node_min = (blockpos_min-1)*MAP_BLOCKSIZE; + v3s16 full_node_max = (blockpos_max+2)*MAP_BLOCKSIZE-v3s16(1,1,1); // Area of a block double block_area_nodes = MAP_BLOCKSIZE*MAP_BLOCKSIZE; -- cgit v1.2.3