mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-10 09:46:03 +00:00
ff
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user