From d36a027e00bf25545b2025d1f44bbfd9ab37faa8 Mon Sep 17 00:00:00 2001 From: NSDeathman <104826306+NSDeathman@users.noreply.github.com> Date: Mon, 18 May 2026 22:13:26 +0400 Subject: [PATCH 1/6] feat(TU31): Villagers turn into witches when struck by lightning (#83) * Villagers turn into witches when struck by lightning * fix: include statement for if a villager has a custom nametag * fix: fix unneccesary line * Build fix --------- Co-authored-by: piebot <274605694+pieeebot@users.noreply.github.com> --- Minecraft.World/Villager.cpp | 18 +++++++++++++++++- Minecraft.World/Villager.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Minecraft.World/Villager.cpp b/Minecraft.World/Villager.cpp index e20a9924..a181df84 100644 --- a/Minecraft.World/Villager.cpp +++ b/Minecraft.World/Villager.cpp @@ -156,7 +156,7 @@ bool Villager::mobInteract(shared_ptr player) shared_ptr item = player->inventory->getSelected(); bool holdingSpawnEgg = item != nullptr && item->id == Item::spawnEgg_Id; - if (!holdingSpawnEgg && isAlive() && !isTrading() && !isBaby()) + if (!player->isSneaking() && !holdingSpawnEgg && isAlive() && !isTrading() && !isBaby()) { if (!level->isClientSide) { @@ -776,3 +776,19 @@ wstring Villager::getDisplayName() }; return app.GetString(name); } + +void Villager::thunderHit(const LightningBolt *lightningBolt) +{ + if (level->isClientSide) return; + shared_ptr witch = std::make_shared(level); + witch->moveTo(x, y, z, yRot, xRot); + + if (this->hasCustomName()) + witch->setCustomName(this->getCustomName()); + + if (this->isPersistenceRequired()) + witch->setPersistenceRequired(); + + level->addEntity(witch); + remove(); +} diff --git a/Minecraft.World/Villager.h b/Minecraft.World/Villager.h index d8aeb15a..f08a028b 100644 --- a/Minecraft.World/Villager.h +++ b/Minecraft.World/Villager.h @@ -147,4 +147,5 @@ public: virtual shared_ptr getBreedOffspring(shared_ptr target); virtual bool canBeLeashed(); virtual wstring getDisplayName(); + virtual void thunderHit(const LightningBolt *lightningBolt); }; \ No newline at end of file From 42ee0b519ebf13abbebeb590ca8c9f681b080d55 Mon Sep 17 00:00:00 2001 From: NSDeathman <104826306+NSDeathman@users.noreply.github.com> Date: Mon, 18 May 2026 23:02:31 +0400 Subject: [PATCH 2/6] feat(TU31): Creepers can be ignited with flint and steel (#84) * TU31 feature: Creepers can be ignited with flint and steel * make mobInteract more accurate to decomp --------- Co-authored-by: piebot <274605694+pieeebot@users.noreply.github.com> --- Minecraft.World/Creeper.cpp | 36 +++++++++++++++++++++++++++++++++++ Minecraft.World/Creeper.h | 10 +++++++++- Minecraft.World/SwellGoal.cpp | 6 ++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/Minecraft.World/Creeper.cpp b/Minecraft.World/Creeper.cpp index dde58894..e5250fdb 100644 --- a/Minecraft.World/Creeper.cpp +++ b/Minecraft.World/Creeper.cpp @@ -26,6 +26,7 @@ void Creeper::_init() oldSwell = 0; maxSwell = 30; explosionRadius = 3; + ignited = false; } Creeper::Creeper(Level *level) : Monster( level ) @@ -190,3 +191,38 @@ void Creeper::thunderHit(const LightningBolt *lightningBolt) Monster::thunderHit(lightningBolt); entityData->set(DATA_IS_POWERED, static_cast(1)); } + +void Creeper::Ignite() +{ + setSwellDir(1); + ignited = true; +} + +bool Creeper::isIgnited() +{ + return ignited; +} + +bool Creeper::mobInteract(shared_ptr player) +{ + shared_ptr item = player->inventory->getSelected(); + + if (item == nullptr || item->id != Item::flintAndSteel_Id) + return Mob::mobInteract(player); + + playSound(eSoundType_FIRE_NEWIGNITE, 1, random->nextFloat() * 0.4f + 0.8f); + player->swing(); + + if (!level->isClientSide) + { + if (!isIgnited()) + { + Ignite(); + item->hurtAndBreak(1, player); + return true; + } + return Mob::mobInteract(player); + } + + return true; +} diff --git a/Minecraft.World/Creeper.h b/Minecraft.World/Creeper.h index d5cd4cff..ed9ff59d 100644 --- a/Minecraft.World/Creeper.h +++ b/Minecraft.World/Creeper.h @@ -21,6 +21,8 @@ private: int maxSwell; int explosionRadius; + bool ignited; + void _init(); public: @@ -34,6 +36,8 @@ public: virtual int getMaxFallDistance(); + virtual bool mobInteract(shared_ptr player); + protected: virtual void causeFallDamage(float distance); virtual void defineSynchedData(); @@ -61,5 +65,9 @@ protected: public: int getSwellDir(); void setSwellDir(int dir); - void thunderHit(const LightningBolt *lightningBolt) ; + void thunderHit(const LightningBolt *lightningBolt); + +public: + void Ignite(); + bool isIgnited(); }; diff --git a/Minecraft.World/SwellGoal.cpp b/Minecraft.World/SwellGoal.cpp index 0fd3c34a..a77037a4 100644 --- a/Minecraft.World/SwellGoal.cpp +++ b/Minecraft.World/SwellGoal.cpp @@ -32,6 +32,12 @@ void SwellGoal::stop() void SwellGoal::tick() { + if(creeper->isIgnited()) + { + creeper->setSwellDir(1); + return; + } + if (target.lock() == nullptr) { creeper->setSwellDir(-1); From db6d5a76c24461cdbcc72ed74e24c28df72b34ed Mon Sep 17 00:00:00 2001 From: pieeebot <274605694+pieeebot@users.noreply.github.com> Date: Tue, 19 May 2026 12:18:34 +0300 Subject: [PATCH 3/6] chore: release v1.0.4b --- BUMP | 2 +- NOTES.md | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/BUMP b/BUMP index 75363ac2..d99a1985 100644 --- a/BUMP +++ b/BUMP @@ -1 +1 @@ -1.0.3b +1.0.4b diff --git a/NOTES.md b/NOTES.md index aa034806..966c46f4 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1,8 +1,16 @@ -# neoLegacy v1.0.3b +# neoLegacy v1.0.4b -- Fixed a crash when running the server software on Linux via Wine. +### Bug Fixes +- Fixed Podzol bottom face displaying incorrect texture (was using side texture instead of dirt) +- Fixed cursor icon not updating when hovering over UI elements -image +### Changes +- Added TU31 parity changes which include: + - Creepers can now be ignited with Flint and Steel + - Village gravel roads now have Cobblestone underneath + - Villagers now transform into Witches when struck by lightning + +roadmap # Download Get the latest build from [LCE Emerald Launcher](https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases) or the upcoming LC Launcher. From b91b0c9810f2c22dc254cb090ff2e0ba00afbc2e Mon Sep 17 00:00:00 2001 From: pieeebot <274605694+pieeebot@users.noreply.github.com> Date: Tue, 19 May 2026 12:19:42 +0300 Subject: [PATCH 4/6] chore: fix patch note --- NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NOTES.md b/NOTES.md index 966c46f4..933ebe47 100644 --- a/NOTES.md +++ b/NOTES.md @@ -2,9 +2,9 @@ ### Bug Fixes - Fixed Podzol bottom face displaying incorrect texture (was using side texture instead of dirt) -- Fixed cursor icon not updating when hovering over UI elements ### Changes +- Cursor icon now changes when hovering over different UI elements - Added TU31 parity changes which include: - Creepers can now be ignited with Flint and Steel - Village gravel roads now have Cobblestone underneath From 092d9481dcd3ad1a9221642db08aac0cf7ae6935 Mon Sep 17 00:00:00 2001 From: car keys <109132519+meowica@users.noreply.github.com> Date: Tue, 19 May 2026 20:12:34 +0800 Subject: [PATCH 5/6] chore: fix broken link (#92) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c6124e69..88f7bb9d 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Huge thanks to the following projects: - [Patoke/LCERenewed](https://github.com/Patoke/LCERenewed) - for some of the patches that required deep decompilation - [itsRevela/LCE-Revelations](https://github.com/itsRevela/LCE-Revelations) - for providing a stable project for neoLegacy to continue with -- [GabsPuNs/MinecraftConsoles](https://github.com/GabsPuNs/MinecraftConsoles) - for providing us with their implemention of the Classic Crafting Feature. +- [GabsPuNs/Project-Zenith](https://github.com/GabsPuNs/Project-Zenith-Main) - for providing us with their implemention of the Classic Crafting Feature. # Build & Run From c326eabbb430302cd6d6261364ab416df53b9498 Mon Sep 17 00:00:00 2001 From: piebot <274605694+pieeebot@users.noreply.github.com> Date: Tue, 19 May 2026 15:15:01 +0300 Subject: [PATCH 6/6] chore: update revelations link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 88f7bb9d..008a0bee 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Users can download our [Nightly Build](https://github.com/pieeebot/neoLegacy/rel Huge thanks to the following projects: - [Patoke/LCERenewed](https://github.com/Patoke/LCERenewed) - for some of the patches that required deep decompilation -- [itsRevela/LCE-Revelations](https://github.com/itsRevela/LCE-Revelations) - for providing a stable project for neoLegacy to continue with +- [itsRevela/LCE-Revelations](https://git.revela.dev/itsRevela/LCE-Revelations) - for providing a stable project for neoLegacy to continue with - [GabsPuNs/Project-Zenith](https://github.com/GabsPuNs/Project-Zenith-Main) - for providing us with their implemention of the Classic Crafting Feature. # Build & Run