Fix growing large dark oak trees

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2018-07-28 08:41:45 +10:00
parent f97fd5873f
commit 5b98505463
2 changed files with 35 additions and 38 deletions

View File

@@ -8,29 +8,42 @@
public abstract class WorldGenTreeProvider {
@@ -16,6 +17,25 @@
@@ -16,6 +17,7 @@
if (worldgentreeabstract == null) {
return false;
} else {
+ // CraftBukkit start
+ if (worldgentreeabstract instanceof WorldGenAcaciaTree) {
+ BlockSapling.treeType = TreeType.ACACIA;
+ } else if (worldgentreeabstract instanceof WorldGenBigTree) {
+ BlockSapling.treeType = TreeType.BIG_TREE;
+ } else if (worldgentreeabstract instanceof WorldGenForest) {
+ BlockSapling.treeType = TreeType.BIRCH;
+ } else if (worldgentreeabstract instanceof WorldGenForestTree) {
+ BlockSapling.treeType = TreeType.DARK_OAK;
+ } else if (worldgentreeabstract instanceof WorldGenTaiga1) {
+ BlockSapling.treeType = TreeType.REDWOOD;
+ } else if (worldgentreeabstract instanceof WorldGenTaiga2) {
+ BlockSapling.treeType = TreeType.REDWOOD;
+ } else if (worldgentreeabstract instanceof WorldGenTrees) {
+ BlockSapling.treeType = TreeType.TREE;
+ } else {
+ throw new IllegalArgumentException("Unknown tree generator " + worldgentreeabstract);
+ }
+ // CraftBukkit end
+ setTreeType(worldgentreeabstract); // CraftBukkit
generatoraccess.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 4);
if (worldgentreeabstract.generate(generatoraccess, generatoraccess.getChunkProvider().getChunkGenerator(), random, blockposition, WorldGenFeatureConfiguration.e)) {
return true;
@@ -25,4 +27,30 @@
}
}
}
+
+ // CraftBukkit start
+ protected void setTreeType(WorldGenTreeAbstract worldgentreeabstract) {
+ if (worldgentreeabstract instanceof WorldGenAcaciaTree) {
+ BlockSapling.treeType = TreeType.ACACIA;
+ } else if (worldgentreeabstract instanceof WorldGenBigTree) {
+ BlockSapling.treeType = TreeType.BIG_TREE;
+ } else if (worldgentreeabstract instanceof WorldGenForest) {
+ BlockSapling.treeType = TreeType.BIRCH;
+ } else if (worldgentreeabstract instanceof WorldGenForestTree) {
+ BlockSapling.treeType = TreeType.DARK_OAK;
+ } else if (worldgentreeabstract instanceof WorldGenJungleTree) {
+ BlockSapling.treeType = TreeType.JUNGLE;
+ } else if (worldgentreeabstract instanceof WorldGenMegaTree) {
+ BlockSapling.treeType = TreeType.MEGA_REDWOOD;
+ } else if (worldgentreeabstract instanceof WorldGenTaiga1) {
+ BlockSapling.treeType = TreeType.REDWOOD;
+ } else if (worldgentreeabstract instanceof WorldGenTaiga2) {
+ BlockSapling.treeType = TreeType.REDWOOD;
+ } else if (worldgentreeabstract instanceof WorldGenTrees) {
+ BlockSapling.treeType = TreeType.TREE;
+ } else {
+ throw new IllegalArgumentException("Unknown tree generator " + worldgentreeabstract);
+ }
+ }
+ // CraftBukkit end
}