mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-30 20:39:21 +00:00
Carving Biomes
This commit is contained in:
@@ -304,12 +304,12 @@ public abstract class ParallaxTerrainProvider extends TopographicTerrainProvider
|
||||
|
||||
private int placeObjects(RNG random, IrisRegion r, IrisBiome b, int i, int j, int g)
|
||||
{
|
||||
for(IrisObjectPlacement k : b.getObjects())
|
||||
for(IrisObjectPlacement k : b.getSurfaceObjects())
|
||||
{
|
||||
placeObject(k, i, j, random.nextParallelRNG((34 * ((i * 30) + (j * 30) + g++) * i * j) + i - j + 3566522));
|
||||
}
|
||||
|
||||
for(IrisObjectPlacement k : r.getObjects())
|
||||
for(IrisObjectPlacement k : r.getSurfaceObjects())
|
||||
{
|
||||
placeObject(k, i, j, random.nextParallelRNG((34 * ((i * 30) + (j * 30) + g++) * i * j) + i - j + 3569222));
|
||||
}
|
||||
@@ -341,12 +341,12 @@ public abstract class ParallaxTerrainProvider extends TopographicTerrainProvider
|
||||
|
||||
private int placeCarveObjects(RNG random, IrisRegion r, IrisBiome b, int i, int j, int g, CarveResult c)
|
||||
{
|
||||
for(IrisObjectPlacement k : b.getObjects())
|
||||
for(IrisObjectPlacement k : b.getCarvingObjects())
|
||||
{
|
||||
placeCarveObject(k, i, j, random.nextParallelRNG((34 * ((i * 30) + (j * 30) + g++) * i * j) + i - j + 3569221 + g), c);
|
||||
}
|
||||
|
||||
for(IrisObjectPlacement k : r.getObjects())
|
||||
for(IrisObjectPlacement k : r.getCarvingObjects())
|
||||
{
|
||||
placeCarveObject(k, i, j, random.nextParallelRNG((34 * ((i * 30) + (j * 30) + g++) * i * j) + i - j + 3561222 + g), c);
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
boolean carvable = getGlCarve().couldCarveBelow(rx, height, rz);
|
||||
IrisRegion region = sampleRegion(rx, rz);
|
||||
IrisBiome biome = sampleTrueBiome(rx, rz, noise);
|
||||
IrisBiome landBiome = null;
|
||||
IrisBiome carveBiome = null;
|
||||
Biome onlyBiome = Iris.biome3d ? null : biome.getGroundBiome(getMasterRandom(), rz, getDimension().getFluidHeight(), rx);
|
||||
|
||||
if(biome == null)
|
||||
@@ -185,12 +185,12 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
{
|
||||
if(biomeMap != null)
|
||||
{
|
||||
if(landBiome == null)
|
||||
if(carveBiome == null)
|
||||
{
|
||||
landBiome = getGlBiome().generateData(InferredType.LAND, wx, wz, rx, rz, region);
|
||||
carveBiome = biome.getRealCarvingBiome(getData());
|
||||
}
|
||||
|
||||
sliver.set(k, landBiome.getDerivative());
|
||||
sliver.set(k, carveBiome.getDerivative());
|
||||
}
|
||||
|
||||
sliver.set(k, CAVE_AIR);
|
||||
@@ -245,14 +245,14 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
// Set Surface Material for cavern layer surfaces
|
||||
else if(carvable && cavernHeights.isNotEmpty() && lastCavernHeight - k >= 0 && lastCavernHeight - k < 5)
|
||||
{
|
||||
if(landBiome == null)
|
||||
if(carveBiome == null)
|
||||
{
|
||||
landBiome = getGlBiome().generateData(InferredType.LAND, wx, wz, rx, rz, region);
|
||||
carveBiome = biome.getRealCarvingBiome(getData());
|
||||
}
|
||||
|
||||
if(cavernLayers == null)
|
||||
{
|
||||
cavernLayers = landBiome.generateLayers(rx, rz, getMasterRandom(), 5, height - getFluidHeight());
|
||||
cavernLayers = carveBiome.generateLayers(rx, rz, getMasterRandom(), 5, height - getFluidHeight());
|
||||
}
|
||||
|
||||
block = cavernLayers.hasIndex(lastCavernHeight - k) ? cavernLayers.get(lastCavernHeight - k) : cavernLayers.get(0);
|
||||
@@ -277,12 +277,12 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
// Decorate Cavern surfaces, but not the true surface
|
||||
if((carvable && cavernSurface) && !(k == Math.max(height, fluidHeight) && block.getMaterial().isSolid() && k < 255 && k >= fluidHeight))
|
||||
{
|
||||
if(landBiome == null)
|
||||
if(carveBiome == null)
|
||||
{
|
||||
landBiome = getGlBiome().generateData(InferredType.LAND, wx, wz, rx, rz, region);
|
||||
carveBiome = biome.getRealCarvingBiome(getData());
|
||||
}
|
||||
|
||||
decorateLand(landBiome, sliver, wx, k, wz, rx, rz, block);
|
||||
decorateLand(carveBiome, sliver, wx, k, wz, rx, rz, block);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ public class GenLayerBiome extends GenLayer
|
||||
private BiomeDataProvider landProvider;
|
||||
private BiomeDataProvider shoreProvider;
|
||||
private BiomeDataProvider caveProvider;
|
||||
private BiomeDataProvider carveProvider;
|
||||
private BiomeDataProvider riverProvider;
|
||||
private BiomeDataProvider lakeProvider;
|
||||
private DimensionalTerrainProvider iris;
|
||||
|
||||
Reference in New Issue
Block a user