From 940982a155fe82b224123459700c79c96c04e6a8 Mon Sep 17 00:00:00 2001 From: DominikSLK Date: Thu, 1 Sep 2022 14:56:04 +0200 Subject: [PATCH 1/4] Selectable biomes --- .../CleanroomChunkGenerator.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java index 7ff1565..11920af 100644 --- a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java +++ b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java @@ -4,6 +4,7 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator; @@ -17,6 +18,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator { private Logger log = Logger.getLogger("Minecraft"); private BlockData[] layerBlock; private int[] layerHeight; + private Biome worldBiome; private boolean noBedrock = false; private boolean newHeight = false; @@ -52,8 +54,20 @@ public CleanroomChunkGenerator() { } String tokens[]; + String parts[]; - tokens = id.split("[|]"); + parts = id.split(","); + tokens = parts[0].split("[|]"); + + try { + worldBiome = Biome.valueOf(parts[1].toUpperCase()); + }catch (Exception e){ + try{ + log.warning("[CleanroomGenerator] Invalid biome '" + parts[1] + "'."); + }catch (Exception e1){ + + } + } if ((tokens.length % 2) != 0) throw new Exception(); @@ -104,6 +118,13 @@ public ChunkData generateChunkData(World world, Random random, int chunkX, int c y = -64; } for (int i = 0; i < layerBlock.length; i++) { + if(worldBiome != null) { + for (int i2 = 0; i2 < 15; i2++) { + for (int i3 = 0; i3 < 15; i3++) { + biome.setBiome(i2, i3, worldBiome); + } + } + } chunk.setRegion(0, y, 0, 16, y + layerHeight[i], 16, layerBlock[i]); y += layerHeight[i]; } From 0b45c380b8dbdbb8c3da9fb5b74b14cf07734922 Mon Sep 17 00:00:00 2001 From: DominikSLK <74055080+DominikSLK@users.noreply.github.com> Date: Mon, 5 Sep 2022 16:50:10 +0200 Subject: [PATCH 2/4] Use ! as a separator instead of , --- .../nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java index 11920af..f8b72cb 100644 --- a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java +++ b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java @@ -56,7 +56,7 @@ public CleanroomChunkGenerator() { String tokens[]; String parts[]; - parts = id.split(","); + parts = id.split("!"); tokens = parts[0].split("[|]"); try { From 0a21627fcc9720d161f631889791bf93210c709c Mon Sep 17 00:00:00 2001 From: DominikSLK Date: Tue, 6 Sep 2022 09:02:53 +0200 Subject: [PATCH 3/4] Check length of array instead of try and catch --- .../CleanroomGenerator/CleanroomChunkGenerator.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java index f8b72cb..9922fb4 100644 --- a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java +++ b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java @@ -59,13 +59,11 @@ public CleanroomChunkGenerator() { parts = id.split("!"); tokens = parts[0].split("[|]"); - try { - worldBiome = Biome.valueOf(parts[1].toUpperCase()); - }catch (Exception e){ - try{ + if(parts.length > 1) { + try { + worldBiome = Biome.valueOf(parts[1].toUpperCase()); + }catch (Exception e){ log.warning("[CleanroomGenerator] Invalid biome '" + parts[1] + "'."); - }catch (Exception e1){ - } } From f6d14a13e09e50ef806ee29e316c4289f97a725c Mon Sep 17 00:00:00 2001 From: DominikSLK Date: Tue, 6 Sep 2022 09:06:17 +0200 Subject: [PATCH 4/4] This should be 16 --- .../nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java index 9922fb4..9441795 100644 --- a/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java +++ b/src/main/java/io/nv/bukkit/CleanroomGenerator/CleanroomChunkGenerator.java @@ -117,8 +117,8 @@ public ChunkData generateChunkData(World world, Random random, int chunkX, int c } for (int i = 0; i < layerBlock.length; i++) { if(worldBiome != null) { - for (int i2 = 0; i2 < 15; i2++) { - for (int i3 = 0; i3 < 15; i3++) { + for (int i2 = 0; i2 < 16; i2++) { + for (int i3 = 0; i3 < 16; i3++) { biome.setBiome(i2, i3, worldBiome); } }