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)
{
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);
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 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;
@ -310,7 +310,7 @@ public class CommandIris implements CommandExecutor
ChronoLatch cl = new ChronoLatch(3000);
Player p = (Player) sender;
World ww = ((Player) sender).getWorld();
msg(p, "Regenerating View Distance");
WorldReactor r = new WorldReactor(ww);

View File

@ -33,25 +33,16 @@ public class Settings
public double landScale = 0.75;
public double landChance = 0.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 heightExponentBase = 1;
public double heightExponentMultiplier = 1.41;
public double heightScale = 0.56;
public double baseHeight = 0.065;
public int seaLevel = 63;
public double caveDensity = 5;
public double caveScale = 1.2;
public double biomeScale = 0.65;
public double biomeScale = 1;
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)
{
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];
for(int j = 0; j < 10; j++)

View File

@ -63,6 +63,7 @@ public class IrisGenerator extends ParallaxWorldGenerator
private boolean disposed;
private CNG scatter;
private CNG swirl;
private MB ICE = new MB(Material.ICE);
private MB PACKED_ICE = new MB(Material.PACKED_ICE);
private MB WATER = new MB(Material.STATIONARY_WATER);
@ -121,6 +122,7 @@ public class IrisGenerator extends ParallaxWorldGenerator
}
random = new Random(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));
glBiome = new GenLayerBiome(this, world, random, rTerrain.nextParallelRNG(4), dim.getBiomes());
glSnow = new GenLayerSnow(this, world, random, rTerrain.nextParallelRNG(5));
@ -174,14 +176,14 @@ public class IrisGenerator extends ParallaxWorldGenerator
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()
@ -331,8 +333,8 @@ public class IrisGenerator extends ParallaxWorldGenerator
return Biome.VOID;
}
double wx = getOffsetX(wxxf);
double wz = getOffsetZ(wzxf);
double wx = getOffsetX(wxxf, wzxf);
double wz = getOffsetZ(wxxf, wzxf);
int wxx = (int) wx;
int wzx = (int) wz;
int highest = 0;

View File

@ -122,7 +122,7 @@ public class GenObjectDecorator extends BlockPopulator
{
int x = (cx << 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))
{

View File

@ -22,6 +22,7 @@ public class GenLayerBiome extends GenLayer
private GMap<String, IrisRegion> regions;
private Function<CNG, CNG> factory;
private CNG fracture;
private CNG fuzz;
private CNG island;
private BiomeLayer master;
@ -32,8 +33,9 @@ public class GenLayerBiome extends GenLayer
island = new CNG(rng.nextParallelRNG(10334), 1D, 1)
.scale(0.003 * Iris.settings.gen.landScale)
.fractureWith(new CNG(rng.nextParallelRNG(1211), 1D, 1)
.scale(0.001 * Iris.settings.gen.landScale), 600);
fracture = new CNG(rng.nextParallelRNG(28), 1D, 4).scale(0.0021)
.scale(0.001 * Iris.settings.gen.landScale), 3600);
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)
.scale(0.01), 12250);
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 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 z = wz - ((fracture.noise(wz, wx) / 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.biomeEdgeScrambleRange);
x -= fuzz.noise(wx, wz);
z += fuzz.noise(wz, wx);
if(real)
{

View File

@ -25,7 +25,7 @@ import ninja.bytecode.shuriken.math.RNG;
public class IrisBiome
{
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;
private static final GMap<Biome, IrisBiome> map = build();
private String name;