Finish slope palette implementation

This commit is contained in:
dfsek
2020-11-11 01:00:34 -07:00
parent d75cd81408
commit 48e45dfe23
6 changed files with 44 additions and 11 deletions

View File

@@ -83,13 +83,16 @@ public class TerraChunkGenerator extends GaeaChunkGenerator {
private static Palette<BlockData> getPalette(int x, int y, int z, BiomeConfig c, ChunkInterpolator interpolator) {
Palette<BlockData> slant = c.getSlant();
if(slant != null) {
boolean north = interpolator.getNoise(x, y, z + 1) > 0;
boolean south = interpolator.getNoise(x, y, z - 1) > 0;
boolean east = interpolator.getNoise(x + 1, y, z) > 0;
boolean west = interpolator.getNoise(x - 1, y, z) > 0;
double xzOffset = c.getXZSlantOffset();
boolean north = interpolator.getNoise(x, y, z + xzOffset) > 0;
boolean south = interpolator.getNoise(x, y, z - xzOffset) > 0;
boolean east = interpolator.getNoise(x + xzOffset, y, z) > 0;
boolean west = interpolator.getNoise(x - xzOffset, y, z) > 0;
boolean top = interpolator.getNoise(x, y + 0.25, z) > 0;
boolean bottom = interpolator.getNoise(x, y - 0.25, z) > 0;
double ySlantOffsetTop = c.getYSlantOffsetTop();
double ySlantOffsetBottom = c.getYSlantOffsetBottom();
boolean top = interpolator.getNoise(x, y + ySlantOffsetTop, z) > 0;
boolean bottom = interpolator.getNoise(x, y - ySlantOffsetBottom, z) > 0;
if((top && bottom) && (north || south || east || west) && (!(north && south && east && west))) return slant;
}

View File

@@ -7,6 +7,7 @@ import org.bukkit.World;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.biome.Generator;
import org.polydev.gaea.math.FastNoiseLite;
import org.polydev.gaea.math.Interpolator;
import org.polydev.gaea.world.palette.Palette;
import parsii.eval.Expression;
import parsii.eval.Parser;
@@ -106,4 +107,9 @@ public class UserDefinedGenerator extends Generator {
public boolean useMinimalInterpolation() {
return preventSmooth;
}
@Override
public Interpolator.Type getInterpolationType() {
return Interpolator.Type.LINEAR;
}
}