summaryrefslogtreecommitdiffstats
path: root/source/Items
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2013-09-20 22:02:11 +0200
committermadmaxoft <github@xoft.cz>2013-09-20 22:02:11 +0200
commit5cfc108e8379be84abaa28208e49804033893694 (patch)
treea907473fc536040a6656d08579a3d70f618f0532 /source/Items
parentFixed rounding errors in cProtocol125::SendExplosion(). (diff)
parentFixed pickup block spawning (diff)
downloadcuberite-5cfc108e8379be84abaa28208e49804033893694.tar
cuberite-5cfc108e8379be84abaa28208e49804033893694.tar.gz
cuberite-5cfc108e8379be84abaa28208e49804033893694.tar.bz2
cuberite-5cfc108e8379be84abaa28208e49804033893694.tar.lz
cuberite-5cfc108e8379be84abaa28208e49804033893694.tar.xz
cuberite-5cfc108e8379be84abaa28208e49804033893694.tar.zst
cuberite-5cfc108e8379be84abaa28208e49804033893694.zip
Diffstat (limited to 'source/Items')
-rw-r--r--source/Items/ItemComparator.h40
-rw-r--r--source/Items/ItemHandler.cpp2
2 files changed, 42 insertions, 0 deletions
diff --git a/source/Items/ItemComparator.h b/source/Items/ItemComparator.h
new file mode 100644
index 000000000..53dbd020d
--- /dev/null
+++ b/source/Items/ItemComparator.h
@@ -0,0 +1,40 @@
+
+#pragma once
+
+#include "ItemHandler.h"
+#include "../Simulator/RedstoneSimulator.h"
+
+
+
+
+
+class cItemComparatorHandler :
+ public cItemHandler
+{
+public:
+ cItemComparatorHandler(int a_ItemType) :
+ cItemHandler(a_ItemType)
+ {
+ }
+
+ virtual bool IsPlaceable(void) override
+ {
+ return true;
+ }
+
+ 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
+ {
+ a_BlockType = E_BLOCK_INACTIVE_COMPARATOR;
+ a_BlockMeta = cRedstoneSimulator::RepeaterRotationToMetaData(a_Player->GetRotation());
+ return true;
+ }
+} ;
+
+
+
+
diff --git a/source/Items/ItemHandler.cpp b/source/Items/ItemHandler.cpp
index 3c2fa1e79..9d38e6f3a 100644
--- a/source/Items/ItemHandler.cpp
+++ b/source/Items/ItemHandler.cpp
@@ -14,6 +14,7 @@
#include "ItemBucket.h"
#include "ItemCauldron.h"
#include "ItemCloth.h"
+#include "ItemComparator.h"
#include "ItemDoor.h"
#include "ItemDye.h"
#include "ItemFlowerPot.h"
@@ -92,6 +93,7 @@ cItemHandler *cItemHandler::CreateItemHandler(int a_ItemType)
case E_ITEM_BOW: return new cItemBowHandler;
case E_ITEM_BREWING_STAND: return new cItemBrewingStandHandler(a_ItemType);
case E_ITEM_CAULDRON: return new cItemCauldronHandler(a_ItemType);
+ case E_ITEM_COMPARATOR: return new cItemComparatorHandler(a_ItemType);
case E_ITEM_DYE: return new cItemDyeHandler(a_ItemType);
case E_ITEM_EGG: return new cItemEggHandler();
case E_ITEM_ENDER_PEARL: return new cItemEnderPearlHandler();