Fixed style consistency.
This commit is contained in:
parent
d790a45c50
commit
729cc7f6ff
119
src/Chunk.cpp
119
src/Chunk.cpp
@ -464,7 +464,7 @@ void cChunk::CollectMobCensus(cMobCensus& toFill)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cChunk::getThreeRandomNumber(int& a_X, int& a_Y, int& a_Z,int a_MaxX, int a_MaxY, int a_MaxZ)
|
void cChunk::GetThreeRandomNumbers(int & a_X, int & a_Y, int & a_Z,int a_MaxX, int a_MaxY, int a_MaxZ)
|
||||||
{
|
{
|
||||||
ASSERT(a_MaxX * a_MaxY * a_MaxZ * 8 < 0x00ffffff);
|
ASSERT(a_MaxX * a_MaxY * a_MaxZ * 8 < 0x00ffffff);
|
||||||
int Random = m_World->GetTickRandomNumber(0x00ffffff);
|
int Random = m_World->GetTickRandomNumber(0x00ffffff);
|
||||||
@ -480,12 +480,12 @@ void cChunk::getThreeRandomNumber(int& a_X, int& a_Y, int& a_Z,int a_MaxX, int a
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cChunk::getRandomBlockCoords(int& a_X, int& a_Y, int& a_Z)
|
void cChunk::GetRandomBlockCoords(int & a_X, int & a_Y, int & a_Z)
|
||||||
{
|
{
|
||||||
// MG TODO : check if this kind of optimization (only one random call) is still needed
|
// MG TODO : check if this kind of optimization (only one random call) is still needed
|
||||||
// MG TODO : if so propagate it
|
// MG TODO : if so propagate it
|
||||||
|
|
||||||
getThreeRandomNumber(a_X, a_Y, a_Z, Width, Height-2, Width);
|
GetThreeRandomNumbers(a_X, a_Y, a_Z, Width, Height - 2, Width);
|
||||||
a_Y++;
|
a_Y++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,65 +495,68 @@ void cChunk::getRandomBlockCoords(int& a_X, int& a_Y, int& a_Z)
|
|||||||
|
|
||||||
void cChunk::SpawnMobs(cMobSpawner& a_MobSpawner)
|
void cChunk::SpawnMobs(cMobSpawner& a_MobSpawner)
|
||||||
{
|
{
|
||||||
int Center_X,Center_Y,Center_Z;
|
int CenterX, CenterY, CenterZ;
|
||||||
getRandomBlockCoords(Center_X,Center_Y,Center_Z);
|
GetRandomBlockCoords(CenterX, CenterY, CenterZ);
|
||||||
|
|
||||||
BLOCKTYPE PackCenterBlock = GetBlock(Center_X, Center_Y, Center_Z);
|
BLOCKTYPE PackCenterBlock = GetBlock(CenterX, CenterY, CenterZ);
|
||||||
if (a_MobSpawner.CheckPackCenter(PackCenterBlock))
|
if (!a_MobSpawner.CheckPackCenter(PackCenterBlock))
|
||||||
{
|
{
|
||||||
a_MobSpawner.NewPack();
|
return;
|
||||||
int NumberOfTries = 0;
|
|
||||||
int NumberOfSuccess = 0;
|
|
||||||
int MaxNbOfSuccess = 4; // this can be changed during the process for Wolves and Ghass
|
|
||||||
while (NumberOfTries < 12 && NumberOfSuccess < MaxNbOfSuccess)
|
|
||||||
{
|
|
||||||
const int HorizontalRange = 20; // MG TODO : relocate
|
|
||||||
const int VerticalRange = 0; // MG TODO : relocate
|
|
||||||
int Try_X, Try_Y, Try_Z;
|
|
||||||
getThreeRandomNumber(Try_X, Try_Y, Try_Z, 2*HorizontalRange+1 , 2*VerticalRange+1 , 2*HorizontalRange+1);
|
|
||||||
Try_X -= HorizontalRange;
|
|
||||||
Try_Y -= VerticalRange;
|
|
||||||
Try_Z -= HorizontalRange;
|
|
||||||
Try_X += Center_X;
|
|
||||||
Try_Y += Center_Y;
|
|
||||||
Try_Z += Center_Z;
|
|
||||||
|
|
||||||
ASSERT(Try_Y > 0);
|
|
||||||
ASSERT(Try_Y < cChunkDef::Height-1);
|
|
||||||
|
|
||||||
EMCSBiome Biome = m_ChunkMap->GetBiomeAt (Try_X, Try_Z);
|
|
||||||
// MG TODO :
|
|
||||||
// Moon cycle (for slime)
|
|
||||||
// check player and playerspawn presence < 24 blocks
|
|
||||||
// check mobs presence on the block
|
|
||||||
|
|
||||||
// MG TODO : check that "Level" really means Y
|
|
||||||
|
|
||||||
/*
|
|
||||||
NIBBLETYPE SkyLight = 0;
|
|
||||||
|
|
||||||
NIBBLETYPE BlockLight = 0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (IsLightValid())
|
|
||||||
{
|
|
||||||
cEntity* newMob = a_MobSpawner.TryToSpawnHere(this, Try_X, Try_Y, Try_Z, Biome, MaxNbOfSuccess);
|
|
||||||
if (newMob)
|
|
||||||
{
|
|
||||||
int WorldX, WorldY, WorldZ;
|
|
||||||
PositionToWorldPosition(Try_X, Try_Y, Try_Z, WorldX, WorldY, WorldZ);
|
|
||||||
double ActualX = WorldX + 0.5;
|
|
||||||
double ActualZ = WorldZ + 0.5;
|
|
||||||
newMob->SetPosition(ActualX, WorldY, ActualZ);
|
|
||||||
LOGD("Spawning %s #%i at %d,%d,%d",newMob->GetClass(),newMob->GetUniqueID(),WorldX, WorldY, WorldZ);
|
|
||||||
NumberOfSuccess++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NumberOfTries++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a_MobSpawner.NewPack();
|
||||||
|
int NumberOfTries = 0;
|
||||||
|
int NumberOfSuccess = 0;
|
||||||
|
int MaxNbOfSuccess = 4; // This can be changed during the process for Wolves and Ghasts
|
||||||
|
while ((NumberOfTries < 12) && (NumberOfSuccess < MaxNbOfSuccess))
|
||||||
|
{
|
||||||
|
const int HorizontalRange = 20; // MG TODO : relocate
|
||||||
|
const int VerticalRange = 0; // MG TODO : relocate
|
||||||
|
int TryX, TryY, TryZ;
|
||||||
|
GetThreeRandomNumbers(TryX, TryY, TryZ, 2 * HorizontalRange + 1, 2 * VerticalRange + 1, 2 * HorizontalRange + 1);
|
||||||
|
TryX -= HorizontalRange;
|
||||||
|
TryY -= VerticalRange;
|
||||||
|
TryZ -= HorizontalRange;
|
||||||
|
TryX += CenterX;
|
||||||
|
TryY += CenterY;
|
||||||
|
TryZ += CenterZ;
|
||||||
|
|
||||||
|
ASSERT(TryY > 0);
|
||||||
|
ASSERT(TryY < cChunkDef::Height - 1);
|
||||||
|
|
||||||
|
EMCSBiome Biome = m_ChunkMap->GetBiomeAt(TryX, TryZ);
|
||||||
|
// MG TODO :
|
||||||
|
// Moon cycle (for slime)
|
||||||
|
// check player and playerspawn presence < 24 blocks
|
||||||
|
// check mobs presence on the block
|
||||||
|
|
||||||
|
// MG TODO : check that "Level" really means Y
|
||||||
|
|
||||||
|
/*
|
||||||
|
NIBBLETYPE SkyLight = 0;
|
||||||
|
|
||||||
|
NIBBLETYPE BlockLight = 0;
|
||||||
|
*/
|
||||||
|
|
||||||
|
NumberOfTries++;
|
||||||
|
if (!IsLightValid())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
cEntity * newMob = a_MobSpawner.TryToSpawnHere(this, TryX, TryY, TryZ, Biome, MaxNbOfSuccess);
|
||||||
|
if (newMob == NULL)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int WorldX, WorldY, WorldZ;
|
||||||
|
PositionToWorldPosition(TryX, TryY, TryZ, WorldX, WorldY, WorldZ);
|
||||||
|
double ActualX = WorldX + 0.5;
|
||||||
|
double ActualZ = WorldZ + 0.5;
|
||||||
|
newMob->SetPosition(ActualX, WorldY, ActualZ);
|
||||||
|
LOGD("Spawning %s #%i at {%d, %d, %d}", newMob->GetClass(), newMob->GetUniqueID(), WorldX, WorldY, WorldZ);
|
||||||
|
NumberOfSuccess++;
|
||||||
|
} // while (retry)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -486,8 +486,8 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
// Pick up a random block of this chunk
|
// Pick up a random block of this chunk
|
||||||
void getRandomBlockCoords(int& a_X, int& a_Y, int& a_Z);
|
void GetRandomBlockCoords(int & a_X, int & a_Y, int & a_Z);
|
||||||
void getThreeRandomNumber(int& a_X, int& a_Y, int& a_Z,int a_MaxX, int a_MaxY, int a_MaxZ);
|
void GetThreeRandomNumbers(int & a_X, int & a_Y, int & a_Z, int a_MaxX, int a_MaxY, int a_MaxZ);
|
||||||
|
|
||||||
void RemoveBlockEntity(cBlockEntity * a_BlockEntity);
|
void RemoveBlockEntity(cBlockEntity * a_BlockEntity);
|
||||||
void AddBlockEntity (cBlockEntity * a_BlockEntity);
|
void AddBlockEntity (cBlockEntity * a_BlockEntity);
|
||||||
|
Loading…
Reference in New Issue
Block a user