From 43e684071933adef93040e8d4b830d5c6b71cf9a Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Sat, 12 Jan 2013 04:46:01 +0000 Subject: Merged branch "branches/hooks" into "trunk". git-svn-id: http://mc-server.googlecode.com/svn/trunk@1139 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Items/ItemSeeds.h | 51 ++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) (limited to 'source/Items/ItemSeeds.h') 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; } } ; -- cgit v1.2.3