This commit is contained in:
Daniel Mills 2020-01-21 20:06:44 -05:00
parent fa1d2416e0
commit 9d5ae41c49
7 changed files with 26 additions and 29 deletions

View File

@ -82,7 +82,7 @@ public class CommandIris implements CommandExecutor
if(w.getGenerator() instanceof IrisGenerator) if(w.getGenerator() instanceof IrisGenerator)
{ {
IrisGenerator g = (IrisGenerator) w.getGenerator(); IrisGenerator g = (IrisGenerator) w.getGenerator();
IrisBiome biome = g.getBiome((int) g.getOffsetX(p.getLocation().getX()), (int) g.getOffsetZ(p.getLocation().getZ())); IrisBiome biome = g.getBiome((int) g.getOffsetX(p.getLocation().getX(), p.getLocation().getZ()), (int) g.getOffsetZ(p.getLocation().getX(), p.getLocation().getZ()));
BiomeLayer l = new BiomeLayer(g, biome); BiomeLayer l = new BiomeLayer(g, biome);
msg(p, "Biome: " + C.BOLD + C.WHITE + biome.getName() + C.RESET + C.GRAY + " (" + C.GOLD + l.getBiome().getRarityString() + C.GRAY + ")"); msg(p, "Biome: " + C.BOLD + C.WHITE + biome.getName() + C.RESET + C.GRAY + " (" + C.GOLD + l.getBiome().getRarityString() + C.GRAY + ")");
@ -183,7 +183,7 @@ public class CommandIris implements CommandExecutor
int x = (int) ((int) (29999983 / 1.2) * Math.random()); int x = (int) ((int) (29999983 / 1.2) * Math.random());
int z = (int) ((int) (29999983 / 1.2) * Math.random()); int z = (int) ((int) (29999983 / 1.2) * Math.random());
if(g.getBiome((int) g.getOffsetX(x), (int) g.getOffsetZ(z)).equals(b)) if(g.getBiome((int) g.getOffsetX(x, z), (int) g.getOffsetZ(x, z)).equals(b))
{ {
f = true; f = true;

View File

@ -33,25 +33,16 @@ public class Settings
public double landScale = 0.75; public double landScale = 0.75;
public double landChance = 0.55; public double landChance = 0.55;
public double roughness = 1.55; public double roughness = 1.55;
public double biomeEdgeScrambleScale = 1; public double biomeEdgeFuzzScale = 1;
public double biomeEdgeScrambleScale = 0.3;
public double biomeEdgeScrambleRange = 0.9;
public double heightMultiplier = 0.806; public double heightMultiplier = 0.806;
public double heightExponentBase = 1; public double heightExponentBase = 1;
public double heightExponentMultiplier = 1.41; public double heightExponentMultiplier = 1.41;
public double heightScale = 0.56; public double heightScale = 0.56;
public double baseHeight = 0.065; public double baseHeight = 0.065;
public int seaLevel = 63; public int seaLevel = 63;
public double caveDensity = 5; public double biomeScale = 1;
public double caveScale = 1.2;
public double biomeScale = 0.65;
public boolean flatBedrock = false; public boolean flatBedrock = false;
public boolean genCarving = false;
public boolean genCaverns = false;
public boolean genCaves = false;
public double carvingChance = 0.352;
public double cavernChance = 0.321;
public int minCarvingHeight = 75;
public int maxCarvingHeight = 155;
public int minCavernHeight = 14;
public int maxCavernHeight = 54;
} }
} }

View File

@ -203,7 +203,7 @@ public class WandController implements IrisController
if(g != null) if(g != null)
{ {
Location point = new Location(l.getWorld(), po.getX(), po.getY(), po.getZ()); Location point = new Location(l.getWorld(), po.getX(), po.getY(), po.getZ());
IrisBiome biome = generator.getBiome((int) generator.getOffsetX(po.getX()), (int) generator.getOffsetZ(po.getZ())); IrisBiome biome = generator.getBiome((int) generator.getOffsetX(po.getX(), po.getZ()), (int) generator.getOffsetZ(po.getX(), po.getZ()));
String gg = po.getF().split("\\Q:\\E")[0]; String gg = po.getF().split("\\Q:\\E")[0];
for(int j = 0; j < 10; j++) for(int j = 0; j < 10; j++)

View File

@ -63,6 +63,7 @@ public class IrisGenerator extends ParallaxWorldGenerator
private boolean disposed; private boolean disposed;
private CNG scatter; private CNG scatter;
private CNG swirl;
private MB ICE = new MB(Material.ICE); private MB ICE = new MB(Material.ICE);
private MB PACKED_ICE = new MB(Material.PACKED_ICE); private MB PACKED_ICE = new MB(Material.PACKED_ICE);
private MB WATER = new MB(Material.STATIONARY_WATER); private MB WATER = new MB(Material.STATIONARY_WATER);
@ -121,6 +122,7 @@ public class IrisGenerator extends ParallaxWorldGenerator
} }
random = new Random(world.getSeed()); random = new Random(world.getSeed());
rTerrain = new RNG(world.getSeed()); rTerrain = new RNG(world.getSeed());
swirl = new CNG(rTerrain.nextParallelRNG(0), 40, 1).scale(0.012);
glLNoise = new GenLayerLayeredNoise(this, world, random, rTerrain.nextParallelRNG(2)); glLNoise = new GenLayerLayeredNoise(this, world, random, rTerrain.nextParallelRNG(2));
glBiome = new GenLayerBiome(this, world, random, rTerrain.nextParallelRNG(4), dim.getBiomes()); glBiome = new GenLayerBiome(this, world, random, rTerrain.nextParallelRNG(4), dim.getBiomes());
glSnow = new GenLayerSnow(this, world, random, rTerrain.nextParallelRNG(5)); glSnow = new GenLayerSnow(this, world, random, rTerrain.nextParallelRNG(5));
@ -174,14 +176,14 @@ public class IrisGenerator extends ParallaxWorldGenerator
return getDimension().getBiomeByName(name); return getDimension().getBiomeByName(name);
} }
public double getOffsetX(double x) public double getOffsetX(double x, double z)
{ {
return Math.round((double) x * (Iris.settings.gen.horizontalZoom / 1.90476190476)); return Math.round((double) x * (Iris.settings.gen.horizontalZoom / 1.90476190476)) + swirl.noise(x, z);
} }
public double getOffsetZ(double z) public double getOffsetZ(double x, double z)
{ {
return Math.round((double) z * (Iris.settings.gen.horizontalZoom / 1.90476190476)); return Math.round((double) z * (Iris.settings.gen.horizontalZoom / 1.90476190476)) - swirl.noise(z, x);
} }
public IrisMetrics getMetrics() public IrisMetrics getMetrics()
@ -331,8 +333,8 @@ public class IrisGenerator extends ParallaxWorldGenerator
return Biome.VOID; return Biome.VOID;
} }
double wx = getOffsetX(wxxf); double wx = getOffsetX(wxxf, wzxf);
double wz = getOffsetZ(wzxf); double wz = getOffsetZ(wxxf, wzxf);
int wxx = (int) wx; int wxx = (int) wx;
int wzx = (int) wz; int wzx = (int) wz;
int highest = 0; int highest = 0;

View File

@ -122,7 +122,7 @@ public class GenObjectDecorator extends BlockPopulator
{ {
int x = (cx << 4) + random.nextInt(16); int x = (cx << 4) + random.nextInt(16);
int z = (cz << 4) + random.nextInt(16); int z = (cz << 4) + random.nextInt(16);
IrisBiome biome = g.getBiome((int) g.getOffsetX(x), (int) g.getOffsetZ(z)); IrisBiome biome = g.getBiome((int) g.getOffsetX(x, z), (int) g.getOffsetZ(x, z));
if(hits.contains(biome)) if(hits.contains(biome))
{ {

View File

@ -22,6 +22,7 @@ public class GenLayerBiome extends GenLayer
private GMap<String, IrisRegion> regions; private GMap<String, IrisRegion> regions;
private Function<CNG, CNG> factory; private Function<CNG, CNG> factory;
private CNG fracture; private CNG fracture;
private CNG fuzz;
private CNG island; private CNG island;
private BiomeLayer master; private BiomeLayer master;
@ -32,8 +33,9 @@ public class GenLayerBiome extends GenLayer
island = new CNG(rng.nextParallelRNG(10334), 1D, 1) island = new CNG(rng.nextParallelRNG(10334), 1D, 1)
.scale(0.003 * Iris.settings.gen.landScale) .scale(0.003 * Iris.settings.gen.landScale)
.fractureWith(new CNG(rng.nextParallelRNG(1211), 1D, 1) .fractureWith(new CNG(rng.nextParallelRNG(1211), 1D, 1)
.scale(0.001 * Iris.settings.gen.landScale), 600); .scale(0.001 * Iris.settings.gen.landScale), 3600);
fracture = new CNG(rng.nextParallelRNG(28), 1D, 4).scale(0.0021) fuzz = new CNG(rng.nextParallelRNG(9112), 1D * 8 * Iris.settings.gen.biomeEdgeFuzzScale, 1).scale(6.5);
fracture = new CNG(rng.nextParallelRNG(28), 1D, 4).scale(0.0021 * Iris.settings.gen.biomeEdgeScrambleScale)
.fractureWith(new CNG(rng.nextParallelRNG(34), 1D, 2) .fractureWith(new CNG(rng.nextParallelRNG(34), 1D, 2)
.scale(0.01), 12250); .scale(0.01), 12250);
factory = (g) -> g.fractureWith(new CNG(rng.nextParallelRNG(29), 1D, 3) factory = (g) -> g.fractureWith(new CNG(rng.nextParallelRNG(29), 1D, 3)
@ -135,8 +137,10 @@ public class GenLayerBiome extends GenLayer
{ {
double wx = Math.round((double) wxx * (Iris.settings.gen.horizontalZoom / 1.90476190476)) * Iris.settings.gen.biomeScale; double wx = Math.round((double) wxx * (Iris.settings.gen.horizontalZoom / 1.90476190476)) * Iris.settings.gen.biomeScale;
double wz = Math.round((double) wzx * (Iris.settings.gen.horizontalZoom / 1.90476190476)) * Iris.settings.gen.biomeScale; double wz = Math.round((double) wzx * (Iris.settings.gen.horizontalZoom / 1.90476190476)) * Iris.settings.gen.biomeScale;
double x = wx + ((fracture.noise(wx, wz) / 2D) * 200D * Iris.settings.gen.biomeEdgeScrambleScale); double x = wx + ((fracture.noise(wx, wz) / 2D) * 200D * Iris.settings.gen.biomeEdgeScrambleRange);
double z = wz - ((fracture.noise(wz, wx) / 2D) * 200D * Iris.settings.gen.biomeEdgeScrambleScale); double z = wz - ((fracture.noise(wz, wx) / 2D) * 200D * Iris.settings.gen.biomeEdgeScrambleRange);
x -= fuzz.noise(wx, wz);
z += fuzz.noise(wz, wx);
if(real) if(real)
{ {

View File

@ -25,7 +25,7 @@ import ninja.bytecode.shuriken.math.RNG;
public class IrisBiome public class IrisBiome
{ {
public static final double MAX_HEIGHT = 0.77768; public static final double MAX_HEIGHT = 0.77768;
public static final double IDEAL_HEIGHT = 0.053; public static final double IDEAL_HEIGHT = 0.0527;
public static final double MIN_HEIGHT = -0.0218; public static final double MIN_HEIGHT = -0.0218;
private static final GMap<Biome, IrisBiome> map = build(); private static final GMap<Biome, IrisBiome> map = build();
private String name; private String name;