1
0

Some tweaks

GetPyramidLevel returns 0 when no layers were found, 1 for one layer etc.
Auto adjust the minY and/or maxY to 0 if the beacon is low.
This commit is contained in:
STRWarrior 2014-04-12 00:35:13 +02:00
parent eb4dd23775
commit 433bd530f3

View File

@ -20,14 +20,26 @@ cBeaconEntity::cBeaconEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld *
int cBeaconEntity::GetPyramidLevel() int cBeaconEntity::GetPyramidLevel()
{ {
cBlockArea Area; cBlockArea Area;
int MinY = GetPosY() - 4;
if (MinY < 0)
{
MinY = 0;
}
int MaxY = GetPosY() - 1;
if (MaxY < 0)
{
MaxY = 0;
}
Area.Read( Area.Read(
m_World, m_World,
GetPosX() - 4, GetPosX() - 4,
GetPosX() + 4, GetPosX() + 4,
GetPosY() - 5, MinY,
GetPosY() - 1, MaxY,
GetPosZ() - 4, GetPosZ() - 4,
GetPosZ() + 4 GetPosZ() + 4,
cBlockArea::baTypes
); );
int Layer = 1; int Layer = 1;
@ -41,14 +53,14 @@ int cBeaconEntity::GetPyramidLevel()
{ {
if (!IsMineralBlock(Area.GetRelBlockType(X, Y, Z))) if (!IsMineralBlock(Area.GetRelBlockType(X, Y, Z)))
{ {
return Layer; return Layer - 1;
} }
} }
} }
Layer++; Layer++;
} }
return Layer; return Layer - 1;
} }