From 1df2fd42dd8f384dadecc73f1537f5be075b477d Mon Sep 17 00:00:00 2001 From: piebot <164795032+piebotc@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:04:55 +0300 Subject: [PATCH] Bug fixes --- Minecraft.World/Biome.cpp | 8 ++++---- Minecraft.World/CauldronTile.cpp | 22 ++++++++++++++++++++++ Minecraft.World/CauldronTile.h | 1 + Minecraft.World/FurnaceRecipes.cpp | 1 + 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Minecraft.World/Biome.cpp b/Minecraft.World/Biome.cpp index 311aba55..93d1c9fd 100644 --- a/Minecraft.World/Biome.cpp +++ b/Minecraft.World/Biome.cpp @@ -430,8 +430,8 @@ int Biome::getRandomDoublePlantType(Random *random) { int type = random->nextInt(10); - if (type < 7) return 0; - if (type == 7) return 3; - if (type == 8) return 4; - return 2; + if (type < 7) return 1; + if (type == 7) return 4; + if (type == 8) return 5; + return 3; } \ No newline at end of file diff --git a/Minecraft.World/CauldronTile.cpp b/Minecraft.World/CauldronTile.cpp index c77ebd28..03a41dd4 100644 --- a/Minecraft.World/CauldronTile.cpp +++ b/Minecraft.World/CauldronTile.cpp @@ -7,6 +7,7 @@ #include "net.minecraft.world.entity.player.h" #include "net.minecraft.world.h" #include "..\Minecraft.Client\ServerPlayer.h" +#include "net.minecraft.world.phys.h" const wstring CauldronTile::TEXTURE_INSIDE = L"cauldron_inner"; const wstring CauldronTile::TEXTURE_BOTTOM = L"cauldron_bottom"; @@ -31,6 +32,27 @@ Icon *CauldronTile::getTexture(int face, int data) return icon; } +void CauldronTile::entityInside(Level* level, int x, int y, int z, shared_ptr entity) +{ + if (level->isClientSide) return; + + int data = level->getData(x, y, z); + int fillLevel = getFillLevel(data); + + double waterSurfaceY = ((3 * fillLevel + 6) * 0.0625) + y; + + if (level->isClientSide) return; + if (!entity->isOnFire()) return; + + if (fillLevel <= 0) return; + + if (entity->bb->y0 <= waterSurfaceY) + { + entity->clearFire(); + level->setData(x, y, z, fillLevel - 1, Tile::UPDATE_CLIENTS); + } +} + void CauldronTile::registerIcons(IconRegister *iconRegister) { iconInner = iconRegister->registerIcon(L"cauldron_inner"); diff --git a/Minecraft.World/CauldronTile.h b/Minecraft.World/CauldronTile.h index dbe5f7b8..da810a28 100644 --- a/Minecraft.World/CauldronTile.h +++ b/Minecraft.World/CauldronTile.h @@ -20,6 +20,7 @@ public: virtual Icon *getTexture(int face, int data); //@Override void registerIcons(IconRegister *iconRegister); + void entityInside(Level* level, int x, int y, int z, shared_ptr entity); static Icon *getTexture(const wstring &name); virtual void addAABBs(Level *level, int x, int y, int z, AABB *box, AABBList *boxes, shared_ptr source); virtual void updateDefaultShape(); diff --git a/Minecraft.World/FurnaceRecipes.cpp b/Minecraft.World/FurnaceRecipes.cpp index cec62b2b..a1821e56 100644 --- a/Minecraft.World/FurnaceRecipes.cpp +++ b/Minecraft.World/FurnaceRecipes.cpp @@ -47,6 +47,7 @@ FurnaceRecipes::FurnaceRecipes() addFurnaceRecipy(Tile::lapisOre_Id, new ItemInstance(Item::dye_powder, 1, DyePowderItem::BLUE), .2f); addFurnaceRecipy(Tile::netherQuartz_Id, new ItemInstance(Item::netherQuartz), .2f); + addFurnaceRecipy(Tile::tree2Trunk_Id, new ItemInstance(Item::coal, 1, 1), .15f); } void FurnaceRecipes::addFurnaceRecipy(int itemId, ItemInstance *result, float value)