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

64 lines
1.1 KiB
C++
Raw Normal View History

2012-07-15 20:36:34 +00:00
#pragma once
#include "BlockHandler.h"
#include "../World.h"
#include "../Sign.h"
#include "../Player.h"
2012-07-15 20:36:34 +00:00
class cBlockSignHandler :
public cBlockHandler
2012-07-15 20:36:34 +00:00
{
public:
cBlockSignHandler(BLOCKTYPE a_BlockType)
: cBlockHandler(a_BlockType)
2012-07-15 20:36:34 +00:00
{
}
2012-07-15 20:36:34 +00:00
virtual void PlaceBlock(cWorld * a_World, cPlayer * a_Player, NIBBLETYPE a_BlockMeta, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir) override
2012-07-15 20:36:34 +00:00
{
BLOCKTYPE Block;
NIBBLETYPE Meta;
if (a_Dir == BLOCK_FACE_TOP)
2012-07-15 20:36:34 +00:00
{
Meta = cSign::RotationToMetaData(a_Player->GetRotation());
Block = E_BLOCK_SIGN_POST;
}
else
{
2012-07-15 20:36:34 +00:00
Meta = cSign::DirectionToMetaData(a_Dir);
Block = E_BLOCK_WALLSIGN;
}
a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, Block, Meta);
OnPlacedByPlayer(a_World, a_Player, a_BlockX, a_BlockY, a_BlockZ, a_Dir);
2012-07-15 20:36:34 +00:00
}
virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override
2012-07-15 20:36:34 +00:00
{
a_Pickups.push_back(cItem(E_ITEM_SIGN, 1, 0));
2012-07-15 20:36:34 +00:00
}
2012-07-15 20:36:34 +00:00
virtual bool DoesAllowBlockOnTop(void) override
2012-07-15 20:36:34 +00:00
{
return false;
}
2012-09-11 12:01:34 +00:00
virtual const char * GetStepSound(void) override
2012-09-11 12:01:34 +00:00
{
return "step.wood";
}
} ;