1
0
cuberite-2a/src/Blocks/BlockOre.h
2014-08-19 22:14:37 +02:00

63 lines
1000 B
C++

#pragma once
#include "BlockHandler.h"
#include "../World.h"
class cBlockOreHandler :
public cBlockHandler
{
public:
cBlockOreHandler(BLOCKTYPE a_BlockType)
: cBlockHandler(a_BlockType)
{
}
virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
{
cFastRandom Random;
switch (m_BlockType)
{
case E_BLOCK_LAPIS_ORE:
{
a_Pickups.push_back(cItem(E_ITEM_DYE, (char)(4 + Random.NextInt(5)), 4));
break;
}
case E_BLOCK_REDSTONE_ORE:
case E_BLOCK_REDSTONE_ORE_GLOWING:
{
a_Pickups.push_back(cItem(E_ITEM_REDSTONE_DUST, (char)(4 + Random.NextInt(2)), 0));
break;
}
case E_BLOCK_DIAMOND_ORE:
{
a_Pickups.push_back(cItem(E_ITEM_DIAMOND));
break;
}
case E_BLOCK_EMERALD_ORE:
{
a_Pickups.push_back(cItem(E_ITEM_EMERALD));
break;
}
case E_BLOCK_COAL_ORE:
{
a_Pickups.push_back(cItem(E_ITEM_COAL));
break;
}
default:
{
ASSERT(!"Unhandled ore!");
}
}
}
} ;