From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Wed, 29 Apr 2020 02:09:17 +0200 Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java index 21583b3413fcc5a42590464371cd929e37a4c2e0..60b2f21195384d544a7e123ce19a09ee437a6538 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -1903,6 +1903,24 @@ public final class Bukkit { return server.createChunkData(world); } + // Paper start + /** + * Create a ChunkData for use in a generator, that is populated by the vanilla generator for that world + * + * @param world the world to create the ChunkData for + * @param x the x coordinate of the chunk + * @param z the z coordinate of the chunk + * @return a new ChunkData for the world + * @deprecated The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to + * return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation. + */ + @NotNull + @Deprecated(forRemoval = true) + public static ChunkGenerator.ChunkData createVanillaChunkData(@NotNull World world, int x, int z) { + return server.createVanillaChunkData(world, x, z); + } + // Paper stop + /** * Creates a boss bar instance to display to players. The progress * defaults to 1.0 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index a1f1efc1d953bd2daf46b84ffb3d63d2c2f19bee..35ec012867c6d87b76fd60d1ff55302612f96b9e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1598,6 +1598,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull public ChunkGenerator.ChunkData createChunkData(@NotNull World world); + // Paper start + /** + * Create a ChunkData for use in a generator, that is populated by the vanilla generator for that world. + * + * @param world the world to create the ChunkData for + * @param x the x coordinate of the chunk + * @param z the z coordinate of the chunk + * @return a new ChunkData for the world + * @deprecated The new multi-stage worldgen API allows a similar effect by overriding all of the "shouldGenerate..." methods to + * return true, and then modifying the chunkdata in a later stage such as surface or bedrock generation. + */ + @NotNull + @Deprecated(forRemoval = true) + ChunkGenerator.ChunkData createVanillaChunkData(@NotNull World world, int x, int z); + // Paper end + /** * Creates a boss bar instance to display to players. The progress * defaults to 1.0 diff --git a/src/main/java/org/bukkit/generator/ChunkGenerator.java b/src/main/java/org/bukkit/generator/ChunkGenerator.java index 7e7a53b41013f1bf8956c0e278820f18d77b2f0d..c942b7101a38ac7dc70e11e87afa1f9210000bc1 100644 --- a/src/main/java/org/bukkit/generator/ChunkGenerator.java +++ b/src/main/java/org/bukkit/generator/ChunkGenerator.java @@ -577,6 +577,22 @@ public abstract class ChunkGenerator { return false; } + // Paper start + /** + * Create a ChunkData for use in a generator, that is populated by the vanilla generator for that world + * + * @param world the world to create the ChunkData for + * @param x the x coordinate of the chunk + * @param z the z coordinate of the chunk + * @return a new ChunkData for the world + * + */ + @NotNull + public ChunkData createVanillaChunkData(@NotNull World world, int x, int z) { + return Bukkit.getServer().createVanillaChunkData(world, x, z); + } + // Paper end + /** * Gets if the server should generate Vanilla structures after this * ChunkGenerator.