01b8ed5295
The BlockID.h file was removed from Globals.h and renamed to BlockType.h (main change) The BlockInfo.h file was removed from Globals.h (main change) The ENUM_BLOCK_ID and ENUM_ITEM_ID enum names were replaced with ENUM_BLOCK_TYPE and ENUM_ITEM_TYPE (cosmetics) The various enums, such as eDimension, eDamageType and eExplosionSource were moved from BlockType.h to Defines.h, together with the helper functions for converting between them and strings (StringToDimension et al.) (minor) Many inline functions were moved from headers to their respective cpp files, so that BlockType.h could be included only into the cpp file, rather than the header. That broke our tests a bit, since they pick bits and pieces out of the main code and provide stubs for the rest; they had to be re-stubbed and re-verified. eMonsterType values are no longer tied to E_ITEM_SPAWN_EGG_META_* values
237 lines
3.7 KiB
C++
237 lines
3.7 KiB
C++
|
|
// 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"
|
|
#include "BlockEntities/BlockEntity.h"
|
|
|
|
|
|
|
|
|
|
|
|
cBlockInfo::cBlockInfo()
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockInfo::sHandlerDeleter::operator () (cBlockHandler * a_Handler)
|
|
{
|
|
delete a_Handler;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBlockInfo::cBlockInfoArray::cBlockInfoArray()
|
|
{
|
|
cBlockInfoArray & BlockInfos = *this;
|
|
// The piece-loading code uses the handlers for rotations, so we need valid handlers
|
|
// Insert dummy handlers:
|
|
for (size_t i = 0; i < BlockInfos.size(); i++)
|
|
{
|
|
BlockInfos[i].m_Handler.reset(new cBlockHandler(static_cast<BLOCKTYPE>(i)));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBoundingBox::cBoundingBox(double, double, double, double, double, double)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBlockHandler::cBlockHandler(BLOCKTYPE a_BlockType)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBoundingBox cBlockHandler::GetPlacementCollisionBox(BLOCKTYPE a_XM, BLOCKTYPE a_XP, BLOCKTYPE a_YM, BLOCKTYPE a_YP, BLOCKTYPE a_ZM, BLOCKTYPE a_ZP)
|
|
{
|
|
return cBoundingBox(0, 0, 0, 0, 0, 0);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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::OnPlaced(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::OnBroken(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_OldBlockType, NIBBLETYPE a_OldBlockMeta)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cItems cBlockHandler::ConvertToPickups(NIBBLETYPE a_BlockMeta, cBlockEntity * a_BlockEntity, const cEntity * a_Digger, const cItem * a_Tool)
|
|
{
|
|
return cItems();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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(cChunkInterface & a_ChunkInterface, Vector3i a_Pos, cPlayer & a_Player, NIBBLETYPE a_Meta)
|
|
{
|
|
return (m_BlockType == E_BLOCK_AIR);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::DoesDropOnUnsuitable(void)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::Check(cChunkInterface & a_ChunkInterface, cBlockPluginInterface & a_PluginInterface, Vector3i a_RelPos, cChunk & a_Chunk)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ColourID cBlockHandler::GetMapBaseColourID(NIBBLETYPE a_Meta)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::IsInsideBlock(Vector3d a_Position, const BLOCKTYPE a_BlockType, const NIBBLETYPE a_BlockMeta)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockEntity::IsBlockEntityBlockType(BLOCKTYPE a_BlockType)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockEntity::SetPos(Vector3i a_NewPos)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBlockEntity * cBlockEntity::Clone(Vector3i a_Pos)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBlockEntity * cBlockEntity::CreateByBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World)
|
|
{
|
|
return nullptr;
|
|
}
|