From b94c16b22a5ae416328771e15a5970f7d7bec827 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 16:22:50 +0200 Subject: [PATCH 1/9] FIX: Bow release --- src/client/Minecraft.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index 8d38c06..8feb6c9 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -872,6 +872,10 @@ void Minecraft::tickInput() { if (inputHolder && inputHolder->getBuildInput()->tickBuild(player, &bai)) { handleBuildAction(&bai); } + + if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) { + gameMode->releaseUsingItem(player); + } } else { // Desktop: left mouse = destroy/attack if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { From 3f6d9cdcb8d62abda04332d870187fe0375b9611 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 18:10:46 +0200 Subject: [PATCH 2/9] FIX: Armor display --- src/client/renderer/entity/PlayerRenderer.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/client/renderer/entity/PlayerRenderer.cpp b/src/client/renderer/entity/PlayerRenderer.cpp index 6a773f0..96ee2eb 100755 --- a/src/client/renderer/entity/PlayerRenderer.cpp +++ b/src/client/renderer/entity/PlayerRenderer.cpp @@ -17,8 +17,8 @@ PlayerRenderer::PlayerRenderer( HumanoidModel* humanoidModel, float shadow ) : super(humanoidModel, shadow), playerModel64(humanoidModel), playerModel32(new HumanoidModel(0, 0, 64, 32)), - armorParts1(new HumanoidModel(1.0f, 0, 64, 64)), - armorParts2(new HumanoidModel(0.5f, 0, 64, 64)) + armorParts1(new HumanoidModel(1.0f, 0, 64, 32)), + armorParts2(new HumanoidModel(0.5f, 0, 64, 32)) { // default to legacy skin path until we know the exact texture size model = playerModel32; @@ -77,10 +77,10 @@ void PlayerRenderer::render(Entity* mob_, float x, float y, float z, float rot, model = desired; humanoidModel = desired; } - // LOGI("[PlayerRenderer] %s: skin=%s, modelTex=%dx%d, desired=%s\n", - // ((Player*)mob)->name.c_str(), mob->getTexture().c_str(), - // humanoidModel->texWidth, humanoidModel->texHeight, - // (desired == playerModel64 ? "64" : "32")); + LOGI("[PlayerRenderer] %s: skin=%s, modelTex=%dx%d, desired=%s\n", + ((Player*)mob)->name.c_str(), mob->getTexture().c_str(), + humanoidModel->texWidth, humanoidModel->texHeight, + (desired == playerModel64 ? "64" : "32")); HumanoidMobRenderer::render(mob_, x, y, z, rot, a); } From 98a05e5aa3dbfac4472383a091f6f3863e256002 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 18:25:42 +0200 Subject: [PATCH 3/9] FIX: Keyboard on android --- src/client/gui/screens/OptionsScreen.cpp | 8 -------- src/client/player/input/touchscreen/TouchscreenInput.cpp | 1 + 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/client/gui/screens/OptionsScreen.cpp b/src/client/gui/screens/OptionsScreen.cpp index a7875dd..11b87c1 100755 --- a/src/client/gui/screens/OptionsScreen.cpp +++ b/src/client/gui/screens/OptionsScreen.cpp @@ -19,7 +19,6 @@ OptionsScreen::OptionsScreen() } OptionsScreen::~OptionsScreen() { - if (btnClose != NULL) { delete btnClose; btnClose = NULL; @@ -53,7 +52,6 @@ OptionsScreen::~OptionsScreen() { } void OptionsScreen::init() { - bHeader = new Touch::THeader(0, "Options"); btnClose = new ImageButton(1, ""); @@ -89,7 +87,6 @@ void OptionsScreen::init() { } void OptionsScreen::setupPositions() { - int buttonHeight = btnClose->height; btnClose->x = width - btnClose->width; @@ -134,7 +131,6 @@ void OptionsScreen::setupPositions() { void OptionsScreen::render(int xm, int ym, float a) { - renderBackground(); int xmm = xm * width / minecraft->width; @@ -150,7 +146,6 @@ void OptionsScreen::removed() { } void OptionsScreen::buttonClicked(Button* button) { - if (button == btnClose) { minecraft->options.save(); if (minecraft->screen != NULL) { @@ -169,7 +164,6 @@ void OptionsScreen::buttonClicked(Button* button) { } void OptionsScreen::selectCategory(int index) { - int currentIndex = 0; for (std::vector::iterator it = categoryButtons.begin(); it != categoryButtons.end(); ++it) { @@ -235,7 +229,6 @@ void OptionsScreen::generateOptionScreens() { } void OptionsScreen::mouseClicked(int x, int y, int buttonNum) { - if (currentOptionsGroup != NULL) currentOptionsGroup->mouseClicked(minecraft, x, y, buttonNum); @@ -243,7 +236,6 @@ void OptionsScreen::mouseClicked(int x, int y, int buttonNum) { } void OptionsScreen::mouseReleased(int x, int y, int buttonNum) { - if (currentOptionsGroup != NULL) currentOptionsGroup->mouseReleased(minecraft, x, y, buttonNum); diff --git a/src/client/player/input/touchscreen/TouchscreenInput.cpp b/src/client/player/input/touchscreen/TouchscreenInput.cpp index 41474f3..b00f7e8 100755 --- a/src/client/player/input/touchscreen/TouchscreenInput.cpp +++ b/src/client/player/input/touchscreen/TouchscreenInput.cpp @@ -320,6 +320,7 @@ void TouchscreenInput_TestFps::tick( Player* player ) if (Multitouch::isReleased(p)) { _minecraft->soundEngine->playUI("random.click", 1, 1); _minecraft->screenChooser.setScreen(SCREEN_CONSOLE); + _minecraft->platform()->showKeyboard(); } } From 2bfa8f11f1b736bfa3535a8f94bff5d0caee0223 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 18:39:08 +0200 Subject: [PATCH 4/9] hmm --- src/client/Minecraft.cpp | 10 ++++++---- .../player/input/touchscreen/TouchscreenInput.cpp | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index 8feb6c9..d85b529 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -866,15 +866,17 @@ void Minecraft::tickInput() { gameMode->stopDestroyBlock(); } + if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) { + gameMode->releaseUsingItem(player); + } + if (useTouchscreen()) { // Touch: gesture recognizer classifies the action type (turn/destroy/build) BuildActionIntention bai; if (inputHolder && inputHolder->getBuildInput()->tickBuild(player, &bai)) { handleBuildAction(&bai); - } - - if (!Mouse::isButtonDown(MouseAction::ACTION_RIGHT)) { - gameMode->releaseUsingItem(player); + } else { + gameMode->stopDestroyBlock(); } } else { // Desktop: left mouse = destroy/attack diff --git a/src/client/player/input/touchscreen/TouchscreenInput.cpp b/src/client/player/input/touchscreen/TouchscreenInput.cpp index b00f7e8..563de6c 100755 --- a/src/client/player/input/touchscreen/TouchscreenInput.cpp +++ b/src/client/player/input/touchscreen/TouchscreenInput.cpp @@ -164,7 +164,7 @@ void TouchscreenInput_TestFps::onConfigChanged(const Config& c) { float maxPixels = _minecraft->pixelCalc.millimetersToPixels(10); // float btnSize = Mth::Min(18 * Gui::GuiScale, maxPixels); - float btnSize = pc.millimetersToPixels(50); + float btnSize = pc.millimetersToPixels(50 * Gui::GuiScale); _model.addArea(AREA_PAUSE, aPause = new RectangleArea(w - 4 - btnSize, 4, w - 4, 4 + btnSize)); _model.addArea(AREA_CHAT, aChat = new RectangleArea(w - 8 - btnSize * 2, 4, w - 8 - btnSize, 4 + btnSize)); From 13c624e07e7ce0ff1713a8da4fe8622017d8777f Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 18:54:04 +0200 Subject: [PATCH 5/9] hmmmmmmmmmm --- src/client/Minecraft.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index d85b529..e8f040d 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -873,10 +873,11 @@ void Minecraft::tickInput() { if (useTouchscreen()) { // Touch: gesture recognizer classifies the action type (turn/destroy/build) BuildActionIntention bai; - if (inputHolder && inputHolder->getBuildInput()->tickBuild(player, &bai)) { - handleBuildAction(&bai); - } else { - gameMode->stopDestroyBlock(); + bool buildHandled = inputHolder->getBuildInput()->tickBuild(player, &bai); + + if (buildHandled) { + if (!bai.isRemoveContinue()) + handleBuildAction(&bai); } } else { // Desktop: left mouse = destroy/attack From b088f39e52f33a9fcef33f38b8b5badad321f26e Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 18:54:51 +0200 Subject: [PATCH 6/9] emm --- src/client/player/input/touchscreen/TouchscreenInput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/player/input/touchscreen/TouchscreenInput.cpp b/src/client/player/input/touchscreen/TouchscreenInput.cpp index 563de6c..37cb6d8 100755 --- a/src/client/player/input/touchscreen/TouchscreenInput.cpp +++ b/src/client/player/input/touchscreen/TouchscreenInput.cpp @@ -164,7 +164,7 @@ void TouchscreenInput_TestFps::onConfigChanged(const Config& c) { float maxPixels = _minecraft->pixelCalc.millimetersToPixels(10); // float btnSize = Mth::Min(18 * Gui::GuiScale, maxPixels); - float btnSize = pc.millimetersToPixels(50 * Gui::GuiScale); + float btnSize = pc.millimetersToPixels(18 * Gui::GuiScale); _model.addArea(AREA_PAUSE, aPause = new RectangleArea(w - 4 - btnSize, 4, w - 4, 4 + btnSize)); _model.addArea(AREA_CHAT, aChat = new RectangleArea(w - 8 - btnSize * 2, 4, w - 8 - btnSize, 4 + btnSize)); From a16f76f2b6fc0281b9f43b8a28599c57631a7fd3 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 19:05:00 +0200 Subject: [PATCH 7/9] idk??? --- src/client/Minecraft.cpp | 33 +++++++++++++++++++++++++++++++++ src/client/Minecraft.h | 2 ++ 2 files changed, 35 insertions(+) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index e8f040d..0cc8e44 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -879,6 +879,13 @@ void Minecraft::tickInput() { if (!bai.isRemoveContinue()) handleBuildAction(&bai); } +#ifdef __ANDROID__ + bool isTryingToDestroyBlock = (options.useMouseForDigging + ? (Mouse::isButtonDown(MouseAction::ACTION_LEFT) && mouseDiggable) + : Keyboard::isKeyDown(options.keyDestroy.key)) + || (buildHandled && bai.isRemove()); + handleMouseDown(MouseAction::ACTION_LEFT, isTryingToDestroyBlock || (buildHandled && bai.isInteract())); +#endif } else { // Desktop: left mouse = destroy/attack if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { @@ -921,6 +928,32 @@ void Minecraft::tickInput() { TIMER_POP(); #endif } +void Minecraft::handleMouseDown(int button, bool down) { +#ifndef STANDALONE_SERVER +#ifndef RPI + if(player->isUsingItem()) { + if(!down && !Keyboard::isKeyDown(options.keyUse.key)) { + gameMode->releaseUsingItem(player); + } + return; + } +#endif + if(player->isSleeping()) { + return; + } + if (button == MouseAction::ACTION_LEFT && missTime > 0) return; + if (down && hitResult.type == TILE && button == MouseAction::ACTION_LEFT && !hitResult.indirectHit) { + int x = hitResult.x; + int y = hitResult.y; + int z = hitResult.z; + gameMode->continueDestroyBlock(x, y, z, hitResult.f); + particleEngine->crack(x, y, z, hitResult.f); + player->swing(); + } else { + gameMode->stopDestroyBlock(); + } +#endif +} void Minecraft::handleBuildAction(BuildActionIntention* action) { #ifndef STANDALONE_SERVER diff --git a/src/client/Minecraft.h b/src/client/Minecraft.h index cd9dcce..1a90b12 100755 --- a/src/client/Minecraft.h +++ b/src/client/Minecraft.h @@ -109,6 +109,8 @@ public: bool isLevelGenerated(); + void handleMouseDown(int button, bool down); + void audioEngineOn(); void audioEngineOff(); From 5251085752e513a236be09198caeaf09c1e90253 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 19:09:11 +0200 Subject: [PATCH 8/9] i broke all --- src/client/Minecraft.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index 0cc8e44..e200797 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -880,10 +880,7 @@ void Minecraft::tickInput() { handleBuildAction(&bai); } #ifdef __ANDROID__ - bool isTryingToDestroyBlock = (options.useMouseForDigging - ? (Mouse::isButtonDown(MouseAction::ACTION_LEFT) && mouseDiggable) - : Keyboard::isKeyDown(options.keyDestroy.key)) - || (buildHandled && bai.isRemove()); + bool isTryingToDestroyBlock = buildHandled && bai.isRemove(); handleMouseDown(MouseAction::ACTION_LEFT, isTryingToDestroyBlock || (buildHandled && bai.isInteract())); #endif } else { @@ -930,9 +927,9 @@ void Minecraft::tickInput() { } void Minecraft::handleMouseDown(int button, bool down) { #ifndef STANDALONE_SERVER -#ifndef RPI +#ifdef __ANDROID__ if(player->isUsingItem()) { - if(!down && !Keyboard::isKeyDown(options.keyUse.key)) { + if(!down) { gameMode->releaseUsingItem(player); } return; From 2acb57d051ac2eed1e958cc450cf6ea494652d31 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Sat, 21 Mar 2026 19:19:07 +0200 Subject: [PATCH 9/9] revert all sht --- src/client/Minecraft.cpp | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/src/client/Minecraft.cpp b/src/client/Minecraft.cpp index e200797..3d783bb 100755 --- a/src/client/Minecraft.cpp +++ b/src/client/Minecraft.cpp @@ -873,16 +873,12 @@ void Minecraft::tickInput() { if (useTouchscreen()) { // Touch: gesture recognizer classifies the action type (turn/destroy/build) BuildActionIntention bai; - bool buildHandled = inputHolder->getBuildInput()->tickBuild(player, &bai); - if (buildHandled) { - if (!bai.isRemoveContinue()) - handleBuildAction(&bai); + if (inputHolder && inputHolder->getBuildInput()->tickBuild(player, &bai)) { + handleBuildAction(&bai); + } else { + gameMode->stopDestroyBlock(); } -#ifdef __ANDROID__ - bool isTryingToDestroyBlock = buildHandled && bai.isRemove(); - handleMouseDown(MouseAction::ACTION_LEFT, isTryingToDestroyBlock || (buildHandled && bai.isInteract())); -#endif } else { // Desktop: left mouse = destroy/attack if (Mouse::isButtonDown(MouseAction::ACTION_LEFT)) { @@ -925,32 +921,6 @@ void Minecraft::tickInput() { TIMER_POP(); #endif } -void Minecraft::handleMouseDown(int button, bool down) { -#ifndef STANDALONE_SERVER -#ifdef __ANDROID__ - if(player->isUsingItem()) { - if(!down) { - gameMode->releaseUsingItem(player); - } - return; - } -#endif - if(player->isSleeping()) { - return; - } - if (button == MouseAction::ACTION_LEFT && missTime > 0) return; - if (down && hitResult.type == TILE && button == MouseAction::ACTION_LEFT && !hitResult.indirectHit) { - int x = hitResult.x; - int y = hitResult.y; - int z = hitResult.z; - gameMode->continueDestroyBlock(x, y, z, hitResult.f); - particleEngine->crack(x, y, z, hitResult.f); - player->swing(); - } else { - gameMode->stopDestroyBlock(); - } -#endif -} void Minecraft::handleBuildAction(BuildActionIntention* action) { #ifndef STANDALONE_SERVER