@Override public void setSeed(long seed) { typeNoiseGen = new WhiteNoise(seed + 1); }
@Override public void setSeed(long seed) { super.setSeed(seed); densityNoiseGen = new WhiteNoise(seed); }
@Override public void setSeed(long seed) { super.setSeed(seed); densityNoiseGen = new WhiteNoise(seed); }
@Override public void generateChunk(CoreChunk chunk, Region chunkRegion) { FloraFacet facet = chunkRegion.getFacet(FloraFacet.class); WhiteNoise noise = new WhiteNoise(chunk.getPosition().hashCode()); Map<BaseVector3i, FloraType> entries = facet.getRelativeEntries(); // check if some other rasterizer has already placed something here entries.keySet().stream().filter(pos -> chunk.getBlock(pos).equals(air)).forEach(pos -> { FloraType type = entries.get(pos); List<Block> list = flora.get(type); int blockIdx = Math.abs(noise.intNoise(pos.x(), pos.y(), pos.z())) % list.size(); Block block = list.get(blockIdx); chunk.setBlock(pos, block); }); } }
@Parameters(name = "{0}") public static Collection<Noise[]> data() { return Arrays.asList(new Noise[][]{ {new WhiteNoise(0xCAFE)}, {new DiscreteWhiteNoise(0xCAFE)}, {new SimplexNoise(0xCAFE)}, {new PerlinNoise(0xCAFE)}, {new BrownianNoise(new WhiteNoise(0xCAFE), 3)} }); }
@Test public void testDistribution() { FastRandom rng = new FastRandom(0xBEEF); WhiteNoise noiseGen = new WhiteNoise(0xDEADC0DE);