diff options
author | Mattes D <github@xoft.cz> | 2014-12-24 07:20:17 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-12-24 07:20:17 +0100 |
commit | ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0 (patch) | |
tree | 445feea29fb0a2228cd8187821a1bf8e519c5807 /src/Items/ItemBigFlower.h | |
parent | Added Vector3::TurnCW() and Vector3::TurnCCW() (diff) | |
download | cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.gz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.bz2 cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.lz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.xz cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.tar.zst cuberite-ccdf03daaf880dd0c89a03b50c11eb083ee1cfb0.zip |
Diffstat (limited to 'src/Items/ItemBigFlower.h')
-rw-r--r-- | src/Items/ItemBigFlower.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/Items/ItemBigFlower.h b/src/Items/ItemBigFlower.h new file mode 100644 index 000000000..4341a1a17 --- /dev/null +++ b/src/Items/ItemBigFlower.h @@ -0,0 +1,56 @@ + +// ItemBigFlower.h + +// Declares the cItemBigFlower class representing the cItemHandler for big flowers + + + + + +#pragma once + +#include "ItemHandler.h" + + + + + +class cItemBigFlowerHandler: + public cItemHandler +{ + typedef cItemHandler super; + +public: + cItemBigFlowerHandler(void): + super(E_BLOCK_BIG_FLOWER) + { + } + + + virtual bool OnPlayerPlace( + cWorld & a_World, cPlayer & a_Player, const cItem & a_EquippedItem, + int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, + int a_CursorX, int a_CursorY, int a_CursorZ + ) override + { + // Can only be placed on the floor: + if (a_BlockFace != BLOCK_FACE_TOP) + { + return false; + } + AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace); + + // Place both blocks atomically: + sSetBlockVector blks; + blks.emplace_back(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_BIG_FLOWER, a_EquippedItem.m_ItemDamage & 0x07); + if (a_BlockY < cChunkDef::Height - 1) + { + blks.emplace_back(a_BlockX, a_BlockY + 1, a_BlockZ, E_BLOCK_BIG_FLOWER, (a_EquippedItem.m_ItemDamage & 0x07) | 0x08); + } + return a_Player.PlaceBlocks(blks); + } +}; + + + + |