У меня есть идея написать собственную генерацию мира.
можете дать мне совет типа теории или ссылок на обсуждения/ресурсы, где обсуждают или рассказывают о том, как пошагово работает генерация и что можно изменить?
все, что я мог сделать, это изменить генерацию самого мира (ничего больше, кроме шума), но не биомов.
также, как я понял, сначала обрабатываются биомы, потом шум мира по биомам, а дальше я не понял. ниже я оставлю код своих стараний (ЛОЛ)
можете дать мне совет типа теории или ссылок на обсуждения/ресурсы, где обсуждают или рассказывают о том, как пошагово работает генерация и что можно изменить?
все, что я мог сделать, это изменить генерацию самого мира (ничего больше, кроме шума), но не биомов.
также, как я понял, сначала обрабатываются биомы, потом шум мира по биомам, а дальше я не понял. ниже я оставлю код своих стараний (ЛОЛ)
Java:
import org.bukkit.Material;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import java.util.Random;
public class ChunkGeneration extends ChunkGenerator {
public void generateNoise(@NotNull WorldInfo worldInfo, @NotNull Random random, int chunkX, int chunkZ, @NotNull ChunkGenerator.ChunkData chunkData) {
for (int X = 0; X < 16; X++) {
for (int Z = 0; Z < 16; Z++) {
int absX = chunkX * 16 + X;
int absZ = chunkZ * 16 + Z;
double value = OpenSimplex2S.noise2(worldInfo.getSeed(), absX * 0.005, absZ * 0.005); // Simplex noise
int height = (int) (80 * value + 80);
for (int Y = -64; Y < height; Y++) {
chunkData.setBlock(X, Y, Z, Material.STONE);
}
}
}
}
public void generateSurface(@NotNull WorldInfo worldInfo, @NotNull Random dontCareRandom, int chunkX, int chunkZ, @NotNull ChunkGenerator.ChunkData chunkData) {
}
public void generateBedrock(@NotNull WorldInfo worldInfo, @NotNull Random random, int chunkX, int chunkZ, @NotNull ChunkGenerator.ChunkData chunkData) {
}
public void generateCaves(@NotNull WorldInfo worldInfo, @NotNull Random random, int chunkX, int chunkZ, @NotNull ChunkGenerator.ChunkData chunkData) {
}
}
Java:
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public final class WorldGen extends JavaPlugin {
@Override
public void onEnable() {}
@Override
public void onDisable() {}
@Override
public @NotNull ChunkGenerator getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id) {
return new ChunkGeneration();
}
}
Вам необходимо зарегистрироваться для просмотра изображений-вложений
Вам необходимо зарегистрироваться для просмотра изображений-вложений