diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitChunk_All.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitChunk_All.java index 4d8506b5..6b429eaa 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitChunk_All.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v0/BukkitChunk_All.java @@ -58,7 +58,7 @@ public class BukkitChunk_All extends CharFaweChunk { copy.biomes = biomes; } else { copy = new BukkitChunk_All(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; } copy.chunk = chunk; return copy; diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_10/BukkitChunk_1_10.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_10/BukkitChunk_1_10.java index ae00740d..b957422f 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_10/BukkitChunk_1_10.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_10/BukkitChunk_1_10.java @@ -49,9 +49,7 @@ public class BukkitChunk_1_10 extends CharFaweChunk { copy.chunk = chunk; } else { copy = new BukkitChunk_1_10(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } if (sectionPalettes != null) { @@ -436,8 +434,10 @@ public class BukkitChunk_1_10 extends CharFaweChunk { } byte[] currentBiomes = nmsChunk.getBiomeIndex(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_11/BukkitChunk_1_11.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_11/BukkitChunk_1_11.java index f6ea93dc..c57229d4 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_11/BukkitChunk_1_11.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_11/BukkitChunk_1_11.java @@ -110,9 +110,7 @@ public class BukkitChunk_1_11 extends CharFaweChunk { copy.chunk = chunk; } else { copy = new BukkitChunk_1_12(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } if (sectionPalettes != null) { @@ -460,8 +458,10 @@ public class BukkitChunk_1_12 extends CharFaweChunk { } byte[] currentBiomes = nmsChunk.getBiomeIndex(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_7/BukkitChunk_1_7.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_7/BukkitChunk_1_7.java index f2c4eab2..1cce1d55 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_7/BukkitChunk_1_7.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_7/BukkitChunk_1_7.java @@ -52,9 +52,7 @@ public class BukkitChunk_1_7 extends CharFaweChunk { copy.chunk = chunk; } else { copy = new BukkitChunk_1_7(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone(), (byte[][]) MainUtil.copyNd(byteIds), datas.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } return copy; @@ -411,8 +409,10 @@ public class BukkitChunk_1_7 extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.m(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitChunk_1_8.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitChunk_1_8.java index 2ac41bfa..1461b66f 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitChunk_1_8.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitChunk_1_8.java @@ -46,9 +46,7 @@ public class BukkitChunk_1_8 extends CharFaweChunk { copy.chunk = chunk; } else { copy = new BukkitChunk_1_8(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } return copy; @@ -278,8 +276,10 @@ public class BukkitChunk_1_8 extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeIndex(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitChunk_1_9.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitChunk_1_9.java index 803f50cd..040a8df0 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitChunk_1_9.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitChunk_1_9.java @@ -48,9 +48,7 @@ public class BukkitChunk_1_9 extends CharFaweChunk { copy.chunk = chunk; } else { copy = new BukkitChunk_1_9(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } if (sectionPalettes != null) { diff --git a/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java b/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java index dd5dce49..bd4c9d07 100644 --- a/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java +++ b/core/src/main/java/com/boydti/fawe/example/CharFaweChunk.java @@ -5,11 +5,8 @@ import com.boydti.fawe.object.FaweChunk; import com.boydti.fawe.object.FaweQueue; import com.boydti.fawe.util.MathMan; import com.sk89q.jnbt.CompoundTag; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; + +import java.util.*; public abstract class CharFaweChunk extends FaweChunk { @@ -170,7 +167,7 @@ public abstract class CharFaweChunk extends FaweChunk @Override public Set getEntities() { - return entities == null ? new HashSet() : entities; + return entities == null ? Collections.emptySet() : entities; } @Override @@ -350,10 +347,11 @@ public abstract class CharFaweChunk extends FaweChunk } @Override - public void setBiome(final int x, final int z, final byte biome) { + public void setBiome(final int x, final int z, byte biome) { if (this.biomes == null) { this.biomes = new byte[256]; } + if (biome == 0) biome = -1; biomes[((z & 15) << 4) + (x & 15)] = biome; } diff --git a/core/src/main/java/com/boydti/fawe/example/SimpleCharFaweChunk.java b/core/src/main/java/com/boydti/fawe/example/SimpleCharFaweChunk.java index 6ba9a0b4..6c5ad8f4 100644 --- a/core/src/main/java/com/boydti/fawe/example/SimpleCharFaweChunk.java +++ b/core/src/main/java/com/boydti/fawe/example/SimpleCharFaweChunk.java @@ -27,7 +27,7 @@ public class SimpleCharFaweChunk extends CharFaweChunk { copy.biomes = biomes; } else { copy = new SimpleCharFaweChunk(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; } return copy; } diff --git a/forge110/src/main/java/com/boydti/fawe/forge/v110/ForgeChunk_All.java b/forge110/src/main/java/com/boydti/fawe/forge/v110/ForgeChunk_All.java index 72eca90e..6db9211d 100644 --- a/forge110/src/main/java/com/boydti/fawe/forge/v110/ForgeChunk_All.java +++ b/forge110/src/main/java/com/boydti/fawe/forge/v110/ForgeChunk_All.java @@ -334,8 +334,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/forge111/src/main/java/com/boydti/fawe/forge/v111/ForgeChunk_All.java b/forge111/src/main/java/com/boydti/fawe/forge/v111/ForgeChunk_All.java index 68abb790..2920abc7 100644 --- a/forge111/src/main/java/com/boydti/fawe/forge/v111/ForgeChunk_All.java +++ b/forge111/src/main/java/com/boydti/fawe/forge/v111/ForgeChunk_All.java @@ -356,8 +356,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/forge112/src/main/java/com/boydti/fawe/forge/v112/ForgeChunk_All.java b/forge112/src/main/java/com/boydti/fawe/forge/v112/ForgeChunk_All.java index d2aea383..6b32531f 100644 --- a/forge112/src/main/java/com/boydti/fawe/forge/v112/ForgeChunk_All.java +++ b/forge112/src/main/java/com/boydti/fawe/forge/v112/ForgeChunk_All.java @@ -356,8 +356,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/forge1710/src/main/java/com/boydti/fawe/forge/v1710/ForgeChunk_All.java b/forge1710/src/main/java/com/boydti/fawe/forge/v1710/ForgeChunk_All.java index 4dd3d7c1..17ddd080 100644 --- a/forge1710/src/main/java/com/boydti/fawe/forge/v1710/ForgeChunk_All.java +++ b/forge1710/src/main/java/com/boydti/fawe/forge/v1710/ForgeChunk_All.java @@ -375,8 +375,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/forge189/src/main/java/com/boydti/fawe/forge/v189/ForgeChunk_All.java b/forge189/src/main/java/com/boydti/fawe/forge/v189/ForgeChunk_All.java index fc861060..4df4fa89 100644 --- a/forge189/src/main/java/com/boydti/fawe/forge/v189/ForgeChunk_All.java +++ b/forge189/src/main/java/com/boydti/fawe/forge/v189/ForgeChunk_All.java @@ -249,8 +249,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/forge194/src/main/java/com/boydti/fawe/forge/v194/ForgeChunk_All.java b/forge194/src/main/java/com/boydti/fawe/forge/v194/ForgeChunk_All.java index bc70596b..7de4be12 100644 --- a/forge194/src/main/java/com/boydti/fawe/forge/v194/ForgeChunk_All.java +++ b/forge194/src/main/java/com/boydti/fawe/forge/v194/ForgeChunk_All.java @@ -331,8 +331,10 @@ public class ForgeChunk_All extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/nukkit/src/main/java/com/boydti/fawe/nukkit/optimization/queue/NukkitChunk.java b/nukkit/src/main/java/com/boydti/fawe/nukkit/optimization/queue/NukkitChunk.java index 1bd9105d..045ab886 100644 --- a/nukkit/src/main/java/com/boydti/fawe/nukkit/optimization/queue/NukkitChunk.java +++ b/nukkit/src/main/java/com/boydti/fawe/nukkit/optimization/queue/NukkitChunk.java @@ -46,9 +46,7 @@ public class NukkitChunk extends CharFaweChunk { copy.chunk = chunk; } else { copy = new NukkitChunk(getParent(), getX(), getZ(), (char[][]) MainUtil.copyNd(ids), count.clone(), air.clone(), heightMap.clone()); - copy.biomes = biomes; - copy.chunk = chunk; - copy.biomes = biomes.clone(); + copy.biomes = biomes != null ? biomes.clone() : null; copy.chunk = chunk; } return copy; diff --git a/sponge111/src/main/java/com/boydti/fawe/sponge/v1_11/SpongeChunk_1_11.java b/sponge111/src/main/java/com/boydti/fawe/sponge/v1_11/SpongeChunk_1_11.java index e44231cf..88425018 100644 --- a/sponge111/src/main/java/com/boydti/fawe/sponge/v1_11/SpongeChunk_1_11.java +++ b/sponge111/src/main/java/com/boydti/fawe/sponge/v1_11/SpongeChunk_1_11.java @@ -378,8 +378,10 @@ public class SpongeChunk_1_11 extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } } diff --git a/sponge112/src/main/java/com/boydti/fawe/sponge/v1_12/SpongeChunk_1_12.java b/sponge112/src/main/java/com/boydti/fawe/sponge/v1_12/SpongeChunk_1_12.java index 0e5ec1a6..cf5f9e60 100644 --- a/sponge112/src/main/java/com/boydti/fawe/sponge/v1_12/SpongeChunk_1_12.java +++ b/sponge112/src/main/java/com/boydti/fawe/sponge/v1_12/SpongeChunk_1_12.java @@ -378,8 +378,10 @@ public class SpongeChunk_1_12 extends CharFaweChunk { if (this.biomes != null) { byte[] currentBiomes = nmsChunk.getBiomeArray(); for (int i = 0 ; i < this.biomes.length; i++) { - if (this.biomes[i] != 0) { - currentBiomes[i] = this.biomes[i]; + byte biome = this.biomes[i]; + if (biome != 0) { + if (biome == -1) biome = 0; + currentBiomes[i] = biome; } } }