a62b2b1be2
* Move item placement into item handlers + Add appropriate CanBeAt checks in cPlayer::PlaceBlocks, into which all placement handlers call. * Partly addresses #5157 * Fixes #4878 * Fixes #2919 * Fixes #4629 * Fixes #4239 * Fixes #4849 Co-authored-by: changyong guo <guo1487@163.com> Co-authored-by: Xotheus <shady3300@outlook.com> Co-authored-by: Krist Pregracke <krist@tiger-scm.com> * Review fixes * Update APIDesc.lua * Rename Co-authored-by: changyong guo <guo1487@163.com> Co-authored-by: Xotheus <shady3300@outlook.com> Co-authored-by: Krist Pregracke <krist@tiger-scm.com>
285 lines
3.6 KiB
C++
285 lines
3.6 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 "Bindings.h"
|
|
#include "DeadlockDetect.h"
|
|
#include "UUID.h"
|
|
#include "Bindings/DeprecatedBindings.h"
|
|
#include "Bindings/LuaJson.h"
|
|
#include "Bindings/ManualBindings.h"
|
|
#include "BlockEntities/BlockEntity.h"
|
|
#include "Blocks/BlockHandler.h"
|
|
#include "Generating/ChunkDesc.h"
|
|
|
|
|
|
|
|
|
|
|
|
// fwd:
|
|
struct lua_State;
|
|
|
|
|
|
|
|
|
|
|
|
// Prototypes, needed by clang:
|
|
extern "C" int luaopen_lsqlite3(lua_State * a_LuaState);
|
|
extern "C" int luaopen_lxp(lua_State * a_LuaState);
|
|
|
|
|
|
|
|
|
|
|
|
void cManualBindings::Bind(lua_State * a_LuaState)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DeprecatedBindings::Bind(lua_State * a_LuaState)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cLuaJson::Bind(cLuaState & a_LuaState)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int tolua_AllToLua_open(lua_State * a_LuaState)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" int luaopen_lsqlite3(lua_State * a_LuaState)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extern "C" int luaopen_lxp(lua_State * a_LuaState)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockInfo::IsSolid(BLOCKTYPE)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBoundingBox::cBoundingBox(double, double, double, double, double, double)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cBoundingBox cBlockHandler::GetPlacementCollisionBox(BLOCKTYPE a_XM, BLOCKTYPE a_XP, BLOCKTYPE a_YM, BLOCKTYPE a_YP, BLOCKTYPE a_ZM, BLOCKTYPE a_ZP) const
|
|
{
|
|
return cBoundingBox(0, 0, 0, 0, 0, 0);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::OnUpdate(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_PluginInterface, cChunk & a_Chunk, const Vector3i a_RelPos) const
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::OnNeighborChanged(cChunkInterface & a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor) const
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::NeighborChanged(cChunkInterface & a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cItems cBlockHandler::ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cItem * const a_Tool) const
|
|
{
|
|
return cItems();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::CanBeAt(const cChunk & a_Chunk, const Vector3i a_Position, const NIBBLETYPE a_Meta) const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::IsUseable() const
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::DoesIgnoreBuildCollision(const cWorld & a_World, const cItem & a_HeldItem, Vector3i a_Position, NIBBLETYPE a_Meta, eBlockFace a_ClickedBlockFace, bool a_ClickedDirectly) const
|
|
{
|
|
return m_BlockType == E_BLOCK_AIR;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockHandler::Check(cChunkInterface & a_ChunkInterface, cBlockPluginInterface & a_PluginInterface, Vector3i a_RelPos, cChunk & a_Chunk) const
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ColourID cBlockHandler::GetMapBaseColourID(NIBBLETYPE a_Meta) const
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockHandler::IsInsideBlock(Vector3d a_Position, const NIBBLETYPE a_BlockMeta) const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)
|
|
{
|
|
// Dummy handler.
|
|
static cBlockHandler Handler(E_BLOCK_AIR);
|
|
return Handler;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
OwnedBlockEntity cBlockEntity::CreateByBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cDeadlockDetect::TrackCriticalSection(cCriticalSection & a_CS, const AString & a_Name)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cDeadlockDetect::UntrackCriticalSection(cCriticalSection & a_CS)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cBlockEntity::SetPos(Vector3i a_NewPos)
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cBlockEntity::IsBlockEntityBlockType(BLOCKTYPE a_BlockType)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
OwnedBlockEntity cBlockEntity::Clone(Vector3i a_Pos)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cLuaState::GetStackValue(int, cUUID *&)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool cUUID::FromString(const AString &)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int BlockStringToType(const AString &)
|
|
{
|
|
return 0;
|
|
}
|