Fix Biomes

This commit is contained in:
Daniel Mills 2020-01-02 12:41:12 -05:00
parent 4ce37da17e
commit e2c8b6ae02

View File

@ -1,4 +1,4 @@
package ninja.bytecode.iris.biome;
package ninja.bytecode.iris.generator.biome;
import java.lang.reflect.Field;
@ -6,7 +6,7 @@ import org.bukkit.Material;
import org.bukkit.TreeType;
import org.bukkit.block.Biome;
import ninja.bytecode.iris.MB;
import ninja.bytecode.iris.util.MB;
import ninja.bytecode.iris.util.PolygonGenerator;
import ninja.bytecode.shuriken.collections.GList;
import ninja.bytecode.shuriken.collections.GMap;
@ -15,63 +15,63 @@ import ninja.bytecode.shuriken.math.CNG;
import ninja.bytecode.shuriken.math.M;
import ninja.bytecode.shuriken.math.RNG;
public class CBI
public class IrisBiome
{
//@builder
public static final CBI RIVER = new CBI("River", Biome.RIVER)
public static final IrisBiome RIVER = new IrisBiome("River", Biome.RIVER)
.surface(MB.of(Material.SAND));
public static final CBI BEACH = new CBI("Beach", Biome.BEACHES)
public static final IrisBiome BEACH = new IrisBiome("Beach", Biome.BEACHES)
.surface(MB.of(Material.SAND));
public static final CBI ROAD_GRAVEL = new CBI("Gravel Road", Biome.PLAINS)
public static final IrisBiome ROAD_GRAVEL = new IrisBiome("Gravel Road", Biome.PLAINS)
.surface(MB.of(Material.GRAVEL), MB.of(Material.COBBLESTONE))
.scatter(MB.of(Material.TORCH), 0.05);
public static final CBI ROAD_GRASSY = new CBI("Grass Path", Biome.PLAINS)
public static final IrisBiome ROAD_GRASSY = new IrisBiome("Grass Path", Biome.PLAINS)
.surface(MB.of(Material.GRASS_PATH))
.scatter(MB.of(Material.TORCH), 0.05);
public static final CBI OCEAN = new CBI("Ocean", Biome.OCEAN)
public static final IrisBiome OCEAN = new IrisBiome("Ocean", Biome.OCEAN)
.surface(MB.of(Material.SAND), MB.of(Material.SAND), MB.of(Material.SAND), MB.of(Material.CLAY), MB.of(Material.GRAVEL))
.simplexSurface()
.height(-0.03);
public static final CBI DEEP_OCEAN = new CBI("Deep Ocean", Biome.DEEP_OCEAN)
public static final IrisBiome DEEP_OCEAN = new IrisBiome("Deep Ocean", Biome.DEEP_OCEAN)
.surface(MB.of(Material.SAND), MB.of(Material.CLAY), MB.of(Material.GRAVEL))
.simplexSurface()
.height(-0.07);
public static final CBI DESERT = new CBI("Desert", Biome.DESERT)
public static final IrisBiome DESERT = new IrisBiome("Desert", Biome.DESERT)
.surface(MB.of(Material.SAND))
.scatter(MB.of(Material.DEAD_BUSH, 0), 0.008)
.dirt(MB.of(Material.SANDSTONE));
public static final CBI DESERT_RED = new CBI("Red Desert", Biome.DESERT)
public static final IrisBiome DESERT_RED = new IrisBiome("Red Desert", Biome.DESERT)
.surface(MB.of(Material.SAND, 1))
.scatter(MB.of(Material.DEAD_BUSH, 0), 0.008)
.dirt(MB.of(Material.RED_SANDSTONE));
public static final CBI DESERT_COMBINED = new CBI("Combined Desert", Biome.DESERT)
public static final IrisBiome DESERT_COMBINED = new IrisBiome("Combined Desert", Biome.DESERT)
.surface(MB.of(Material.SAND), MB.of(Material.SAND, 1))
.scatter(MB.of(Material.DEAD_BUSH, 0), 0.008)
.dirt(MB.of(Material.SANDSTONE), MB.of(Material.RED_SANDSTONE))
.simplexSurface();
public static final CBI DESERT_HILLS = new CBI("Desert Hills", Biome.DESERT_HILLS)
public static final IrisBiome DESERT_HILLS = new IrisBiome("Desert Hills", Biome.DESERT_HILLS)
.surface(MB.of(Material.SAND))
.amp(0.75)
.scatter(MB.of(Material.DEAD_BUSH, 0), 0.08)
.dirt(MB.of(Material.SANDSTONE));
public static final CBI MESA = new CBI("Mesa", Biome.MESA)
public static final IrisBiome MESA = new IrisBiome("Mesa", Biome.MESA)
.surface(MB.of(Material.HARD_CLAY), MB.of(Material.STAINED_CLAY, 1), MB.of(Material.STAINED_CLAY, 8), MB.of(Material.STAINED_CLAY, 12))
.dirt(MB.of(Material.CLAY), MB.of(Material.SAND), MB.of(Material.SAND, 1))
.simplexSurface();
public static final CBI SAVANNA = new CBI("Savanna", Biome.SAVANNA)
public static final IrisBiome SAVANNA = new IrisBiome("Savanna", Biome.SAVANNA)
.tree(TreeType.ACACIA, 0.102)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.18);
public static final CBI SAVANNA_HILLS = new CBI("Savanna Hills", Biome.SAVANNA_ROCK)
public static final IrisBiome SAVANNA_HILLS = new IrisBiome("Savanna Hills", Biome.SAVANNA_ROCK)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.18)
.tree(TreeType.ACACIA, 0.102)
.amp(0.75);
public static final CBI JUNGLE = new CBI("Jungle", Biome.JUNGLE)
public static final IrisBiome JUNGLE = new IrisBiome("Jungle", Biome.JUNGLE)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.058)
.tree(TreeType.JUNGLE, 0.9)
.tree(TreeType.JUNGLE_BUSH, 0.3)
.tree(TreeType.SMALL_JUNGLE, 0.1)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.013);
public static final CBI JUNGLE_HILLS = new CBI("Jungle Hills", Biome.JUNGLE_HILLS)
public static final IrisBiome JUNGLE_HILLS = new IrisBiome("Jungle Hills", Biome.JUNGLE_HILLS)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.081)
.tree(TreeType.JUNGLE, 0.9)
.tree(TreeType.JUNGLE_BUSH, 0.3)
@ -79,35 +79,35 @@ public class CBI
.amp(1.75)
.height(0.166)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.02);
public static final CBI SWAMP = new CBI("Swamp", Biome.SWAMPLAND)
public static final IrisBiome SWAMP = new IrisBiome("Swamp", Biome.SWAMPLAND)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.04)
.tree(TreeType.SWAMP, 0.25)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.03);
public static final CBI PLAINS = new CBI("Plains", Biome.PLAINS)
public static final IrisBiome PLAINS = new IrisBiome("Plains", Biome.PLAINS)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.38)
.amp(0.4)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.03);
public static final CBI DECAYING_PLAINS = new CBI("Decaying Plains", Biome.PLAINS)
public static final IrisBiome DECAYING_PLAINS = new IrisBiome("Decaying Plains", Biome.PLAINS)
.surface(MB.of(Material.GRASS_PATH), MB.of(Material.GRASS))
.scatter(MB.of(Material.LONG_GRASS, 1), 0.04)
.simplexSurface();
public static final CBI FOREST = new CBI("Forest", Biome.FOREST)
public static final IrisBiome FOREST = new IrisBiome("Forest", Biome.FOREST)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.23)
.tree(TreeType.TREE, 0.7)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI FOREST_HILLS = new CBI("Forest Hills", Biome.FOREST_HILLS)
public static final IrisBiome FOREST_HILLS = new IrisBiome("Forest Hills", Biome.FOREST_HILLS)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.23)
.amp(0.75)
.tree(TreeType.TREE, 0.7)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI FOREST_MOUNTAINS = new CBI("Forest Mountains", Biome.MUTATED_EXTREME_HILLS_WITH_TREES)
public static final IrisBiome FOREST_MOUNTAINS = new IrisBiome("Forest Mountains", Biome.MUTATED_EXTREME_HILLS_WITH_TREES)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.13)
.amp(2.25)
.height(0.265)
.tree(TreeType.MEGA_REDWOOD, 0.5)
.tree(TreeType.TALL_REDWOOD, 0.7)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI HAUNTED_FOREST = new CBI("Haunted Forest", Biome.MUTATED_SWAMPLAND)
public static final IrisBiome HAUNTED_FOREST = new IrisBiome("Haunted Forest", Biome.MUTATED_SWAMPLAND)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.13)
.tree(TreeType.JUNGLE_BUSH, 0.5)
.tree(TreeType.BIG_TREE, 0.4)
@ -118,52 +118,52 @@ public class CBI
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13)
.surface(MB.of(Material.GRASS), MB.of(Material.GRASS), MB.of(Material.GRASS), MB.of(Material.GRASS), MB.of(Material.DIRT), MB.of(Material.DIRT, 1), MB.of(Material.DIRT, 2))
.scatterSurface();
public static final CBI BIRCH_FOREST = new CBI("Birch Forest", Biome.BIRCH_FOREST)
public static final IrisBiome BIRCH_FOREST = new IrisBiome("Birch Forest", Biome.BIRCH_FOREST)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.23)
.tree(TreeType.BIRCH, 0.7)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI BIRCH_FOREST_HILLS = new CBI("Birch Forest Hills", Biome.BIRCH_FOREST_HILLS)
public static final IrisBiome BIRCH_FOREST_HILLS = new IrisBiome("Birch Forest Hills", Biome.BIRCH_FOREST_HILLS)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.23)
.tree(TreeType.BIRCH, 0.7)
.amp(0.75)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI ROOFED_FOREST = new CBI("Roofed Forest", Biome.ROOFED_FOREST)
public static final IrisBiome ROOFED_FOREST = new IrisBiome("Roofed Forest", Biome.ROOFED_FOREST)
.scatter(MB.of(Material.LONG_GRASS, 1), 0.23)
.tree(TreeType.DARK_OAK, 0.9)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.13);
public static final CBI TAIGA = new CBI("Taiga", Biome.TAIGA)
public static final IrisBiome TAIGA = new IrisBiome("Taiga", Biome.TAIGA)
.tree(TreeType.REDWOOD, 0.4)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.07);
public static final CBI EXTREME_HILLS = new CBI("Extreme Hills", Biome.EXTREME_HILLS)
public static final IrisBiome EXTREME_HILLS = new IrisBiome("Extreme Hills", Biome.EXTREME_HILLS)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.04)
.amp(1.565)
.height(0.22);
public static final CBI EXTREME_HILLS_TREES = new CBI("Extreme Hills +", Biome.EXTREME_HILLS_WITH_TREES)
public static final IrisBiome EXTREME_HILLS_TREES = new IrisBiome("Extreme Hills +", Biome.EXTREME_HILLS_WITH_TREES)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.09)
.tree(TreeType.REDWOOD, 0.1)
.amp(1.525)
.height(0.22);
public static final CBI TAIGA_COLD = new CBI("Taiga Cold", Biome.TAIGA_COLD)
public static final IrisBiome TAIGA_COLD = new IrisBiome("Taiga Cold", Biome.TAIGA_COLD)
.tree(TreeType.REDWOOD, 0.3)
.scatter(MB.of(Material.LONG_GRASS, 2), 0.04);
public static final CBI TAIGA_COLD_HILLS = new CBI("Taiga Cold Hills", Biome.TAIGA_COLD_HILLS)
public static final IrisBiome TAIGA_COLD_HILLS = new IrisBiome("Taiga Cold Hills", Biome.TAIGA_COLD_HILLS)
.tree(TreeType.REDWOOD, 0.15).amp(0.75);
public static final CBI ICE_FLATS = new CBI("Ice Flats", Biome.ICE_FLATS);
public static final CBI ICE_MOUNTAINS = new CBI("Ice Mountains", Biome.ICE_MOUNTAINS)
public static final IrisBiome ICE_FLATS = new IrisBiome("Ice Flats", Biome.ICE_FLATS);
public static final IrisBiome ICE_MOUNTAINS = new IrisBiome("Ice Mountains", Biome.ICE_MOUNTAINS)
.amp(1.45);
public static final CBI REDWOOD_TAIGA = new CBI("Redwood Taiga", Biome.REDWOOD_TAIGA)
public static final IrisBiome REDWOOD_TAIGA = new IrisBiome("Redwood Taiga", Biome.REDWOOD_TAIGA)
.surface(MB.of(Material.DIRT, 2), MB.of(Material.DIRT, 1))
.tree(TreeType.TALL_REDWOOD, 0.7)
.tree(TreeType.MEGA_REDWOOD, 0.6)
.tree(TreeType.REDWOOD, 0.3)
.simplexSurface();
public static final CBI REDWOOD_TAIGA_HILLS = new CBI("Redwood Taiga Hills", Biome.REDWOOD_TAIGA_HILLS)
public static final IrisBiome REDWOOD_TAIGA_HILLS = new IrisBiome("Redwood Taiga Hills", Biome.REDWOOD_TAIGA_HILLS)
.surface(MB.of(Material.DIRT, 2), MB.of(Material.DIRT, 1))
.amp(0.75)
.simplexSurface();
//@done
private static final GMap<Biome, CBI> map = build();
private static final GMap<Biome, IrisBiome> map = build();
private String name;
private Biome realBiome;
private double height;
@ -177,7 +177,7 @@ public class CBI
private GMap<String, Double> schematicGroups;
private PolygonGenerator.EnumPolygonGenerator<MB> poly;
public CBI(String name, Biome realBiome)
public IrisBiome(String name, Biome realBiome)
{
this.name = name;
this.realBiome = realBiome;
@ -189,17 +189,17 @@ public class CBI
surface(new MB(Material.GRASS)).dirt(new MB(Material.DIRT), new MB(Material.DIRT, 1));
}
private static GMap<Biome, CBI> build()
private static GMap<Biome, IrisBiome> build()
{
GMap<Biome, CBI> g = new GMap<Biome, CBI>();
GMap<Biome, IrisBiome> g = new GMap<Biome, IrisBiome>();
for(Field i : CBI.class.getDeclaredFields())
for(Field i : IrisBiome.class.getDeclaredFields())
{
J.attempt(() ->
{
i.setAccessible(true);
CBI bb = (CBI) i.get(null);
IrisBiome bb = (IrisBiome) i.get(null);
if(!g.containsKey(bb.realBiome))
{
@ -211,58 +211,58 @@ public class CBI
return g;
}
public CBI scatter(MB mb, Double chance)
public IrisBiome scatter(MB mb, Double chance)
{
scatterChance.put(mb, chance);
return this;
}
public CBI tree(TreeType t, Double chance)
public IrisBiome tree(TreeType t, Double chance)
{
treeChance.put(t, chance);
return this;
}
public CBI schematic(String t, Double chance)
public IrisBiome schematic(String t, Double chance)
{
schematicGroups.put(t, chance);
return this;
}
public CBI simplexSurface()
public IrisBiome simplexSurface()
{
simplexScatter = true;
return this;
}
public CBI scatterSurface()
public IrisBiome scatterSurface()
{
scatterSurface = true;
return this;
}
public CBI surface(MB... mbs)
public IrisBiome surface(MB... mbs)
{
surface = new GList<>(mbs);
return this;
}
public CBI dirt(MB... mbs)
public IrisBiome dirt(MB... mbs)
{
dirt = new GList<>(mbs);
return this;
}
public CBI height(double height)
public IrisBiome height(double height)
{
this.height = height;
return this;
}
public CBI amp(double amp)
public IrisBiome amp(double amp)
{
this.amp = amp;
return this;
@ -308,7 +308,7 @@ public class CBI
{
poly = new PolygonGenerator.EnumPolygonGenerator<MB>(rng, 0.25, 2, getSurface().toArray(new MB[getSurface().size()]), (g) ->
{
return g.fractureWith(new CNG(rng.nextRNG(), 1D, 2).scale(0.0155), 242);
return g.fractureWith(new CNG(rng.nextParallelRNG(56), 1D, 2).scale(0.0155), 242);
});
}
@ -321,7 +321,7 @@ public class CBI
{
poly = new PolygonGenerator.EnumPolygonGenerator<MB>(rng, 15.05, 2, getSurface().toArray(new MB[getSurface().size()]), (g) ->
{
return g.fractureWith(new CNG(rng.nextRNG(), 1D, 2).scale(0.0155), 224);
return g.fractureWith(new CNG(rng.nextParallelRNG(55), 1D, 2).scale(0.0155), 224);
});
}
@ -385,13 +385,13 @@ public class CBI
return null;
}
public static CBI find(Biome biome)
public static IrisBiome find(Biome biome)
{
if(map.containsKey(biome))
{
return map.get(biome);
}
return CBI.PLAINS;
return IrisBiome.PLAINS;
}
}