summaryrefslogtreecommitdiffstats
path: root/source/Items/ItemSeeds.h
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-01-12 05:46:01 +0100
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-01-12 05:46:01 +0100
commit43e684071933adef93040e8d4b830d5c6b71cf9a (patch)
tree014e5300feb1cdbbb8f24e4e42594eeb841f0be2 /source/Items/ItemSeeds.h
parentFixed rclk in doublechests (diff)
downloadcuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar.gz
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar.bz2
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar.lz
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar.xz
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.tar.zst
cuberite-43e684071933adef93040e8d4b830d5c6b71cf9a.zip
Diffstat (limited to '')
-rw-r--r--source/Items/ItemSeeds.h51
1 files changed, 23 insertions, 28 deletions
diff --git a/source/Items/ItemSeeds.h b/source/Items/ItemSeeds.h
index f013af3be..d6df8bdd0 100644
--- a/source/Items/ItemSeeds.h
+++ b/source/Items/ItemSeeds.h
@@ -12,54 +12,49 @@ class cItemSeedsHandler :
public cItemHandler
{
public:
- cItemSeedsHandler(int a_ItemType)
- : cItemHandler(a_ItemType)
+ cItemSeedsHandler(int a_ItemType) :
+ cItemHandler(a_ItemType)
{
}
- virtual bool IsPlaceable() override
+ virtual bool IsPlaceable(void) override
{
return true;
}
- virtual BLOCKTYPE GetBlockType() override
+ virtual bool GetPlacementBlockTypeMeta(
+ cWorld * a_World, cPlayer * a_Player,
+ int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace,
+ int a_CursorX, int a_CursorY, int a_CursorZ,
+ BLOCKTYPE & a_BlockType, NIBBLETYPE & a_BlockMeta
+ ) override
{
- switch(m_ItemType)
- {
- case E_ITEM_SEEDS: return E_BLOCK_CROPS;
- case E_ITEM_MELON_SEEDS: return E_BLOCK_MELON_STEM;
- case E_ITEM_PUMPKIN_SEEDS: return E_BLOCK_PUMPKIN_STEM;
- default: return E_BLOCK_AIR;
- }
- }
-
- virtual NIBBLETYPE GetBlockMeta(short a_ItemDamage) override
- {
- return 0; //Not grown yet
- }
-
-
- virtual void PlaceBlock(cWorld *a_World, cPlayer *a_Player, cItem *a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir) override
- {
- if (a_Dir != BLOCK_FACE_TOP)
+ if (a_BlockFace != BLOCK_FACE_TOP)
{
// Only allow planting seeds from the top side of the block
- return;
+ return false;
}
+ // Only allow placement on farmland
int X = a_BlockX;
int Y = a_BlockY;
int Z = a_BlockZ;
-
- AddDirection(X, Y, Z, a_Dir, true);
-
+ AddFaceDirection(X, Y, Z, a_BlockFace, true);
if (a_World->GetBlock(X, Y, Z) != E_BLOCK_FARMLAND)
{
- return;
+ return false;
}
- return cItemHandler::PlaceBlock(a_World, a_Player, a_Item, a_BlockX, a_BlockY, a_BlockZ, a_Dir);
+ a_BlockMeta = 0;
+ switch (m_ItemType)
+ {
+ case E_ITEM_SEEDS: a_BlockType = E_BLOCK_CROPS; return true;
+ case E_ITEM_MELON_SEEDS: a_BlockType = E_BLOCK_MELON_STEM; return true;
+ case E_ITEM_PUMPKIN_SEEDS: a_BlockType = E_BLOCK_PUMPKIN_STEM; return true;
+ default: a_BlockType = E_BLOCK_AIR; return true;
+ }
+ return false;
}
} ;