- 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:
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user