1
0

Merge branch 'griefer'sdelight' of git://github.com/tigerw/MCServer.

This commit is contained in:
madmaxoft 2013-11-01 11:14:55 +01:00
commit 62d27e4ed9

View File

@ -12,6 +12,7 @@
#include "BlockArea.h" #include "BlockArea.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "Entities/TNTEntity.h" #include "Entities/TNTEntity.h"
#include "Blocks/BlockHandler.h"
#include "MobCensus.h" #include "MobCensus.h"
#include "MobSpawner.h" #include "MobSpawner.h"
@ -1610,7 +1611,9 @@ void cChunkMap::DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_
// Too far away // Too far away
continue; continue;
} }
switch (area.GetBlockType(bx + x, by + y, bz + z))
BLOCKTYPE Block = area.GetBlockType(bx + x, by + y, bz + z);
switch (Block)
{ {
case E_BLOCK_TNT: case E_BLOCK_TNT:
{ {
@ -1644,8 +1647,22 @@ void cChunkMap::DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_
break; break;
} }
case E_BLOCK_AIR:
{
// No pickups for air
break;
}
default: default:
{ {
if (m_World->GetTickRandomNumber(10) == 5)
{
cItems Drops;
cBlockHandler * Handler = BlockHandler(Block);
Handler->ConvertToPickups(Drops, area.GetBlockMeta(bx + x, by + y, bz + z));
m_World->SpawnItemPickups(Drops, bx + x, by + y, bz + z);
}
area.SetBlockType(bx + x, by + y, bz + z, E_BLOCK_AIR); area.SetBlockType(bx + x, by + y, bz + z, E_BLOCK_AIR);
a_BlocksAffected.push_back(Vector3i(bx + x, by + y, bz + z)); a_BlocksAffected.push_back(Vector3i(bx + x, by + y, bz + z));
} }