Chunk Generators
A ChunkGenerator is
what a dimension’s level stem uses to generate chunks. It combines a BiomeSource,
which decides which biome occupies each region, along with a set of noise settings which decide how terrain is
shaped and which blocks fill to the world with.
Noise Settings
Section titled “Noise Settings”The generator needs noise settings, and there are two ways to supply them:
- By reference: pass a
ResourceKeypointing at an existing settings entry, such asminecraft:overworld,minecraft:the_nether, orminecraft:end. - Authored: pass a
NoiseGeneratorSettings, which bundles aNoiseRouter(see the Noise Routers page) together with the rest of the generator’s configuration.
Example Usage
Section titled “Example Usage”import dev.wyck.model.biome.CustomBiome;
import dev.wyck.keys.ResourceKey;
import dev.wyck.model.level.LevelCreator;
import dev.wyck.wrapper.level.BiomeSource;
import dev.wyck.wrapper.level.noise.Noise;
import dev.wyck.wrapper.level.noise.chunk.ChunkGenerator;
import org.bukkit.World;
import org.bukkit.plugin.java.JavaPlugin;
public class ExamplePlugin extends JavaPlugin {
@Override
public void onEnable() {
CustomBiome biome = CustomBiome.builder()
.resourceKey(ResourceKey.of("test", "biome"))
.fogColor("#DB00FD")
.skyColor("#2F46FF")
.waterColor("#00FFD0")
.grassColor("#D1D13A")
.foliageColor("#FF6A00")
.register();
// Floating islands with a single fixed custom biome
ChunkGenerator generator = ChunkGenerator.of(
BiomeSource.fixed(biome),
Noise.floatingIslands()
);
World world = LevelCreator.builder()
.levelKey(ResourceKey.of("test", "example"))
.generator(generator)
.create(); // Done!
}
}