Program: 109854
Project: 109854
Buggy source:
public void genDecorations(Biome biome,World world,Random rand){
  int i=0;
  int k=0;
  if (BiomeGenTropicraft.DISABLEDECORATION) {
    System.out.println("String_Node_Str" + this);
    return;
  }
  if (ConfigGenRates.BAMBOO_CHANCE != 0 && rand.nextInt(ConfigGenRates.BAMBOO_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenBamboo(world,rand).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.NORMAL_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.NORMAL_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenNormalPalms(world,rand).generate(new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.CURVED_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.CURVED_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenCurvedPalms(world,rand).generate(new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.EIH_CHANCE != 0 && rand.nextInt(ConfigGenRates.EIH_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenEIH(world,rand).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  i=randCoord(rand,chunkPos.getX(),16);
  k=randCoord(rand,chunkPos.getZ(),16);
  new WorldGenTropicalFlowers(world,rand,BlockRegistry.flowers).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  if (ConfigGenRates.LARGE_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.LARGE_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenLargePalmTrees(world,rand).generate(world,rand,new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.FRUIT_TREE_CHANCE != 0 && rand.nextInt(ConfigGenRates.FRUIT_TREE_CHANCE) == 0) {
    int treeType=new Random((long)(chunkPos.getX() >> 2) << 32 | (long)(chunkPos.getZ() >> 2)).nextInt(4);
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenFruitTrees(world,rand,treeType).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.TALL_GRASS_CHANCE != 0 && rand.nextInt(ConfigGenRates.TALL_GRASS_CHANCE) == 0) {
    for (int a=0; a < 10; a++) {
      int xRand=rand.nextInt(16) + 8;
      int zRand=rand.nextInt(16) + 8;
      int yRand=world.getHeight(this.chunkPos.add(xRand,0,zRand)).getY() * 2;
      if (yRand > 0) {
        int rando=rand.nextInt(yRand);
        biome.getRandomWorldGenForGrass(rand).generate(world,rand,this.chunkPos.add(xRand,rando,zRand));
      }
    }
  }
}

Fixed version (ground truth):
public void genDecorations(Biome biome,World world,Random rand){
  int i=0;
  int k=0;
  if (BiomeGenTropicraft.DISABLEDECORATION) {
    System.out.println("String_Node_Str" + this);
    return;
  }
  if (ConfigGenRates.BAMBOO_CHANCE != 0 && rand.nextInt(ConfigGenRates.BAMBOO_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenBamboo(world,rand).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.NORMAL_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.NORMAL_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenNormalPalms(world,rand).generate(new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.CURVED_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.CURVED_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenCurvedPalms(world,rand).generate(new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.EIH_CHANCE != 0 && rand.nextInt(ConfigGenRates.EIH_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenEIH(world,rand).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  i=randCoord(rand,chunkPos.getX(),16);
  k=randCoord(rand,chunkPos.getZ(),16);
  new WorldGenTropicalFlowers(world,rand,BlockRegistry.flowers).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  if (ConfigGenRates.LARGE_PALM_CHANCE != 0 && rand.nextInt(ConfigGenRates.LARGE_PALM_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenLargePalmTrees(world,rand).generate(world,rand,new BlockPos(i,this.getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.FRUIT_TREE_CHANCE != 0 && rand.nextInt(ConfigGenRates.FRUIT_TREE_CHANCE) == 0) {
    int treeType=new Random((long)(chunkPos.getX() >> 2) << 32 | (long)(chunkPos.getZ() >> 2)).nextInt(4);
    i=randCoord(rand,chunkPos.getX(),16);
    k=randCoord(rand,chunkPos.getZ(),16);
    new WorldGenFruitTrees(world,rand,treeType).generate(new BlockPos(i,getTerrainHeightAt(world,i,k),k));
  }
  if (ConfigGenRates.TALL_GRASS_CHANCE != 0 && rand.nextInt(ConfigGenRates.TALL_GRASS_CHANCE) == 0) {
    for (int a=0; a < 10; a++) {
      int xRand=rand.nextInt(16) + 8;
      int zRand=rand.nextInt(16) + 8;
      int yRand=world.getHeight(this.chunkPos.add(xRand,0,zRand)).getY() * 2;
      if (yRand > 0) {
        int rando=rand.nextInt(yRand);
        biome.getRandomWorldGenForGrass(rand).generate(world,rand,this.chunkPos.add(xRand,rando,zRand));
      }
    }
  }
  if (ConfigGenRates.TALL_FLOWERS_CHANCE != 0 && rand.nextInt(ConfigGenRates.TALL_FLOWERS_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    int y=getTerrainHeightAt(world,i,k);
    k=randCoord(rand,chunkPos.getZ(),16);
    BlockPos pos=new BlockPos(i,y,k);
    (new WorldGenTallFlower(world,rand,BlockRegistry.pineapple.getDefaultState())).generate(pos);
  }
  if (ConfigGenRates.TALL_FLOWERS_CHANCE != 0 && rand.nextInt(ConfigGenRates.TALL_FLOWERS_CHANCE) == 0) {
    i=randCoord(rand,chunkPos.getX(),16);
    int y=getTerrainHeightAt(world,i,k);
    k=randCoord(rand,chunkPos.getZ(),16);
    BlockPos pos=new BlockPos(i,y,k);
    (new WorldGenTallFlower(world,rand,BlockRegistry.iris.getDefaultState())).generate(pos);
  }
}