summaryrefslogtreecommitdiffstats
path: root/src/Items
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-02-02 23:09:03 +0100
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-02-02 23:09:03 +0100
commit2d0b31e7b671447ca49988d14c13b6eb6bad4cf2 (patch)
treea0b28406e9c9f561fed241a47f3a51ef4db791a1 /src/Items
parentFixed #624 (diff)
parentMerge pull request #622 from worktycho/registerfix (diff)
downloadcuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar.gz
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar.bz2
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar.lz
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar.xz
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.tar.zst
cuberite-2d0b31e7b671447ca49988d14c13b6eb6bad4cf2.zip
Diffstat (limited to 'src/Items')
-rw-r--r--src/Items/ItemBucket.h5
-rw-r--r--src/Items/ItemDoor.h6
-rw-r--r--src/Items/ItemHandler.cpp8
-rw-r--r--src/Items/ItemShovel.h7
4 files changed, 19 insertions, 7 deletions
diff --git a/src/Items/ItemBucket.h b/src/Items/ItemBucket.h
index c9a632580..f18a4d959 100644
--- a/src/Items/ItemBucket.h
+++ b/src/Items/ItemBucket.h
@@ -6,6 +6,7 @@
#include "../Simulator/FluidSimulator.h"
#include "../Blocks/BlockHandler.h"
#include "../LineBlockTracer.h"
+#include "../BlockInServerPluginInterface.h"
@@ -142,7 +143,9 @@ public:
cBlockHandler * Handler = BlockHandler(CurrentBlock);
if (Handler->DoesDropOnUnsuitable())
{
- Handler->DropBlock(a_World, a_Player, a_BlockX, a_BlockY, a_BlockZ);
+ cChunkInterface ChunkInterface(a_World->GetChunkMap());
+ cBlockInServerPluginInterface PluginInterface(*a_World);
+ Handler->DropBlock(ChunkInterface, *a_World, PluginInterface, a_Player, a_BlockX, a_BlockY, a_BlockZ);
}
}
diff --git a/src/Items/ItemDoor.h b/src/Items/ItemDoor.h
index 72ea0beed..531a0c6e4 100644
--- a/src/Items/ItemDoor.h
+++ b/src/Items/ItemDoor.h
@@ -31,12 +31,14 @@ public:
) override
{
a_BlockType = (m_ItemType == E_ITEM_WOODEN_DOOR) ? E_BLOCK_WOODEN_DOOR : E_BLOCK_IRON_DOOR;
- return BlockHandler(a_BlockType)->GetPlacementBlockTypeMeta(
- a_World, a_Player,
+ cChunkInterface ChunkInterface(a_World->GetChunkMap());
+ bool Meta = BlockHandler(a_BlockType)->GetPlacementBlockTypeMeta(
+ ChunkInterface, a_Player,
a_BlockX, a_BlockY, a_BlockZ, a_BlockFace,
a_CursorX, a_CursorY, a_CursorZ,
a_BlockType, a_BlockMeta
);
+ return Meta;
}
} ;
diff --git a/src/Items/ItemHandler.cpp b/src/Items/ItemHandler.cpp
index 250e21dc4..302796d1b 100644
--- a/src/Items/ItemHandler.cpp
+++ b/src/Items/ItemHandler.cpp
@@ -5,6 +5,7 @@
#include "../World.h"
#include "../Entities/Player.h"
#include "../FastRandom.h"
+#include "../BlockInServerPluginInterface.h"
// Handlers:
#include "ItemBed.h"
@@ -257,7 +258,9 @@ void cItemHandler::OnBlockDestroyed(cWorld * a_World, cPlayer * a_Player, const
{
if (!BlockRequiresSpecialTool(Block) || CanHarvestBlock(Block))
{
- Handler->DropBlock(a_World, a_Player, a_BlockX, a_BlockY, a_BlockZ);
+ cChunkInterface ChunkInterface(a_World->GetChunkMap());
+ cBlockInServerPluginInterface PluginInterface(*a_World);
+ Handler->DropBlock(ChunkInterface, *a_World, PluginInterface, a_Player, a_BlockX, a_BlockY, a_BlockZ);
}
}
@@ -465,8 +468,9 @@ bool cItemHandler::GetPlacementBlockTypeMeta(
}
cBlockHandler * BlockH = BlockHandler(m_ItemType);
+ cChunkInterface ChunkInterface(a_World->GetChunkMap());
return BlockH->GetPlacementBlockTypeMeta(
- a_World, a_Player,
+ ChunkInterface, a_Player,
a_BlockX, a_BlockY, a_BlockZ, a_BlockFace,
a_CursorX, a_CursorY, a_CursorZ,
a_BlockType, a_BlockMeta
diff --git a/src/Items/ItemShovel.h b/src/Items/ItemShovel.h
index d0625ef1c..4921b257a 100644
--- a/src/Items/ItemShovel.h
+++ b/src/Items/ItemShovel.h
@@ -6,6 +6,7 @@
#include "../Entities/Player.h"
#include "../Blocks/BlockHandler.h"
+#include "../BlockInServerPluginInterface.h"
@@ -25,7 +26,9 @@ public:
BLOCKTYPE Block = a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ);
if (Block == E_BLOCK_SNOW)
{
- BlockHandler(Block)->DropBlock(a_World, a_Player, a_BlockX, a_BlockY, a_BlockZ);
+ cChunkInterface ChunkInterface(a_World->GetChunkMap());
+ cBlockInServerPluginInterface PluginInterface(*a_World);
+ BlockHandler(Block)->DropBlock(ChunkInterface,*a_World, PluginInterface, a_Player, a_BlockX, a_BlockY, a_BlockZ);
a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_AIR, 0);
a_Player->UseEquippedItem();
@@ -38,4 +41,4 @@ public:
{
return (a_BlockType == E_BLOCK_SNOW);
}
-}; \ No newline at end of file
+};