diff --git a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java index f08e66589..c6e02b7a4 100644 --- a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java @@ -556,11 +556,16 @@ public class IrisGenerator extends ParallaxWorldGenerator else { - MB mbx = biome.getScatterChanceSingle(scatter(wx, h, wz)); + MB mbx = biome.getScatterChanceSingle(scatter(wx, h, wz), scatter(wz, h, wx)); if(!mbx.material.equals(Material.AIR)) { data.setBlock(x, h + 1, z, mbx.material, mbx.data); + + if(mbx.material.equals(Material.DOUBLE_PLANT)) + { + data.setBlock(x, h + 2, z, mbx.material, (byte) 10); + } } } diff --git a/src/main/java/ninja/bytecode/iris/pack/IrisBiome.java b/src/main/java/ninja/bytecode/iris/pack/IrisBiome.java index 24b2fba7a..261e9bb82 100644 --- a/src/main/java/ninja/bytecode/iris/pack/IrisBiome.java +++ b/src/main/java/ninja/bytecode/iris/pack/IrisBiome.java @@ -599,17 +599,29 @@ public class IrisBiome return scatterChance; } - public MB getScatterChanceSingle(double d) + public MB getScatterChanceSingle(double d, double aux) { + KList a = new KList<>(); + for(MB i : getScatterChance().keySet()) { if(d < getScatterChance().get(i)) { - return i; + a.add(i); } } - return MB.of(Material.AIR); + if(a.isEmpty()) + { + return MB.of(Material.AIR); + } + + if(a.size() == 1) + { + return a.get(0); + } + + return a.get((int) (aux * (a.size() - 1))); } public static KList getBiomes()