diff options
-rw-r--r-- | src/BlockInServerPluginInterface.h | 19 | ||||
-rw-r--r-- | src/Blocks/BlockPluginInterface.h | 8 | ||||
-rw-r--r-- | src/Blocks/ChunkInterface.cpp | 12 |
3 files changed, 39 insertions, 0 deletions
diff --git a/src/BlockInServerPluginInterface.h b/src/BlockInServerPluginInterface.h new file mode 100644 index 000000000..e82435364 --- /dev/null +++ b/src/BlockInServerPluginInterface.h @@ -0,0 +1,19 @@ + +#pragma once + +#include "Blocks/BlockPluginInterface.h" +#include "World.h" +#include "Root.h" +#include "Bindings/PluginManager.h" + +class cBlockInServerPluginInterface : public cBlockPluginInterface +{ +public: + cBlockInServerPluginInterface(cWorld & a_World) : m_World(a_World) {} + virtual bool CallHookBlockToPickups(cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, cItems & a_Pickups) override + { + return cRoot::Get()->GetPluginManager()->CallHookBlockToPickups(&m_World, a_Digger, a_BlockX, a_BlockY, a_BlockZ, a_BlockType, a_BlockMeta, a_Pickups); + } +private: + cWorld & m_World; +}; diff --git a/src/Blocks/BlockPluginInterface.h b/src/Blocks/BlockPluginInterface.h new file mode 100644 index 000000000..7428c9a7a --- /dev/null +++ b/src/Blocks/BlockPluginInterface.h @@ -0,0 +1,8 @@ + +#pragma once + +class cBlockPluginInterface +{ +public: + virtual bool CallHookBlockToPickups(cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, cItems & a_Pickups) = 0; +}; diff --git a/src/Blocks/ChunkInterface.cpp b/src/Blocks/ChunkInterface.cpp new file mode 100644 index 000000000..b2dda19f4 --- /dev/null +++ b/src/Blocks/ChunkInterface.cpp @@ -0,0 +1,12 @@ + +#include "Globals.h" + +#include "ChunkInterface.h" +#include "BlockHandler.h" + +bool cChunkInterface::DigBlock(cWorldInterface & a_WorldInterface, int a_X, int a_Y, int a_Z) +{ + cBlockHandler *Handler = cBlockHandler::GetBlockHandler(GetBlock(a_X, a_Y, a_Z)); + Handler->OnDestroyed(*this, a_WorldInterface, a_X, a_Y, a_Z); + return m_ChunkMap->DigBlock(a_X, a_Y, a_Z); +} |