1
0

Added cCuboid:Assign() and cChunkDesc:FloorRelCuboid()

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1333 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2013-03-31 16:22:35 +00:00
parent 387d19a5da
commit 394933fc47
6 changed files with 204 additions and 2 deletions

View File

@@ -450,6 +450,45 @@ void cChunkDesc::ReplaceRelCuboid(
void cChunkDesc::FloorRelCuboid(
int a_MinX, int a_MaxX,
int a_MinY, int a_MaxY,
int a_MinZ, int a_MaxZ,
BLOCKTYPE a_DstType, NIBBLETYPE a_DstMeta
)
{
int MinX = std::max(a_MinX, 0);
int MinY = std::max(a_MinY, 0);
int MinZ = std::max(a_MinZ, 0);
int MaxX = std::min(a_MaxX, cChunkDef::Width - 1);
int MaxY = std::min(a_MaxY, cChunkDef::Height - 1);
int MaxZ = std::min(a_MaxZ, cChunkDef::Width - 1);
for (int y = MinY; y <= MaxY; y++)
{
for (int z = MinZ; z <= MaxZ; z++)
{
for (int x = MinX; x <= MaxX; x++)
{
switch (GetBlockType(x, y, z))
{
case E_BLOCK_AIR:
case E_BLOCK_WATER:
case E_BLOCK_STATIONARY_WATER:
{
SetBlockTypeMeta(x, y, z, a_DstType, a_DstMeta);
break;
}
} // switch (GetBlockType)
} // for x
} // for z
} // for y
}
void cChunkDesc::CompressBlockMetas(cChunkDef::BlockNibbles & a_DestMetas)
{
const NIBBLETYPE * AreaMetas = m_BlockArea.GetBlockMetas();