9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-29 20:19:06 +00:00

Smart Bore & Islands

This commit is contained in:
Daniel Mills
2020-09-04 01:15:38 -04:00
parent b201cf1990
commit d144b9ba0b
11 changed files with 253 additions and 57 deletions

View File

@@ -376,6 +376,12 @@ public abstract class ParallaxChunkGenerator extends TerrainChunkGenerator imple
return s;
}
@Override
public boolean isDebugSmartBore()
{
return getDimension().isDebugSmartBore();
}
@Override
public boolean isPreventingDecay()
{

View File

@@ -588,6 +588,24 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
current = glBiome.generateData(InferredType.SHORE, wx, wz, x, z, region);
}
// Impure Remove rivers, lakes & sea from land
if(current.isAquatic() && land)
{
current = glBiome.generatePureData(InferredType.LAND, wx, wz, x, z, region);
}
// Impure Remove land from underwater
if(current.isLand() && sea)
{
current = glBiome.generatePureData(aquaticType, wx, wz, x, z, region);
}
// Impure Add shores to land
if(shore)
{
current = glBiome.generatePureData(InferredType.SHORE, wx, wz, x, z, region);
}
return current;
}

View File

@@ -25,11 +25,11 @@ public class BiomeDataProvider
public IrisBiome generatePureData(ContextualChunkGenerator g, double bx, double bz, int rawX, int rawZ, IrisRegion regionData)
{
return layer.generateBiomeData(bx, bz, regionData, getGenerator(), regionData.getBiomes(g, getType()), getType(), rawX, rawZ);
return layer.generateBiomeData(bx, bz, regionData, getGenerator(), regionData.getBiomes(g, getType()), getType(), rawX, rawZ, true);
}
public IrisBiome generateData(ContextualChunkGenerator g, double bx, double bz, int rawX, int rawZ, IrisRegion regionData)
{
return layer.generateImpureData(rawX, rawZ, getType(), regionData, generatePureData(g, bx, bz, rawX, rawZ, regionData));
return layer.generateBiomeData(bx, bz, regionData, getGenerator(), regionData.getBiomes(g, getType()), getType(), rawX, rawZ, false);
}
}

View File

@@ -72,6 +72,11 @@ public class GenLayerBiome extends GenLayer
return getProvider(type).generateData(iris, bx, bz, rawX, rawZ, regionData);
}
public IrisBiome generatePureData(InferredType type, double bx, double bz, int rawX, int rawZ, IrisRegion regionData)
{
return getProvider(type).generatePureData(iris, bx, bz, rawX, rawZ, regionData);
}
public BiomeDataProvider getProvider(InferredType type)
{
if(type.equals(InferredType.SEA))
@@ -151,19 +156,27 @@ public class GenLayerBiome extends GenLayer
public IrisBiome generateBiomeData(double bx, double bz, IrisRegion regionData, CNG cell, KList<IrisBiome> biomes, InferredType inferredType, int rx, int rz)
{
for(IrisRegionRidge i : regionData.getRidgeBiomes())
{
if(i.getType().equals(inferredType) && i.isRidge(rng, rx, rz))
{
return iris.loadBiome(i.getBiome()).infer(i.getAs(), inferredType);
}
}
return generateBiomeData(bx, bz, regionData, cell, biomes, inferredType, rx, rz, false);
}
for(IrisRegionSpot i : regionData.getSpotBiomes())
public IrisBiome generateBiomeData(double bx, double bz, IrisRegion regionData, CNG cell, KList<IrisBiome> biomes, InferredType inferredType, int rx, int rz, boolean pure)
{
if(!pure)
{
if(i.getType().equals(inferredType) && i.isSpot(rng, rx, rz))
for(IrisRegionRidge i : regionData.getRidgeBiomes())
{
return iris.loadBiome(i.getBiome()).infer(i.getAs(), inferredType);
if(i.getType().equals(inferredType) && i.isRidge(rng, rx, rz))
{
return iris.loadBiome(i.getBiome()).infer(i.getAs(), inferredType);
}
}
for(IrisRegionSpot i : regionData.getSpotBiomes())
{
if(i.getType().equals(inferredType) && i.isSpot(rng, rx, rz))
{
return iris.loadBiome(i.getBiome()).infer(i.getAs(), inferredType);
}
}
}