aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/SeedItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/SeedItem.cpp')
-rw-r--r--Minecraft.World/SeedItem.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/Minecraft.World/SeedItem.cpp b/Minecraft.World/SeedItem.cpp
new file mode 100644
index 00000000..7a5ac1b8
--- /dev/null
+++ b/Minecraft.World/SeedItem.cpp
@@ -0,0 +1,36 @@
+using namespace std;
+
+#include "stdafx.h"
+#include "Item.h"
+#include "net.minecraft.world.entity.player.h"
+#include "net.minecraft.world.level.h"
+#include "net.minecraft.world.level.tile.h"
+#include "ItemInstance.h"
+#include "SeedItem.h"
+
+SeedItem::SeedItem(int id, int resultId, int targetLand) : Item(id)
+{
+ this->resultId = resultId;
+ this->targetLand = targetLand;
+}
+
+bool SeedItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> player, Level *level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly)
+{
+ // 4J-PB - Adding a test only version to allow tooltips to be displayed
+ if (face != 1) return false;
+
+ if (!player->mayBuild(x, y, z) || !player->mayBuild(x, y + 1, z)) return false;
+
+ int targetType = level->getTile(x, y, z);
+
+ if (targetType == targetLand && level->isEmptyTile(x, y + 1, z))
+ {
+ if(!bTestUseOnOnly)
+ {
+ level->setTile(x, y + 1, z, resultId);
+ instance->count--;
+ }
+ return true;
+ }
+ return false;
+} \ No newline at end of file