Viewing Single Trivia
▲
1
▼
Before version 18w07a (1.13), the height of large oak trees would be shared for each instance of the large tree generator created. Before Beta 1.8, this was not an issue since every time a large tree needed to be generated it used a new instance of the generator. However, from Beta 1.8 onward, each biome had its own large tree generator instance, resulting in naturally generated large trees sharing the same height per biome. These height values would remain the same until the game is restarted.
The source code below is generated using RetroMCP for version 1.2.5 unless otherwise stated.
Around line 340 of WorldGenBigTree.java, this can be found:
[code]
if(this.heightLimit == 0) {
this.heightLimit = 5 + this.rand.nextInt(this.heightLimitLimit);
}
[/code]
This code randomises the height of generated large oak trees. However, this height limit is set once due to the [code]this.heightLimit == 0[/code] check.
Line 51 of BiomeGenBase.java shows the generator instance being created: [code]protected WorldGenBigTree worldGenBigTree = new WorldGenBigTree(false);[/code] The instance is unique for every biome created and is used whenever a biome has large trees in it. Therefore, large tree heights are unique per biome. This is not too noticable however, since these trees only generate in forests, extreme hills, ice plains, jungles and plains.
Between Alpha v1.2.0 and Beta 1.7.3, BiomeGenBase still controlled what trees were generated, but it used a new large tree generator instance every time, as seen on line 64: [code]return (WorldGenerator)(var1.nextInt(10) == 0 ? new WorldGenBigTree() : new WorldGenTrees());[/code] In earlier versions, new generator instances were still being created with the exception that the height was shared per chunk: in Alpha v1.1.2_01, the following code was used around line 380 in ChunkProviderGenerate.populate().
[code]
Object var18 = new WorldGenTrees();
if(this.rand.nextInt(10) == 0) {
var18 = new WorldGenBigTree();
}
[/code]
In the image attached to this submission, it shows a world generated in Minecraft Java Edition 1.9.4. The red sand border shows the border between chunks generated before and after game reset. Trees with sea lanterns are large trees generated before the reset and trees with glowstone are large trees generated after the reset.
This bug has its own report on the official bug tracker:
https://bugs.mojang.com/browse/MC-11208
Around line 340 of WorldGenBigTree.java, this can be found:
[code]
if(this.heightLimit == 0) {
this.heightLimit = 5 + this.rand.nextInt(this.heightLimitLimit);
}
[/code]
This code randomises the height of generated large oak trees. However, this height limit is set once due to the [code]this.heightLimit == 0[/code] check.
Line 51 of BiomeGenBase.java shows the generator instance being created: [code]protected WorldGenBigTree worldGenBigTree = new WorldGenBigTree(false);[/code] The instance is unique for every biome created and is used whenever a biome has large trees in it. Therefore, large tree heights are unique per biome. This is not too noticable however, since these trees only generate in forests, extreme hills, ice plains, jungles and plains.
Between Alpha v1.2.0 and Beta 1.7.3, BiomeGenBase still controlled what trees were generated, but it used a new large tree generator instance every time, as seen on line 64: [code]return (WorldGenerator)(var1.nextInt(10) == 0 ? new WorldGenBigTree() : new WorldGenTrees());[/code] In earlier versions, new generator instances were still being created with the exception that the height was shared per chunk: in Alpha v1.1.2_01, the following code was used around line 380 in ChunkProviderGenerate.populate().
[code]
Object var18 = new WorldGenTrees();
if(this.rand.nextInt(10) == 0) {
var18 = new WorldGenBigTree();
}
[/code]
In the image attached to this submission, it shows a world generated in Minecraft Java Edition 1.9.4. The red sand border shows the border between chunks generated before and after game reset. Trees with sea lanterns are large trees generated before the reset and trees with glowstone are large trees generated after the reset.
This bug has its own report on the official bug tracker:
https://bugs.mojang.com/browse/MC-11208
Comments (0)
You must be logged in to post comments.
Related Games
Star Wars: Knights of the Old Republic II - The Sith Lords
Wolfenstein: The New Order
Hello Kitty Online
LEGO Island
Screencheat
Raptor: Call of the Shadows
MyPopgoes
Horizon Zero Dawn
Cars Mater-National Championship
Five Nights at Candy's
Angry Birds Space
City of Heroes
Tomb Raider: The Angel of Darkness
Friday Night Funkin'
Thaumistry: In Charm's Way
Assassin's Creed IV Black Flag
Ultrakill
The Faces of Evil Remastered
Enslaved: Odyssey to the West
Oddworld: New 'n' Tasty
The Dig
Cthulhu Saves the World
Dragon Ball: Sparking! Zero
Unreal Tournament III
Resident Evil Village
Sonic Adventure DX: Director's Cut
Earthworm Jim 3D
Bug!
Poker Night at the Inventory
Touhou Chireiden: Subterranean Animism
Halo 3
Phantasy Star IV: The End of the Millennium
Prison Architect
Mirror's Edge
Revelations: Persona
Armored Core VI: Fires of Rubicon
Skull and Bones
Days Gone
The Curse of Monkey Island
Red Dead Redemption 2
Slap City
Prince of Persia: The Two Thrones
Rayman Origins
River City Girls 2
Suicide Squad: Kill the Justice League
Ristar
Blasphemous II
Uncharted Waters: New Horizons
Command & Conquer: Red Alert 2
Guacamelee!