From 9a403805c93d13243c4cf552d140966349efbd74 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 16 Nov 2020 23:37:42 -0700 Subject: [PATCH] Cleanup --- .../generation/ElevationInterpolator.java | 37 +++++++++---------- .../terra/generation/TerraChunkGenerator.java | 2 +- .../generation/config/WorldGenerator.java | 4 -- .../dfsek/terra/structure/spawn/AirSpawn.java | 2 +- .../terra/structure/spawn/LandSpawn.java | 2 +- .../terra/structure/spawn/OceanSpawn.java | 2 +- 6 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/dfsek/terra/generation/ElevationInterpolator.java b/src/main/java/com/dfsek/terra/generation/ElevationInterpolator.java index 7a67e69a9..a153fe91e 100644 --- a/src/main/java/com/dfsek/terra/generation/ElevationInterpolator.java +++ b/src/main/java/com/dfsek/terra/generation/ElevationInterpolator.java @@ -2,7 +2,6 @@ package com.dfsek.terra.generation; import com.dfsek.terra.biome.grid.TerraBiomeGrid; import com.dfsek.terra.generation.config.WorldGenerator; -import org.bukkit.World; import org.polydev.gaea.generation.GenerationPhase; import org.polydev.gaea.math.Interpolator; @@ -13,7 +12,7 @@ public class ElevationInterpolator { private final int zOrigin; private final TerraBiomeGrid grid; - public ElevationInterpolator(World w, int chunkX, int chunkZ, TerraBiomeGrid grid) { + public ElevationInterpolator(int chunkX, int chunkZ, TerraBiomeGrid grid) { this.xOrigin = chunkX << 4; this.zOrigin = chunkZ << 4; this.grid = grid; @@ -28,13 +27,13 @@ public class ElevationInterpolator { for(byte z = -1; z <= 16; z++) { WorldGenerator generator = getGenerator(x, z); if(compareGens((x / 4), (z / 4)) && generator.interpolateElevation()) { - Interpolator interpolator = new Interpolator(biomeAvg(x / 4, z / 4, w), - biomeAvg((x / 4) + 1, z / 4, w), - biomeAvg(x / 4, (z / 4) + 1, w), - biomeAvg((x / 4) + 1, (z / 4) + 1, w), + Interpolator interpolator = new Interpolator(biomeAvg(x / 4, z / 4), + biomeAvg((x / 4) + 1, z / 4), + biomeAvg(x / 4, (z / 4) + 1), + biomeAvg((x / 4) + 1, (z / 4) + 1), Interpolator.Type.LINEAR); values[x + 1][z + 1] = interpolator.bilerp((double) (x % 4) / 4, (double) (z % 4) / 4); - } else values[x + 1][z + 1] = elevate(generator, xOrigin + x, zOrigin + z, w); + } else values[x + 1][z + 1] = elevate(generator, xOrigin + x, zOrigin + z); } } } @@ -58,20 +57,20 @@ public class ElevationInterpolator { return false; } - private double biomeAvg(int x, int z, World w) { - return (elevate(getStoredGen(x + 1, z), x * 4 + 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x - 1, z), x * 4 - 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x, z + 1), x * 4 + xOrigin, z * 4 + 4 + zOrigin, w) - + elevate(getStoredGen(x, z - 1), x * 4 + xOrigin, z * 4 - 4 + zOrigin, w) - + elevate(getStoredGen(x, z), x * 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x - 1, z - 1), x * 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x - 1, z + 1), x * 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x + 1, z - 1), x * 4 + xOrigin, z * 4 + zOrigin, w) - + elevate(getStoredGen(x + 1, z + 1), x * 4 + xOrigin, z * 4 + zOrigin, w)) / 9D; + private double biomeAvg(int x, int z) { + return (elevate(getStoredGen(x + 1, z), x * 4 + 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x - 1, z), x * 4 - 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x, z + 1), x * 4 + xOrigin, z * 4 + 4 + zOrigin) + + elevate(getStoredGen(x, z - 1), x * 4 + xOrigin, z * 4 - 4 + zOrigin) + + elevate(getStoredGen(x, z), x * 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x - 1, z - 1), x * 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x - 1, z + 1), x * 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x + 1, z - 1), x * 4 + xOrigin, z * 4 + zOrigin) + + elevate(getStoredGen(x + 1, z + 1), x * 4 + xOrigin, z * 4 + zOrigin)) / 9D; } - private double elevate(WorldGenerator g, int x, int z, World w) { - if(g.getElevationEquation(w) != null) return g.getElevationEquation(w).getNoise(x, z); + private double elevate(WorldGenerator g, int x, int z) { + if(g.getElevationEquation() != null) return g.getElevationEquation().getNoise(x, z); return 0; } diff --git a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java index 049c2866f..a54de9a05 100644 --- a/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java +++ b/src/main/java/com/dfsek/terra/generation/TerraChunkGenerator.java @@ -152,7 +152,7 @@ public class TerraChunkGenerator extends GaeaChunkGenerator { ElevationInterpolator elevationInterpolator; try(ProfileFuture ignore = TerraProfiler.fromWorld(world).measure("ElevationTime")) { - elevationInterpolator = new ElevationInterpolator(world, chunkX, chunkZ, tw.getGrid()); + elevationInterpolator = new ElevationInterpolator(chunkX, chunkZ, tw.getGrid()); } for(byte x = 0; x < 16; x++) { diff --git a/src/main/java/com/dfsek/terra/generation/config/WorldGenerator.java b/src/main/java/com/dfsek/terra/generation/config/WorldGenerator.java index ea3c9a25f..e93e9ab9e 100644 --- a/src/main/java/com/dfsek/terra/generation/config/WorldGenerator.java +++ b/src/main/java/com/dfsek/terra/generation/config/WorldGenerator.java @@ -117,10 +117,6 @@ public class WorldGenerator extends Generator { return Interpolator.Type.LINEAR; } - public ElevationEquation getElevationEquation(World w) { - return elevationEquation; - } - public boolean interpolateElevation() { return elevationInterpolation; } diff --git a/src/main/java/com/dfsek/terra/structure/spawn/AirSpawn.java b/src/main/java/com/dfsek/terra/structure/spawn/AirSpawn.java index ee5212de0..ad19fb0a8 100644 --- a/src/main/java/com/dfsek/terra/structure/spawn/AirSpawn.java +++ b/src/main/java/com/dfsek/terra/structure/spawn/AirSpawn.java @@ -21,7 +21,7 @@ public class AirSpawn extends Requirement { UserDefinedBiome b = (UserDefinedBiome) tw.getGrid().getBiome(x, z, GenerationPhase.POPULATE); BiomeConfig c = wc.getBiome(b); if(y <= c.getOcean().getSeaLevel()) return false; - ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(getWorld()); + ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(); int yf = y - ((elevationEquation == null) ? 0 : (int) elevationEquation.getNoise(x, z)); return b.getGenerator().getNoise(getNoise(), getWorld(), x, yf, z) <= 0; } diff --git a/src/main/java/com/dfsek/terra/structure/spawn/LandSpawn.java b/src/main/java/com/dfsek/terra/structure/spawn/LandSpawn.java index df6c3efa5..1546e06f6 100644 --- a/src/main/java/com/dfsek/terra/structure/spawn/LandSpawn.java +++ b/src/main/java/com/dfsek/terra/structure/spawn/LandSpawn.java @@ -16,7 +16,7 @@ public class LandSpawn extends Requirement { public boolean matches(int x, int y, int z) { TerraWorld tw = TerraWorld.getWorld(getWorld()); UserDefinedBiome b = (UserDefinedBiome) tw.getGrid().getBiome(x, z, GenerationPhase.POPULATE); - ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(getWorld()); + ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(); int yf = y - ((elevationEquation == null) ? 0 : (int) elevationEquation.getNoise(x, z)); return b.getGenerator().getNoise(getNoise(), getWorld(), x, yf, z) > 0; } diff --git a/src/main/java/com/dfsek/terra/structure/spawn/OceanSpawn.java b/src/main/java/com/dfsek/terra/structure/spawn/OceanSpawn.java index c8aad465d..e72102d04 100644 --- a/src/main/java/com/dfsek/terra/structure/spawn/OceanSpawn.java +++ b/src/main/java/com/dfsek/terra/structure/spawn/OceanSpawn.java @@ -19,7 +19,7 @@ public class OceanSpawn extends Requirement { UserDefinedBiome b = (UserDefinedBiome) tw.getGrid().getBiome(x, z, GenerationPhase.POPULATE); BiomeConfig c = tw.getConfig().getBiome(b); if(y > c.getOcean().getSeaLevel()) return false; - ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(getWorld()); + ElevationEquation elevationEquation = ((WorldGenerator) b.getGenerator()).getElevationEquation(); int yf = y - ((elevationEquation == null) ? 0 : (int) elevationEquation.getNoise(x, z)); return b.getGenerator().getNoise(getNoise(), getWorld(), x, yf, z) <= 0; }