Cleanup for new engine

This commit is contained in:
Daniel Mills 2020-10-29 05:26:10 -04:00
parent 4c0e918559
commit 2c830eacdd
3 changed files with 49 additions and 35 deletions

View File

@ -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<BlockData> blocks)
{
fill2D(complex.getHeightFluidStream(), blocks, x, z, complex.getTerrainStream());
}
public void generateBiome(int x, int z, Hunk<Biome> blocks)
{
fill2DYLock(complex.getMaxHeightStream(), blocks, x, z, complex.getTrueBiomeDerivativeStream());
}
public void generate(int x, int z, Hunk<BlockData> blocks, Hunk<Biome> biomes)
{
generateTerrain(x, z, blocks);
generateBiome(x, z, biomes);
}
public void generateParallax()
{
}
public void generatePost(int x, int z, Hunk<BlockData> 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 <V, T> void fill2D(ProceduralStream<T> t, Hunk<V> h, double x, double z, ProceduralStream<V> 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<BlockData> blocks)
{
fill2D(complex.getHeightFluidStream(), blocks, x, z, complex.getTerrainStream());
}
public void generateBiome(int x, int z, Hunk<Biome> blocks)
{
fill2DYLock(complex.getMaxHeightStream(), blocks, x, z, complex.getTrueBiomeDerivativeStream());
}
public void generate(int x, int z, Hunk<BlockData> blocks, Hunk<Biome> biomes)
{
generateTerrain(x, z, blocks);
generateBiome(x, z, biomes);
generateDecorations(x, z, blocks);
}
public void printMetrics(Player p) {
ProfiledStream.print(Iris::verbose, complex.getTerrainStream());
}
}

View File

@ -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<BlockPopulator> getDefaultPopulators(@NotNull World world) {
return new KList<BlockPopulator>().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);
}
}

View File

@ -1,6 +0,0 @@
package com.volmit.iris.gen.v2.scaffold;
public interface TerrainGenerator
{
}