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
The Basement Collection
Teenage Mutant Ninja Turtles: Mutants in Manhattan
Call of Duty: Modern Warfare
Titanfall
Bendy and the Dark Revival
Mutant Football League
All Elite Wrestling: Fight Forever
Cooking Companions
Amok
Samurai Shodown III
Bubsy: The Woolies Strike Back
Burnout Paradise
Choo-Choo Charles
Dead Island
Forsaken
Poker Night at the Inventory
Shadow Warrior
Murdered: Soul Suspect
Sonic Heroes
Disney Infinity 3.0
BioShock Infinite
Call of Duty: Modern Warfare III
Immortals Fenyx Rising
Wolfenstein: The Old Blood
Manhunt
SpongeBob SquarePants: Krabby Quest
Crash Bandicoot N. Sane Trilogy
Star Wars: The Force Unleashed II
Mega Man Legends
Bad Piggies
Fallout Tactics: Brotherhood of Steel
The Walking Dead: Season Two
Cabin Fever
Jimmy Neutron: Boy Genius
Castle Shikigami 2
SWAT 4
Guilty Gear Xrd: Sign
Soul Hackers 2
My Time at Portia
Yakuza 6: The Song of Life
Phoenix Wright: Ace Attorney - Trials and Tribulations
Star Trek: Elite Force II
Touhou Shinkirou: Hopeless Masquerade
Watch Dogs 2
Dead to Rights II
Grid 2
Persona 3 Reload
Eternights
Resident Evil 5
Doom 3