From aea7da32c1fa1a565796a6bd090bf83f9ac2cba0 Mon Sep 17 00:00:00 2001 From: Fireblade <72758695+Firebladedoge229@users.noreply.github.com> Date: Wed, 3 Jun 2026 20:23:58 -0400 Subject: [PATCH] fix: tallgrass destroy logic --- Minecraft.World/TallGrass2.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) 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) {