diff --git a/Minecraft.World/TallGrass2.cpp b/Minecraft.World/TallGrass2.cpp index 53c5245e..ab6e3c2d 100644 --- a/Minecraft.World/TallGrass2.cpp +++ b/Minecraft.World/TallGrass2.cpp @@ -165,17 +165,14 @@ Icon* TallGrass2::getTexture(LevelSource* level, int x, int y, int z, int face) int TallGrass2::getVariant(LevelSource* level, int x, int y, int z) { int data = level->getData(x, y, z); - bool isUpper = (data & UPPER_BIT) != 0; - int lowerData = data; + int variantData = data; - if (isUpper && level->getTile(x, y - 1, z) == id) + if ((data & UPPER_BIT) != 0 && level->getTile(x, y - 1, z) == id) { - lowerData = level->getData(x, y - 1, z); + variantData = level->getData(x, y - 1, z); } - int variant = lowerData & ~UPPER_BIT; - if (variant < 0 || variant >= VARIANT_COUNT) variant = 0; - return variant; + return variantData & 0xF; } @@ -366,8 +363,8 @@ shared_ptr TallGrass2::getSilkTouchItemInstance(int data) void TallGrass2::playerDestroy(Level* level, shared_ptr player, int x, int y, int z, int data) { - int resolvedVariant = getVariant(level, x, y, z); - int resolvedData = (data & UPPER_BIT) | resolvedVariant; + int resolvedVariant = data & ~UPPER_BIT; + int resolvedData = data; if (resolvedVariant == SUNFLOWER) {