Biome edge in blocks
This commit is contained in:
parent
538003b0c7
commit
704112d832
4 changed files with 14 additions and 15 deletions
|
@ -11,7 +11,7 @@ loader_version= 0.12.11
|
||||||
fabric_version = 0.44.0+1.18
|
fabric_version = 0.44.0+1.18
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.1.1
|
mod_version = 1.1.2
|
||||||
maven_group = ru.bclib
|
maven_group = ru.bclib
|
||||||
archives_base_name = bclib
|
archives_base_name = bclib
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class BCLBiome {
|
||||||
private float terrainHeight = 0.1F;
|
private float terrainHeight = 0.1F;
|
||||||
private float fogDensity = 1.0F;
|
private float fogDensity = 1.0F;
|
||||||
private float genChance = 1.0F;
|
private float genChance = 1.0F;
|
||||||
private float edgeSize = 0.0F;
|
private int edgeSize = 0;
|
||||||
private boolean vertical;
|
private boolean vertical;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,18 +90,18 @@ public class BCLBiome {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter for biome edge size.
|
* Getter for biome edge size.
|
||||||
* @return edge size.
|
* @return edge size in blocks.
|
||||||
*/
|
*/
|
||||||
public float getEdgeSize() {
|
public int getEdgeSize() {
|
||||||
return edgeSize;
|
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.
|
* @param size as a float value.
|
||||||
* @return same {@link BCLBiome}.
|
* @return same {@link BCLBiome}.
|
||||||
*/
|
*/
|
||||||
public BCLBiome setEdgeSize(float size) {
|
public BCLBiome setEdgeSize(int size) {
|
||||||
edgeSize = size;
|
edgeSize = size;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,20 +53,19 @@ public class HexBiomeMap implements BiomeMap {
|
||||||
public BCLBiome getBiome(double x, double y, double z) {
|
public BCLBiome getBiome(double x, double y, double z) {
|
||||||
BCLBiome biome = getRawBiome(x, z);
|
BCLBiome biome = getRawBiome(x, z);
|
||||||
BCLBiome edge = biome.getEdge();
|
BCLBiome edge = biome.getEdge();
|
||||||
float offset = biome.getEdgeSize();
|
int size = biome.getEdgeSize();
|
||||||
|
|
||||||
if (edge == null && biome.getParentBiome() != null) {
|
if (edge == null && biome.getParentBiome() != null) {
|
||||||
edge = biome.getParentBiome().getEdge();
|
edge = biome.getParentBiome().getEdge();
|
||||||
offset = biome.getParentBiome().getEdgeSize();
|
size = biome.getParentBiome().getEdgeSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (edge == null) {
|
if (edge == null) {
|
||||||
return biome;
|
return biome;
|
||||||
}
|
}
|
||||||
|
|
||||||
offset *= scale;
|
|
||||||
for (byte i = 0; i < 8; i++) {
|
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;
|
return edge;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,12 +54,12 @@ public class SquareBiomeMap implements BiomeMap {
|
||||||
if (biome.getParentBiome() != null) {
|
if (biome.getParentBiome() != null) {
|
||||||
search = biome.getParentBiome();
|
search = biome.getParentBiome();
|
||||||
}
|
}
|
||||||
int d = (int) Math.ceil(search.getEdgeSize() / 4F) << 2;
|
|
||||||
|
|
||||||
boolean edge = !search.isSame(getRawBiome(x + d, z));
|
int size = search.getEdgeSize();
|
||||||
edge = edge || !search.isSame(getRawBiome(x - d, z));
|
boolean edge = !search.isSame(getRawBiome(x + size, z));
|
||||||
edge = edge || !search.isSame(getRawBiome(x, z + d));
|
edge = edge || !search.isSame(getRawBiome(x - size, z));
|
||||||
edge = edge || !search.isSame(getRawBiome(x, z - d));
|
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));
|
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));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue