From d1bf3952cda245b113a0243fb5175dec6514ebbc Mon Sep 17 00:00:00 2001
From: Tranqlmao <110073921+Tranqlmao@users.noreply.github.com>
Date: Tue, 7 Jul 2026 15:07:01 -0400
Subject: [PATCH] TU43 Release 3
+ Gameplay changes
Stained clay renamed to "Hardened Clay" (e.g. White Hardened Clay)
Gold ore now generates in mesa biomes between Y=32 and Y=79
Shears can no longer be enchanted with Silk Touch
Pigs can be led/bred with potatoes and beetroots (in addition to carrots)
Elder Guardians now drop dry sponges instead of wet sponges
Endermen now spawn in the Nether
---
.../Windows64Media/loc/stringsGeneric.xml | 34 +++++++++----------
Minecraft.Server/cmake/sources/Common.cmake | 2 ++
Minecraft.World/BiomeDecorator.h | 1 +
Minecraft.World/Guardian.cpp | 5 ++-
Minecraft.World/HellBiome.cpp | 1 +
Minecraft.World/MesaBiome.cpp | 7 ++++
Minecraft.World/Pig.cpp | 7 +++-
Minecraft.World/UntouchingEnchantment.cpp | 1 -
8 files changed, 38 insertions(+), 20 deletions(-)
diff --git a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml
index 13867127..7121162b 100644
--- a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml
+++ b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml
@@ -3712,7 +3712,7 @@ Can also be used for low-level lighting.
- Stained Clay
+ Hardened Clay
@@ -3728,67 +3728,67 @@ Can also be used for low-level lighting.
- Black Stained Clay
+ Black Hardened Clay
- Red Stained Clay
+ Red Hardened Clay
- Green Stained Clay
+ Green Hardened Clay
- Brown Stained Clay
+ Brown Hardened Clay
- Blue Stained Clay
+ Blue Hardened Clay
- Purple Stained Clay
+ Purple Hardened Clay
- Cyan Stained Clay
+ Cyan Hardened Clay
- Light Gray Stained Clay
+ Light Gray Hardened Clay
- Gray Stained Clay
+ Gray Hardened Clay
- Pink Stained Clay
+ Pink Hardened Clay
- Lime Stained Clay
+ Lime Hardened Clay
- Yellow Stained Clay
+ Yellow Hardened Clay
- Light Blue Stained Clay
+ Light Blue Hardened Clay
- Magenta Stained Clay
+ Magenta Hardened Clay
- Orange Stained Clay
+ Orange Hardened Clay
- White Stained Clay
+ White Hardened Clay
diff --git a/Minecraft.Server/cmake/sources/Common.cmake b/Minecraft.Server/cmake/sources/Common.cmake
index 1dd26941..b6497ca4 100644
--- a/Minecraft.Server/cmake/sources/Common.cmake
+++ b/Minecraft.Server/cmake/sources/Common.cmake
@@ -413,6 +413,8 @@ set(_MINECRAFT_SERVER_COMMON_ROOT
"${_MS_SRC}/../Minecraft.Client/QuadrupedModel.cpp"
"${_MS_SRC}/../Minecraft.Client/RabbitModel.cpp"
"${_MS_SRC}/../Minecraft.Client/RabbitRenderer.cpp"
+ "${_MS_SRC}/../Minecraft.Client/PolarBearModel.cpp"
+ "${_MS_SRC}/../Minecraft.Client/PolarBearRenderer.cpp"
"${_MS_SRC}/../Minecraft.Client/Rect2i.cpp"
"${_MS_SRC}/../Minecraft.Client/RedDustParticle.cpp"
"${_MS_SRC}/../Minecraft.Client/RemotePlayer.cpp"
diff --git a/Minecraft.World/BiomeDecorator.h b/Minecraft.World/BiomeDecorator.h
index 2c7e9404..4502fa93 100644
--- a/Minecraft.World/BiomeDecorator.h
+++ b/Minecraft.World/BiomeDecorator.h
@@ -17,6 +17,7 @@ class BiomeDecorator
friend class SavannaBiome;
friend class JungleBiome;
friend class FlowerForestBiome;
+ friend class MesaBiome;
protected:
Level *level;
Random *random;
diff --git a/Minecraft.World/Guardian.cpp b/Minecraft.World/Guardian.cpp
index 59cd023a..b7ed612b 100644
--- a/Minecraft.World/Guardian.cpp
+++ b/Minecraft.World/Guardian.cpp
@@ -206,7 +206,10 @@ float Guardian::getSpikesAnimation(float partialTicks)
void Guardian::dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel)
{
- //loot (prismarine, sponge)
+ if (isElder())
+ {
+ spawnAtLocation(make_shared(Tile::sponge_Id, 1, 0), 0.0f);
+ }
}
float Guardian::getEyeHeight()
diff --git a/Minecraft.World/HellBiome.cpp b/Minecraft.World/HellBiome.cpp
index 865b21d7..ca49d79f 100644
--- a/Minecraft.World/HellBiome.cpp
+++ b/Minecraft.World/HellBiome.cpp
@@ -15,4 +15,5 @@ HellBiome::HellBiome(int id) : Biome(id)
enemies.push_back(new MobSpawnerData(eTYPE_PIGZOMBIE, 100, 4, 4));
enemies.push_back(new MobSpawnerData(eTYPE_LAVASLIME, 1, 4, 4));
enemies.push_back(new MobSpawnerData(eTYPE_SKELETON, 1, 4, 4));
+ enemies.push_back(new MobSpawnerData(eTYPE_ENDERMAN, 1, 1, 4));
}
\ No newline at end of file
diff --git a/Minecraft.World/MesaBiome.cpp b/Minecraft.World/MesaBiome.cpp
index 9e8eda19..dc4fa951 100644
--- a/Minecraft.World/MesaBiome.cpp
+++ b/Minecraft.World/MesaBiome.cpp
@@ -182,6 +182,13 @@ BandEntry MesaBiome::getBand(int x, int y, int z)
void MesaBiome::decorate(Level* level, Random* random, int xo, int zo)
{
Biome::decorate(level, random, xo, zo);
+ decorator->level = level;
+ decorator->random = random;
+ decorator->xo = xo;
+ decorator->zo = zo;
+ decorator->decorateDepthSpan(20, decorator->goldOreFeature, 32, 80);
+ decorator->level = nullptr;
+ decorator->random = nullptr;
}
Feature* MesaBiome::getTreeFeature(Random* random)
diff --git a/Minecraft.World/Pig.cpp b/Minecraft.World/Pig.cpp
index 38af8cab..03c9a5da 100644
--- a/Minecraft.World/Pig.cpp
+++ b/Minecraft.World/Pig.cpp
@@ -36,6 +36,8 @@ Pig::Pig(Level *level) : Animal( level )
goalSelector.addGoal(3, new BreedGoal(this, 1.0));
goalSelector.addGoal(4, new TemptGoal(this, 1.2, Item::carrot_on_a_stick_Id, false));
goalSelector.addGoal(4, new TemptGoal(this, 1.2, Item::carrot_Id, false));
+ goalSelector.addGoal(4, new TemptGoal(this, 1.2, Item::potato_Id, false));
+ goalSelector.addGoal(4, new TemptGoal(this, 1.2, Item::beetroot_Id, false));
goalSelector.addGoal(5, new FollowParentGoal(this, 1.1));
goalSelector.addGoal(6, new RandomStrollGoal(this, 1.0));
goalSelector.addGoal(7, new LookAtPlayerGoal(this, typeid(Player), 6));
@@ -199,7 +201,10 @@ shared_ptr Pig::getBreedOffspring(shared_ptr target)
bool Pig::isFood(shared_ptr itemInstance)
{
- return itemInstance != nullptr && itemInstance->id == Item::carrot_Id;
+ if (itemInstance == nullptr) return false;
+ return itemInstance->id == Item::carrot_Id
+ || itemInstance->id == Item::potato_Id
+ || itemInstance->id == Item::beetroot_Id;
}
ControlledByPlayerGoal *Pig::getControlGoal()
diff --git a/Minecraft.World/UntouchingEnchantment.cpp b/Minecraft.World/UntouchingEnchantment.cpp
index 1e5a41b7..30f92c3d 100644
--- a/Minecraft.World/UntouchingEnchantment.cpp
+++ b/Minecraft.World/UntouchingEnchantment.cpp
@@ -29,6 +29,5 @@ bool UntouchingEnchantment::isCompatibleWith(Enchantment *other) const
bool UntouchingEnchantment::canEnchant(shared_ptr item)
{
- if (item->getItem()->id == Item::shears_Id) return true;
return Enchantment::canEnchant(item);
}
\ No newline at end of file