1
0

- improved Simulator system

-> Manager handles all ticks -> advantage: Much easier to add new simulators, because you only have to register them in the manager

- moved sand and gravel simulation to a Simulator-class (cSandSimulator)

- Made Squid a little bit more funny and realistic, because it dies now when it´s not in water

-Escaping mobs run now faster than normal (They just walked away before :D)

git-svn-id: http://mc-server.googlecode.com/svn/trunk@125 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
lapayo94@gmail.com
2011-12-26 20:57:12 +00:00
parent 92e0ba6645
commit 9f77572fb0
17 changed files with 340 additions and 71 deletions

View File

@@ -257,8 +257,7 @@ void cChunk::Tick(float a_Dt)
int wX, wY, wZ;
PositionToWorldPosition(X, Y, Z, wX, wY, wZ);
m_World->GetWaterSimulator()->WakeUp( wX, wY, wZ );
m_World->GetLavaSimulator()->WakeUp( wX, wY, wZ );
m_World->GetSimulatorManager()->WakeUp(wX, wY, wZ);
if (isRedstone) {
cRedstone Redstone(m_World);
Redstone.ChangeRedstone( (X+m_PosX*16), (Y+m_PosY*16), (Z+m_PosZ*16), false );
@@ -306,30 +305,6 @@ void cChunk::Tick(float a_Dt)
}
}
break;
case E_BLOCK_STATIONARY_WATER:
case E_BLOCK_WATER:
break;
case E_BLOCK_GRAVEL:
case E_BLOCK_SAND:
{
char BottomBlock = GetBlock( X, Y-1, Z );
if( BottomBlock == E_BLOCK_AIR || IsBlockWater(BottomBlock) || IsBlockLava(BottomBlock) )
{
SetBlock( X, Y, Z, E_BLOCK_AIR, 0 );
SetBlock( X, Y-1, Z, BlockID, 0 );
int wX, wY, wZ;
PositionToWorldPosition(X, Y, Z, wX, wY, wZ);
m_World->GetWaterSimulator()->WakeUp( wX, wY, wZ );
m_World->GetLavaSimulator()->WakeUp( wX, wY, wZ );
m_World->GetWaterSimulator()->WakeUp( wX, wY - 1, wZ );
m_World->GetLavaSimulator()->WakeUp( wX, wY - 1, wZ );
}
}
break;
default:
break;
};