Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-29844

Big Oak Trees fail to generate in Forest Biomes


    • Icon: Bug Bug
    • Resolution: Fixed
    • Minecraft 15w44a
    • Minecraft 13w36a, Minecraft 13w36b, Minecraft 13w37a, Minecraft 13w37b, Minecraft 13w39a, Minecraft 13w39b, Minecraft 13w41a, Minecraft 13w41b, Minecraft 13w42a, Minecraft 13w42b, Minecraft 14w08a, Minecraft 1.7.5, Minecraft 14w10c, Minecraft 1.7.9, Minecraft 14w21b, Minecraft 1.7.10-pre3, Minecraft 14w34c, Minecraft 1.8, Minecraft 1.8.1
    • None
    • Community Consensus

      Big Oak Trees completely fail to generate in Forest, Flower Forest, etc ...
      This bug seems worse than MC-11208 since big trees doesn't even attempt to generate, instead of being generated weirdly
      In jungle biomes, however, they are replaced by trees with generical spherical foliage

      Steps to reproduce :
      _Find a Biome in which Oak Trees can spawn naturally
      _Notice how Big Oak Trees are missing

      Alternate way :
      _Create a superflat world of a Forest for exemple with decorations enabled
      _Notice how Big Oak Trees are missing

      Turns out it's a so-called "FPS fix" by Jeb


      The reason they got removed was because they don't follow the leaf decay rules, and thus caused a LOT of chunk updates. I basically doubled my FPS in forests by removing these.

      My intention was not to remove them completely, though, but rather "fix them later". The problem now is that the code for those trees is super-complex, and not the easiest thing to work with.

      Problem description: Leaves must be placed so they are connected via other leaves to a tree trunk, max 4 steps away. Where's the bug?

      BigTree source code from Jeb: big_tree.java

      Paul Spooner, original maker of Forester Filter and gave the Big Tree generation code to Notch, says:

      The stuff you're looking for is in the "foliageShape" function. I suggest replacing the line:

      else if ((y == 0) || (y == (foliageHeight - 1))) return (float) 2;

      with the following two lines

      else if ((y == 0) || (y == (foliageHeight - 2))) return (float) 2;
      else if (y == (foliageHeight - 1)) return (float) 1.5;

      The change should reduce the size of the foliage clusters and prevent decay.

        1. 2014-02-01_19.13.42.png
          624 kB
        2. 2014-02-01_19.18.28.png
          679 kB
        3. 2014-02-01_19.32.29.png
          781 kB
        4. 2014-03-09_11.03.13.png
          1.21 MB
        5. 2014-03-09_11.06.15.png
          1.22 MB
        6. 2014-03-09_11.10.26.png
          1.15 MB
        7. 2016-08-04_20.20.09.png
          1.19 MB
        8. 2016-08-05_03.08.54.png
          2.41 MB
        9. big_tree.java
          21 kB

            grum [Mojang] Grum (Erik Broes)
            missingno_26 Missingno_26
            17 Vote for this issue
            11 Start watching this issue