This commit is contained in:
Daniel Mills
2020-09-08 19:29:19 -04:00
parent 0b9ea265f0
commit 649becb98e
28 changed files with 1080 additions and 1580 deletions

View File

@@ -6,10 +6,10 @@ import org.bukkit.block.data.BlockData;
import com.volmit.iris.gen.DimensionalTerrainProvider;
import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.noise.FastNoise;
import com.volmit.iris.noise.FastNoise.CellularDistanceFunction;
import com.volmit.iris.noise.FastNoise.CellularReturnType;
import com.volmit.iris.noise.FastNoise.NoiseType;
import com.volmit.iris.noise.FastNoiseDouble;
import com.volmit.iris.noise.FastNoiseDouble.CellularDistanceFunction;
import com.volmit.iris.noise.FastNoiseDouble.CellularReturnType;
import com.volmit.iris.noise.FastNoiseDouble.NoiseType;
import com.volmit.iris.object.IrisCaveLayer;
import com.volmit.iris.util.B;
import com.volmit.iris.util.CaveResult;
@@ -23,13 +23,13 @@ public class GenLayerCave extends GenLayer
public static final BlockData CAVE_AIR = B.getBlockData("CAVE_AIR");
public static final BlockData AIR = B.getBlockData("AIR");
private static final KList<CaveResult> EMPTY = new KList<>();
private FastNoise gg;
private FastNoiseDouble gg;
public GenLayerCave(DimensionalTerrainProvider iris, RNG rng)
{
//@builder
super(iris, rng);
gg = new FastNoise(324895 * rng.nextParallelRNG(49678).imax());
gg = new FastNoiseDouble(324895 * rng.nextParallelRNG(49678).imax());
//@done
}
@@ -71,7 +71,7 @@ public class GenLayerCave extends GenLayer
for(double tunnelHeight = 1; tunnelHeight <= baseWidth; tunnelHeight++)
{
double distance = (gg.GetCellular((float) ((wx + (10000 * seed)) / layer.getCaveZoom()), (float) ((wz - (10000 * seed)) / layer.getCaveZoom())) + 1D) / 2D;
double distance = (gg.GetCellular(((wx + (10000 * seed)) / layer.getCaveZoom()), ((wz - (10000 * seed)) / layer.getCaveZoom())) + 1D) / 2D;
if(distance < distanceCheck - (tunnelHeight * distanceTake))
{
int caveHeight = (int) Math.round(caveHeightNoise);

View File

@@ -16,8 +16,10 @@ import com.volmit.iris.Iris;
import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.ParallaxTerrainProvider;
import com.volmit.iris.gen.atomics.AtomicSliverMap;
import com.volmit.iris.gen.scaffold.ChunkWrapper;
import com.volmit.iris.object.InventorySlotType;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisDepositGenerator;
import com.volmit.iris.object.IrisLootReference;
import com.volmit.iris.object.IrisLootTable;
import com.volmit.iris.object.IrisRegion;
@@ -45,7 +47,51 @@ public class GenLayerUpdate extends BlockPopulator
PrecisionStopwatch p = PrecisionStopwatch.start();
AtomicSliverMap map = gen.getParallaxChunk(c.getX(), c.getZ());
RNG rx = rng.nextParallelRNG(c.getX() + r.nextInt()).nextParallelRNG(c.getZ() + r.nextInt());
generateDeposits(w, rx, c);
updateBlocks(w, rx, c, map);
spawnInitials(c, rx);
p.end();
gen.getMetrics().getUpdate().put(p.getMilliseconds());
}
public void spawnInitials(Chunk c, RNG rx)
{
((IrisTerrainProvider) gen).spawnInitials(c, rx);
}
public void generateDeposits(World w, RNG rx, Chunk c)
{
int x = c.getX();
int z = c.getZ();
RNG ro = rx.nextParallelRNG((x * x * x) - z);
IrisRegion region = gen.sampleRegion((x * 16) + 7, (z * 16) + 7);
IrisBiome biome = gen.sampleTrueBiome((x * 16) + 7, (z * 16) + 7);
ChunkWrapper terrain = new ChunkWrapper(c);
for(IrisDepositGenerator k : gen.getDimension().getDeposits())
{
k.generate(terrain, ro, gen, x, z);
}
for(IrisDepositGenerator k : region.getDeposits())
{
for(int l = 0; l < ro.i(k.getMinPerChunk(), k.getMaxPerChunk()); l++)
{
k.generate(terrain, ro, gen, x, z);
}
}
for(IrisDepositGenerator k : biome.getDeposits())
{
for(int l = 0; l < ro.i(k.getMinPerChunk(), k.getMaxPerChunk()); l++)
{
k.generate(terrain, ro, gen, x, z);
}
}
}
private void updateBlocks(World w, RNG rx, Chunk c, AtomicSliverMap map)
{
for(int i = 0; i < 16; i++)
{
for(int j = 0; j < 16; j++)
@@ -61,11 +107,6 @@ public class GenLayerUpdate extends BlockPopulator
}
}
}
((IrisTerrainProvider) gen).spawnInitials(c, rx);
p.end();
gen.getMetrics().getUpdate().put(p.getMilliseconds());
}
public void update(Chunk c, int x, int y, int z, int rx, int rz, RNG rng)