mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-05 15:26:28 +00:00
Fixes?
This commit is contained in:
@@ -2,7 +2,6 @@ package ninja.bytecode.iris.generator;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
@@ -62,6 +61,8 @@ public class IrisGenerator extends ParallelChunkGenerator
|
||||
private CNG scatter;
|
||||
public GMap<String, IrisBiome> biomeCache = new GMap<>();
|
||||
private MB WATER = new MB(Material.STATIONARY_WATER);
|
||||
private MB ICE = new MB(Material.ICE);
|
||||
private MB PACKED_ICE = new MB(Material.PACKED_ICE);
|
||||
private MB BEDROCK = new MB(Material.BEDROCK);
|
||||
private GList<IrisBiome> internal;
|
||||
private GenLayerLayeredNoise glLNoise;
|
||||
@@ -190,6 +191,15 @@ public class IrisGenerator extends ParallelChunkGenerator
|
||||
|
||||
public IrisBiome getOcean(IrisBiome biome, int height)
|
||||
{
|
||||
IrisRegion region = glBiome.getRegion(biome.getRegion());
|
||||
if(region != null)
|
||||
{
|
||||
if(region.isFrozen())
|
||||
{
|
||||
return biome("Frozen Ocean");
|
||||
}
|
||||
}
|
||||
|
||||
if(height < 36)
|
||||
{
|
||||
return biome("Deep Ocean");
|
||||
@@ -237,6 +247,11 @@ public class IrisGenerator extends ParallelChunkGenerator
|
||||
return hv;
|
||||
}
|
||||
|
||||
public IrisRegion getRegion(IrisBiome biome)
|
||||
{
|
||||
return glBiome.getRegion(biome.getRegion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome genColumn(int wxx, int wzx, int x, int z, ChunkPlan plan)
|
||||
{
|
||||
@@ -245,22 +260,28 @@ public class IrisGenerator extends ParallelChunkGenerator
|
||||
double wx = getOffsetX(wxx);
|
||||
double wz = getOffsetZ(wzx);
|
||||
IrisBiome biome = getBiome(wxx, wzx);
|
||||
boolean frozen = getRegion(biome) != null ? getRegion(biome).isFrozen() : false;
|
||||
int height = computeHeight(wxx, wzx, plan, biome);
|
||||
int max = Math.max(height, seaLevel);
|
||||
biome = height > 61 && height < 65 ? getBeach(biome) : biome;
|
||||
biome = height < 63 ? getOcean(biome, height) : biome;
|
||||
IrisBiome nbiome = height < 63 ? getOcean(biome, height) : biome;
|
||||
biome = nbiome;
|
||||
biome = height > 61 && height < 65 ? frozen ? biome : getBeach(biome) : biome;
|
||||
|
||||
for(int i = 0; i < max; i++)
|
||||
{
|
||||
MB mb = ROCK.get(scatterInt(wzx, i, wxx, ROCK.size()));
|
||||
boolean underwater = i >= height && i < seaLevel;
|
||||
boolean someunderwater = i >= height && i < seaLevel - (1 + scatterInt(x, i, z, 1));
|
||||
boolean wayunderwater = i >= height && i < seaLevel - (3 + scatterInt(x, i, z, 2));
|
||||
boolean underground = i < height;
|
||||
int dheight = biome.getDirtDepth();
|
||||
int rheight = biome.getRockDepth();
|
||||
boolean dirt = (height - 1) - i < (dheight > 0 ? scatterInt(x, i, z, 4) : 0) + dheight;
|
||||
boolean rocky = i > height - rheight && !dirt;
|
||||
boolean bedrock = i == 0 || !Iris.settings.gen.flatBedrock ? i <= 2 : i < scatterInt(x, i, z, 3);
|
||||
mb = underwater ? WATER : mb;
|
||||
mb = underwater ? frozen ? PACKED_ICE : WATER : mb;
|
||||
mb = someunderwater ? frozen ? ICE : WATER : mb;
|
||||
mb = wayunderwater ? WATER : mb;
|
||||
mb = underground && dirt ? biome.getSubSurface(wxx, i, wzx, rTerrain) : mb;
|
||||
mb = underground && rocky ? biome.getRock(wxx, i, wzx, rTerrain) : mb;
|
||||
mb = bedrock ? BEDROCK : mb;
|
||||
|
||||
@@ -10,7 +10,7 @@ import ninja.bytecode.iris.generator.IrisGenerator;
|
||||
import ninja.bytecode.iris.pack.IrisBiome;
|
||||
import ninja.bytecode.iris.pack.IrisRegion;
|
||||
import ninja.bytecode.iris.util.GenLayer;
|
||||
import ninja.bytecode.iris.util.MaxingGenerator.EnumMaxingGenerator;
|
||||
import ninja.bytecode.iris.util.PolygonGenerator.EnumPolygonGenerator;
|
||||
import ninja.bytecode.shuriken.collections.GList;
|
||||
import ninja.bytecode.shuriken.collections.GMap;
|
||||
import ninja.bytecode.shuriken.math.CNG;
|
||||
@@ -19,7 +19,7 @@ import ninja.bytecode.shuriken.math.RNG;
|
||||
|
||||
public class GenLayerBiome extends GenLayer
|
||||
{
|
||||
private EnumMaxingGenerator<IrisRegion> regionGenerator;
|
||||
private EnumPolygonGenerator<IrisRegion> regionGenerator;
|
||||
private GMap<String, IrisRegion> regions;
|
||||
private Function<CNG, CNG> factory;
|
||||
private CNG fracture;
|
||||
@@ -54,16 +54,16 @@ public class GenLayerBiome extends GenLayer
|
||||
}
|
||||
|
||||
int v = 85034;
|
||||
regionGenerator = new EnumMaxingGenerator<IrisRegion>(rng.nextParallelRNG(v), 0.00522 * Iris.settings.gen.biomeScale * 0.189, 1, regions.v().toArray(new IrisRegion[regions.v().size()]), factory);
|
||||
regionGenerator = new EnumPolygonGenerator<IrisRegion>(rng.nextParallelRNG(v), 0.00522 * Iris.settings.gen.biomeScale * 0.189, 1, regions.v().toArray(new IrisRegion[regions.v().size()]), factory);
|
||||
|
||||
for(IrisRegion i : regions.v())
|
||||
{
|
||||
v += 13 - i.getName().length();
|
||||
i.setGen(new EnumMaxingGenerator<IrisBiome>(rng.nextParallelRNG(33 + v), 0.000255 * i.getBiomes().size() * Iris.settings.gen.biomeScale, 1, i.getBiomes().toArray(new IrisBiome[i.getBiomes().size()]), factory));
|
||||
i.setGen(new EnumPolygonGenerator<IrisBiome>(rng.nextParallelRNG(33 + v), 0.000255 * i.getBiomes().size() * Iris.settings.gen.biomeScale, 1, i.getBiomes().toArray(new IrisBiome[i.getBiomes().size()]), factory));
|
||||
}
|
||||
}
|
||||
|
||||
public EnumMaxingGenerator<IrisBiome> getRegionGenerator(double xx, double zz)
|
||||
public EnumPolygonGenerator<IrisBiome> getRegionGenerator(double xx, double zz)
|
||||
{
|
||||
return regionGenerator.getChoice(xx, zz).getGen();
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.bukkit.World;
|
||||
import ninja.bytecode.iris.Iris;
|
||||
import ninja.bytecode.iris.generator.IrisGenerator;
|
||||
import ninja.bytecode.iris.util.GenLayer;
|
||||
import ninja.bytecode.iris.util.MaxingGenerator;
|
||||
import ninja.bytecode.iris.util.PolygonGenerator;
|
||||
import ninja.bytecode.shuriken.math.CNG;
|
||||
import ninja.bytecode.shuriken.math.RNG;
|
||||
|
||||
@@ -17,7 +17,7 @@ public class GenLayerCaves extends GenLayer
|
||||
private CNG caveHeight;
|
||||
private CNG caveGirth;
|
||||
private CNG caveClamp;
|
||||
private MaxingGenerator caveVeins;
|
||||
private PolygonGenerator caveVeins;
|
||||
|
||||
public GenLayerCaves(IrisGenerator iris, World world, Random random, RNG rng)
|
||||
{
|
||||
@@ -25,7 +25,7 @@ public class GenLayerCaves extends GenLayer
|
||||
caveHeight = new CNG(rng.nextParallelRNG(-100001), 1D, 3).scale(0.00222);
|
||||
caveGirth = new CNG(rng.nextParallelRNG(-100002), 1D, 3).scale(0.03);
|
||||
caveClamp = new CNG(rng.nextParallelRNG(-10000), 1D, 3).scale(0.1422);
|
||||
caveVeins = new MaxingGenerator(rng.nextParallelRNG(-99999), 4, 0.002 * Iris.settings.gen.caveScale, 1, (g) -> g.fractureWith(new CNG(rng.nextParallelRNG(-5555), 1D, 4).scale(0.02), 70));
|
||||
caveVeins = new PolygonGenerator(rng.nextParallelRNG(-99999), 4, 0.002 * Iris.settings.gen.caveScale, 1, (g) -> g.fractureWith(new CNG(rng.nextParallelRNG(-5555), 1D, 4).scale(0.02), 70));
|
||||
}
|
||||
|
||||
public void genCaves(double wxx, double wzx, int x, int z, int s, IrisGenerator g)
|
||||
|
||||
Reference in New Issue
Block a user