// Stubs.cpp // Implements stubs of various Cuberite methods that are needed for linking but not for runtime // This is required so that we don't bring in the entire Cuberite via dependencies #include "Globals.h" #include "BlockInfo.h" #include "Blocks/BlockHandler.h" cBlockInfo::~cBlockInfo() { } void cBlockInfo::Initialize(cBlockInfo::cBlockInfoArray & a_BlockInfos) { // The piece-loading code uses the handlers for rotations, so we need valid handlers // Insert dummy handlers: for (size_t i = 0; i < ARRAYCOUNT(a_BlockInfos); i++) { a_BlockInfos[i].m_Handler = new cBlockHandler(static_cast(i)); } } cBlockHandler::cBlockHandler(BLOCKTYPE a_BlockType) { } bool cBlockHandler::GetPlacementBlockTypeMeta( cChunkInterface & a_ChunkInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta ) { return true; } void cBlockHandler::OnUpdate(cChunkInterface & cChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_PluginInterface, cChunk & a_Chunk, int a_BlockX, int a_BlockY, int a_BlockZ) { } void cBlockHandler::OnPlacedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, const sSetBlock & a_BlockChange) { } void cBlockHandler::OnDestroyedByPlayer(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ) { } void cBlockHandler::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) { } void cBlockHandler::OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ) { } void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_WhichNeighbor) { } void cBlockHandler::ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) { } void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, bool a_CanDrop) { } bool cBlockHandler::CanBeAt(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, const cChunk & a_Chunk) { return true; } bool cBlockHandler::IsUseable() { return false; } bool cBlockHandler::IsClickedThrough(void) { return false; } bool cBlockHandler::DoesIgnoreBuildCollision(void) { return (m_BlockType == E_BLOCK_AIR); } bool cBlockHandler::DoesDropOnUnsuitable(void) { return true; } void cBlockHandler::Check(cChunkInterface & a_ChunkInterface, cBlockPluginInterface & a_PluginInterface, int a_RelX, int a_RelY, int a_RelZ, cChunk & a_Chunk) { } ColourID cBlockHandler::GetMapBaseColourID(NIBBLETYPE a_Meta) { return 0; } bool cBlockHandler::IsInsideBlock(const Vector3d & a_Position, const BLOCKTYPE a_BlockType, const NIBBLETYPE a_BlockMeta) { return true; }