Files
cuberite-2a/source/Blocks/BlockOre.h
T

81 lines
1.2 KiB
C++
Raw Normal View History

2012-07-16 13:30:33 +00:00
#pragma once
#include "BlockHandler.h"
2012-07-16 13:30:33 +00:00
#include "../MersenneTwister.h"
#include "../World.h"
2012-07-16 13:30:33 +00:00
class cBlockOreHandler :
public cBlockHandler
2012-07-16 13:30:33 +00:00
{
public:
cBlockOreHandler(BLOCKTYPE a_BlockType)
: cBlockHandler(a_BlockType)
2012-07-16 13:30:33 +00:00
{
}
virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
2012-07-16 13:30:33 +00:00
{
short ItemType = m_BlockType;
char Count = 1;
short Meta = 0;
2012-07-16 13:30:33 +00:00
MTRand r1;
switch (m_BlockType)
2012-07-16 13:30:33 +00:00
{
case E_BLOCK_LAPIS_ORE:
{
ItemType = E_ITEM_DYE;
Count = 4 + (char)r1.randInt(4);
Meta = 4;
break;
}
case E_BLOCK_REDSTONE_ORE:
case E_BLOCK_REDSTONE_ORE_GLOWING:
{
Count = 4 + (char)r1.randInt(1);
break;
}
default:
{
Count = 1;
break;
}
2012-07-16 13:30:33 +00:00
}
switch (m_BlockType)
2012-07-16 13:30:33 +00:00
{
case E_BLOCK_DIAMOND_ORE:
{
ItemType = E_ITEM_DIAMOND;
break;
}
case E_BLOCK_REDSTONE_ORE:
case E_BLOCK_REDSTONE_ORE_GLOWING:
{
ItemType = E_ITEM_REDSTONE_DUST;
break;
}
case E_BLOCK_EMERALD_ORE:
{
ItemType = E_ITEM_EMERALD;
break;
}
case E_BLOCK_COAL_ORE:
{
ItemType = E_ITEM_COAL;
break;
}
2012-07-16 13:30:33 +00:00
}
a_Pickups.push_back(cItem(ItemType, Count, Meta));
2012-07-16 13:30:33 +00:00
}
} ;
2012-07-16 13:30:33 +00:00