tweaks to bushes
This commit is contained in:
parent
bc89e7ebb9
commit
0423925e17
@ -67,12 +67,16 @@ public class BushFeature extends Feature<BushFeature.Config> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean place(IWorld world, BlockPos.Mutable center, BlockPos.Mutable pos, Random random, Config config) {
|
private boolean place(IWorld world, BlockPos.Mutable center, BlockPos.Mutable pos, Random random, Config config) {
|
||||||
int y = world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, center.getX(), center.getZ());
|
center.setY(world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, center.getX(), center.getZ()));
|
||||||
|
|
||||||
|
if (BlockUtils.isSolid(world, center)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
center.setY(y);
|
|
||||||
world.setBlockState(center, config.trunk, 2);
|
world.setBlockState(center, config.trunk, 2);
|
||||||
|
|
||||||
for (Vec3i neighbour : leaves) {
|
for (Vec3i neighbour : leaves) {
|
||||||
|
// randomly skip NESW neighbours
|
||||||
if (neighbour.getY() == 0 && random.nextFloat() < config.airChance) {
|
if (neighbour.getY() == 0 && random.nextFloat() < config.airChance) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -83,9 +87,21 @@ public class BushFeature extends Feature<BushFeature.Config> {
|
|||||||
if (!BlockUtils.isSolid(world, pos)) {
|
if (!BlockUtils.isSolid(world, pos)) {
|
||||||
world.setBlockState(pos, config.leaves, 2);
|
world.setBlockState(pos, config.leaves, 2);
|
||||||
|
|
||||||
|
// randomly place extra leaves below if non-solid
|
||||||
|
if (neighbour.getY() == 0 && random.nextFloat() < config.leafChance) {
|
||||||
|
pos.move(Direction.DOWN, 1);
|
||||||
|
if (!BlockUtils.isSolid(world, pos)) {
|
||||||
|
world.setBlockState(pos, config.leaves, 2);
|
||||||
|
}
|
||||||
|
pos.move(Direction.UP, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// randomly place extra leaves above
|
||||||
if (neighbour.getY() == 0 && random.nextFloat() < config.leafChance) {
|
if (neighbour.getY() == 0 && random.nextFloat() < config.leafChance) {
|
||||||
pos.move(Direction.UP, 1);
|
pos.move(Direction.UP, 1);
|
||||||
world.setBlockState(pos, config.leaves, 2);
|
if (!BlockUtils.isSolid(world, pos)) {
|
||||||
|
world.setBlockState(pos, config.leaves, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
"name": "minecraft:count_extra_heightmap",
|
"name": "minecraft:count_extra_heightmap",
|
||||||
"config": {
|
"config": {
|
||||||
"count": 0,
|
"count": 0,
|
||||||
"extra_chance": 0.2,
|
"extra_chance": 0.125,
|
||||||
"extra_count": 1
|
"extra_count": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
"name": "minecraft:count_extra_heightmap",
|
"name": "minecraft:count_extra_heightmap",
|
||||||
"config": {
|
"config": {
|
||||||
"count": 0,
|
"count": 0,
|
||||||
"extra_chance": 0.12,
|
"extra_chance": 0.125,
|
||||||
"extra_count": 1
|
"extra_count": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user