BiomeGrid no longer needs World object.

This commit is contained in:
dfsek
2020-12-13 15:21:55 -07:00
parent 70abf69dc7
commit a058f1c58b
15 changed files with 103 additions and 47 deletions
@@ -3,7 +3,6 @@ package com.dfsek.terra.biome;
import com.dfsek.terra.api.gaea.biome.BiomeGrid;
import com.dfsek.terra.api.gaea.biome.NormalizationUtil;
import com.dfsek.terra.api.gaea.math.FastNoiseLite;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.config.base.ConfigPack;
import com.dfsek.terra.config.base.ConfigPackTemplate;
import com.dfsek.terra.image.ImageLoader;
@@ -22,8 +21,8 @@ public class BiomeZone {
private final boolean useImage;
private final ImageLoader.Channel channel;
public BiomeZone(World w, ConfigPack wc, BiomeGrid[] grids) {
this.noise = new FastNoiseLite((int) w.getSeed() + 2);
public BiomeZone(long seed, ConfigPack wc, BiomeGrid[] grids) {
this.noise = new FastNoiseLite((int) seed + 2);
this.noise.setNoiseType(FastNoiseLite.NoiseType.OpenSimplex2);
this.noise.setFractalType(FastNoiseLite.FractalType.FBm);
this.noise.setFractalOctaves(4);
@@ -3,7 +3,6 @@ package com.dfsek.terra.biome.grid;
import com.dfsek.terra.api.gaea.biome.Biome;
import com.dfsek.terra.api.gaea.biome.BiomeGrid;
import com.dfsek.terra.api.gaea.generation.GenerationPhase;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.api.generic.world.vector.Location;
/**
@@ -12,8 +11,8 @@ import com.dfsek.terra.api.generic.world.vector.Location;
public class SingleBiomeGrid extends BiomeGrid {
private final Biome biome;
public SingleBiomeGrid(World w, Biome biome) {
super(w, 0, 0, 1, 1);
public SingleBiomeGrid(long seed, Biome biome) {
super(seed, 0, 0, 1, 1);
this.biome = biome;
}
@@ -4,7 +4,6 @@ import com.dfsek.terra.api.gaea.biome.Biome;
import com.dfsek.terra.api.gaea.biome.BiomeGrid;
import com.dfsek.terra.api.gaea.biome.NormalizationUtil;
import com.dfsek.terra.api.gaea.generation.GenerationPhase;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.api.generic.world.vector.Location;
import com.dfsek.terra.config.base.ConfigPack;
import com.dfsek.terra.config.base.ConfigPackTemplate;
@@ -16,8 +15,8 @@ public class UserDefinedGrid extends BiomeGrid {
private final ImageLoader.Channel channelX;
private final ImageLoader.Channel channelZ;
public UserDefinedGrid(World w, double freq1, double freq2, Biome[][] b, ConfigPack c) {
super(w, freq1, freq2, b.length, b[0].length);
public UserDefinedGrid(long seed, double freq1, double freq2, Biome[][] b, ConfigPack c) {
super(seed, freq1, freq2, b.length, b[0].length);
super.setGrid(b);
ConfigPackTemplate t = c.getTemplate();
imageLoader = t.getImageLoader();
@@ -1,12 +1,11 @@
package com.dfsek.terra.biome.grid.master;
import com.dfsek.terra.api.gaea.biome.BiomeGrid;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.biome.grid.UserDefinedGrid;
public abstract class TerraBiomeGrid extends BiomeGrid {
public TerraBiomeGrid(World w, double freq1, double freq2, int sizeX, int sizeZ) {
super(w, freq1, freq2, sizeX, sizeZ);
public TerraBiomeGrid(long seed, double freq1, double freq2, int sizeX, int sizeZ) {
super(seed, freq1, freq2, sizeX, sizeZ);
}
public abstract UserDefinedGrid getGrid(int x, int z);
@@ -3,7 +3,6 @@ package com.dfsek.terra.biome.grid.master;
import com.dfsek.terra.api.gaea.biome.Biome;
import com.dfsek.terra.api.gaea.biome.BiomeGrid;
import com.dfsek.terra.api.gaea.generation.GenerationPhase;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.api.generic.world.vector.Location;
import com.dfsek.terra.api.generic.world.vector.Vector2;
import com.dfsek.terra.biome.BiomeZone;
@@ -23,15 +22,15 @@ public class TerraRadialBiomeGrid extends TerraBiomeGrid {
private CoordinatePerturb perturb;
private ErosionNoise erode;
public TerraRadialBiomeGrid(World w, double freq1, double freq2, BiomeZone zone, ConfigPack c, double radius, BiomeGrid internal) {
super(w, freq1, freq2, 0, 0);
public TerraRadialBiomeGrid(long seed, double freq1, double freq2, BiomeZone zone, ConfigPack c, double radius, BiomeGrid internal) {
super(seed, freq1, freq2, 0, 0);
ConfigPackTemplate t = c.getTemplate();
if(c.getTemplate().isBlend()) {
perturb = new CoordinatePerturb(t.getBlendFreq(), t.getBlendAmp(), w.getSeed());
perturb = new CoordinatePerturb(t.getBlendFreq(), t.getBlendAmp(), seed);
}
this.zone = zone;
if(c.getTemplate().isErode()) {
erode = new ErosionNoise(t.getErodeFreq(), t.getErodeThresh(), t.getErodeOctaves(), w.getSeed());
erode = new ErosionNoise(t.getErodeFreq(), t.getErodeThresh(), t.getErodeOctaves(), seed);
}
this.radiusSq = FastMath.pow2(radius);
this.internal = internal;
@@ -2,7 +2,6 @@ package com.dfsek.terra.biome.grid.master;
import com.dfsek.terra.api.gaea.biome.Biome;
import com.dfsek.terra.api.gaea.generation.GenerationPhase;
import com.dfsek.terra.api.generic.world.World;
import com.dfsek.terra.api.generic.world.vector.Location;
import com.dfsek.terra.api.generic.world.vector.Vector2;
import com.dfsek.terra.biome.BiomeZone;
@@ -19,15 +18,15 @@ public class TerraStandardBiomeGrid extends TerraBiomeGrid {
private CoordinatePerturb perturb;
private ErosionNoise erode;
public TerraStandardBiomeGrid(World w, double freq1, double freq2, BiomeZone zone, ConfigPack c) {
super(w, freq1, freq2, 0, 0);
public TerraStandardBiomeGrid(long seed, double freq1, double freq2, BiomeZone zone, ConfigPack c) {
super(seed, freq1, freq2, 0, 0);
ConfigPackTemplate t = c.getTemplate();
if(c.getTemplate().isBlend()) {
perturb = new CoordinatePerturb(t.getBlendFreq(), t.getBlendAmp(), w.getSeed());
perturb = new CoordinatePerturb(t.getBlendFreq(), t.getBlendAmp(), seed);
}
this.zone = zone;
if(c.getTemplate().isErode()) {
erode = new ErosionNoise(t.getErodeFreq(), t.getErodeThresh(), t.getErodeOctaves(), w.getSeed());
erode = new ErosionNoise(t.getErodeFreq(), t.getErodeThresh(), t.getErodeOctaves(), seed);
}
}