From 704112d832825d543a8f59705a329e4ae312c946 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 16 Dec 2021 10:43:57 +0300 Subject: [PATCH] Biome edge in blocks --- gradle.properties | 2 +- src/main/java/ru/bclib/world/biomes/BCLBiome.java | 10 +++++----- .../ru/bclib/world/generator/map/hex/HexBiomeMap.java | 7 +++---- .../world/generator/map/square/SquareBiomeMap.java | 10 +++++----- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/gradle.properties b/gradle.properties index 473c09d2..7d895778 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ loader_version= 0.12.11 fabric_version = 0.44.0+1.18 # Mod Properties -mod_version = 1.1.1 +mod_version = 1.1.2 maven_group = ru.bclib archives_base_name = bclib diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiome.java b/src/main/java/ru/bclib/world/biomes/BCLBiome.java index 9336ac39..66465851 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiome.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiome.java @@ -35,7 +35,7 @@ public class BCLBiome { private float terrainHeight = 0.1F; private float fogDensity = 1.0F; private float genChance = 1.0F; - private float edgeSize = 0.0F; + private int edgeSize = 0; private boolean vertical; /** @@ -90,18 +90,18 @@ public class BCLBiome { /** * Getter for biome edge size. - * @return edge size. + * @return edge size in blocks. */ - public float getEdgeSize() { + public int getEdgeSize() { return edgeSize; } /** - * Set edges size for this biome. Size is in relative units to work fine with biome scale. + * Set edges size for this biome. Size is in blocks. * @param size as a float value. * @return same {@link BCLBiome}. */ - public BCLBiome setEdgeSize(float size) { + public BCLBiome setEdgeSize(int size) { edgeSize = size; return this; } diff --git a/src/main/java/ru/bclib/world/generator/map/hex/HexBiomeMap.java b/src/main/java/ru/bclib/world/generator/map/hex/HexBiomeMap.java index d93769b9..6913839d 100644 --- a/src/main/java/ru/bclib/world/generator/map/hex/HexBiomeMap.java +++ b/src/main/java/ru/bclib/world/generator/map/hex/HexBiomeMap.java @@ -53,20 +53,19 @@ public class HexBiomeMap implements BiomeMap { public BCLBiome getBiome(double x, double y, double z) { BCLBiome biome = getRawBiome(x, z); BCLBiome edge = biome.getEdge(); - float offset = biome.getEdgeSize(); + int size = biome.getEdgeSize(); if (edge == null && biome.getParentBiome() != null) { edge = biome.getParentBiome().getEdge(); - offset = biome.getParentBiome().getEdgeSize(); + size = biome.getParentBiome().getEdgeSize(); } if (edge == null) { return biome; } - offset *= scale; for (byte i = 0; i < 8; i++) { - if (!getRawBiome(x + offset * EDGE_CIRCLE_X[i], z + offset * EDGE_CIRCLE_Z[i]).isSame(biome)) { + if (!getRawBiome(x + size * EDGE_CIRCLE_X[i], z + size * EDGE_CIRCLE_Z[i]).isSame(biome)) { return edge; } } diff --git a/src/main/java/ru/bclib/world/generator/map/square/SquareBiomeMap.java b/src/main/java/ru/bclib/world/generator/map/square/SquareBiomeMap.java index 78a78417..fa2111b5 100644 --- a/src/main/java/ru/bclib/world/generator/map/square/SquareBiomeMap.java +++ b/src/main/java/ru/bclib/world/generator/map/square/SquareBiomeMap.java @@ -54,12 +54,12 @@ public class SquareBiomeMap implements BiomeMap { if (biome.getParentBiome() != null) { search = biome.getParentBiome(); } - int d = (int) Math.ceil(search.getEdgeSize() / 4F) << 2; - boolean edge = !search.isSame(getRawBiome(x + d, z)); - edge = edge || !search.isSame(getRawBiome(x - d, z)); - edge = edge || !search.isSame(getRawBiome(x, z + d)); - edge = edge || !search.isSame(getRawBiome(x, z - d)); + int size = search.getEdgeSize(); + boolean edge = !search.isSame(getRawBiome(x + size, z)); + edge = edge || !search.isSame(getRawBiome(x - size, z)); + edge = edge || !search.isSame(getRawBiome(x, z + size)); + edge = edge || !search.isSame(getRawBiome(x, z - size)); edge = edge || !search.isSame(getRawBiome(x - 1, z - 1)); edge = edge || !search.isSame(getRawBiome(x - 1, z + 1)); edge = edge || !search.isSame(getRawBiome(x + 1, z - 1));