diff --git a/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java b/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java index 5b6c68bab..089a059fa 100644 --- a/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java +++ b/src/main/java/com/volmit/iris/gen/v2/IrisTerrainGenerator.java @@ -1,10 +1,12 @@ package com.volmit.iris.gen.v2; +import java.util.Random; import java.util.function.Predicate; -import com.volmit.iris.Iris; -import com.volmit.iris.gen.v2.scaffold.stream.utility.ProfiledStream; +import com.volmit.iris.gen.v2.generator.IrisComplex; +import org.bukkit.Chunk; import org.bukkit.Material; +import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; @@ -15,9 +17,10 @@ import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisDecorator; import com.volmit.iris.object.IrisDimension; import com.volmit.iris.util.RNG; -import org.bukkit.entity.Player; +import org.bukkit.generator.BlockPopulator; +import org.jetbrains.annotations.NotNull; -public class IrisTerrainGenerator +public class IrisTerrainGenerator extends BlockPopulator { private long seed; private IrisDataManager data; @@ -43,6 +46,38 @@ public class IrisTerrainGenerator complex.flash(seed, dimension, data); } + public void generateTerrain(int x, int z, Hunk blocks) + { + fill2D(complex.getHeightFluidStream(), blocks, x, z, complex.getTerrainStream()); + } + + public void generateBiome(int x, int z, Hunk blocks) + { + fill2DYLock(complex.getMaxHeightStream(), blocks, x, z, complex.getTrueBiomeDerivativeStream()); + } + + public void generate(int x, int z, Hunk blocks, Hunk biomes) + { + generateTerrain(x, z, blocks); + generateBiome(x, z, biomes); + } + + public void generateParallax() + { + + } + + public void generatePost(int x, int z, Hunk blocks) + { + generateDecorations(x, z, blocks); + } + + @Override + public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) + { + generatePost(chunk.getX(), chunk.getZ(), Hunk.viewBlocks(chunk)); + } + private void fill2D(ProceduralStream t, Hunk h, double x, double z, ProceduralStream v) { t.fill2D(h, x * 16, z * 16, v, parallelism); @@ -128,25 +163,4 @@ public class IrisTerrainGenerator } }); } - - public void generateTerrain(int x, int z, Hunk blocks) - { - fill2D(complex.getHeightFluidStream(), blocks, x, z, complex.getTerrainStream()); - } - - public void generateBiome(int x, int z, Hunk blocks) - { - fill2DYLock(complex.getMaxHeightStream(), blocks, x, z, complex.getTrueBiomeDerivativeStream()); - } - - public void generate(int x, int z, Hunk blocks, Hunk biomes) - { - generateTerrain(x, z, blocks); - generateBiome(x, z, biomes); - generateDecorations(x, z, blocks); - } - - public void printMetrics(Player p) { - ProfiledStream.print(Iris::verbose, complex.getTerrainStream()); - } } diff --git a/src/main/java/com/volmit/iris/gen/v2/TestGen.java b/src/main/java/com/volmit/iris/gen/v2/TestGen.java index b2e0053f5..1d97f4f62 100644 --- a/src/main/java/com/volmit/iris/gen/v2/TestGen.java +++ b/src/main/java/com/volmit/iris/gen/v2/TestGen.java @@ -1,21 +1,25 @@ package com.volmit.iris.gen.v2; +import java.util.List; import java.util.Random; import java.util.UUID; import com.volmit.iris.util.J; +import com.volmit.iris.util.KList; import net.minecraft.server.v1_16_R2.MinecraftServer; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.block.Biome; import org.bukkit.entity.Player; +import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.ChunkGenerator; import com.volmit.iris.Iris; import com.volmit.iris.gen.v2.scaffold.hunk.Hunk; import com.volmit.iris.util.Form; import com.volmit.iris.util.PrecisionStopwatch; +import org.jetbrains.annotations.NotNull; public class TestGen { @@ -29,6 +33,12 @@ public class TestGen return true; } + @NotNull + @Override + public List getDefaultPopulators(@NotNull World world) { + return new KList().qadd(tg); + } + @Override public ChunkData generateChunkData(World world, Random random, int x, int z, BiomeGrid biome) { @@ -52,9 +62,5 @@ public class TestGen return c; } }).createWorld(), 0, 200, 0)); - - J.s(() -> { - tg.printMetrics(p); - }, 200); } } diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/TerrainGenerator.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/TerrainGenerator.java deleted file mode 100644 index 42d2bc143..000000000 --- a/src/main/java/com/volmit/iris/gen/v2/scaffold/TerrainGenerator.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.volmit.iris.gen.v2.scaffold; - -public interface TerrainGenerator -{ - -}