aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/DeadBushTile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/DeadBushTile.cpp')
-rw-r--r--Minecraft.World/DeadBushTile.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/Minecraft.World/DeadBushTile.cpp b/Minecraft.World/DeadBushTile.cpp
new file mode 100644
index 00000000..33fdfe6c
--- /dev/null
+++ b/Minecraft.World/DeadBushTile.cpp
@@ -0,0 +1,46 @@
+#include "stdafx.h"
+#include "net.minecraft.stats.h"
+#include "net.minecraft.world.entity.player.h"
+#include "net.minecraft.world.item.h"
+#include "net.minecraft.world.level.h"
+#include "DeadBushTile.h"
+
+DeadBushTile::DeadBushTile(int id) : Bush(id,Material::replaceable_plant)
+{
+ updateDefaultShape();
+}
+
+// 4J Added override
+void DeadBushTile::updateDefaultShape()
+{
+ float ss = 0.4f;
+ this->setShape(0.5f - ss, 0, 0.5f - ss, 0.5f + ss, 0.8f, 0.5f + ss);
+}
+
+bool DeadBushTile::mayPlaceOn(int tile)
+{
+ return tile == Tile::sand_Id;
+}
+
+int DeadBushTile::getResource(int data, Random *random, int playerBonusLevel)
+{
+ return -1;
+}
+
+void DeadBushTile::playerDestroy(Level *level, shared_ptr<Player> player, int x, int y, int z, int data)
+{
+ if (!level->isClientSide && player->getSelectedItem() != NULL && player->getSelectedItem()->id == Item::shears_Id)
+ {
+ player->awardStat(
+ GenericStats::blocksMined(id),
+ GenericStats::param_blocksMined(id,data,1)
+ );
+
+ // drop leaf block instead of sapling
+ popResource(level, x, y, z, shared_ptr<ItemInstance>(new ItemInstance(Tile::deadBush, 1, data)));
+ }
+ else
+ {
+ Bush::playerDestroy(level, player, x, y, z, data);
+ }
+}