14dce23845
It was really a lot of work :D Took me the complete weekend :D Would really like to here your opinion on this =) The aim of this is to put all the actions for one block in one place so it is not spread around the source. (ToPickup, Action in cWorld, Action in cChunk, Action here, action there :D) git-svn-id: http://mc-server.googlecode.com/svn/trunk@671 0a769ca7-a7f5-676a-18bf-c427514a06d6
42 lines
669 B
C++
42 lines
669 B
C++
#pragma once
|
|
#include "Block.h"
|
|
|
|
|
|
class cBlockMushroomHandler : public cBlockHandler
|
|
{
|
|
public:
|
|
cBlockMushroomHandler(BLOCKTYPE a_BlockID)
|
|
: cBlockHandler(a_BlockID)
|
|
{
|
|
}
|
|
|
|
virtual char GetDropMeta(char a_BlockMeta)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
virtual bool CanBeAt(cWorld *a_World, int a_X, int a_Y, int a_Z)
|
|
{
|
|
switch (a_World->GetBlock(a_X, a_Y - 1, a_Z))
|
|
{
|
|
case E_BLOCK_GLASS:
|
|
case E_BLOCK_CACTUS:
|
|
case E_BLOCK_ICE:
|
|
case E_BLOCK_LEAVES:
|
|
case E_BLOCK_AIR:
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
virtual bool AllowBlockOnTop()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
virtual bool CanBePlacedOnSide()
|
|
{
|
|
return false;
|
|
}
|
|
}; |