9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-26 18:49:06 +00:00

Merge pull request #830 from VolmitSoftware/Development

Development
This commit is contained in:
Brian Fopiano
2022-07-21 19:38:44 -07:00
committed by GitHub
12 changed files with 253 additions and 9 deletions

View File

@@ -55,7 +55,7 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator {
bd = decorator.getBlockData100(biome, getRng(), realX, height, realZ, getData());
if(!underwater) {
if(!canGoOn(bd, bdx)) {
if(!canGoOn(bd, bdx) && !decorator.isForcePlace()) {
return;
}
}
@@ -72,8 +72,9 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator {
((Bisected) bd).setHalf(Bisected.Half.BOTTOM);
}
if(decorator.getForceBlock() != null)
data.set(x, height, z, decorator.getForceBlock().getBlockData(getData()));
data.set(x, height + 1, z, bd);
} else {
if(height < getDimension().getFluidHeight()) {
max = getDimension().getFluidHeight();

View File

@@ -53,6 +53,8 @@ public class IrisDecorator {
private IrisGeneratorStyle variance = NoiseStyle.STATIC.style();
@Desc("Forcefully place this decorant anywhere it is supposed to go even if it should not go on a specific surface block. For example, you could force tallgrass to place on top of stone by using this.")
private boolean forcePlace = false;
@Desc("Forced the surface block of this decorant to be the specified block. Assumes forcePlace.")
private IrisBlockData forceBlock;
@DependsOn({"scaleStack", "stackMin", "stackMax"})
@Desc("If stackMax is set to true, use this to limit its max height for large caverns")
private int absoluteMaxStack = 30;

View File

@@ -799,7 +799,7 @@ public class IrisObject extends IrisRegistrant {
continue;
}
if(config.isWaterloggable() && yy <= placer.getFluidHeight() && data instanceof Waterlogged) {
if((config.isWaterloggable() || config.isUnderwater()) && yy <= placer.getFluidHeight() && data instanceof Waterlogged) {
((Waterlogged) data).setWaterlogged(true);
}
@@ -849,6 +849,7 @@ public class IrisObject extends IrisRegistrant {
BlockVector i = g.clone();
i = config.getRotation().rotate(i.clone(), spinx, spiny, spinz).clone();
i = config.getTranslate().translate(i.clone(), config.getRotation(), spinx, spiny, spinz).clone();
d = config.getRotation().rotate(d, spinx, spiny, spinz);
if(i.getBlockY() != lowest)
continue;
@@ -882,7 +883,7 @@ public class IrisObject extends IrisRegistrant {
int highest = placer.getHighest(xx, zz, getLoader(), true);
if(config.isWaterloggable() && highest <= placer.getFluidHeight() && d instanceof Waterlogged)
if((config.isWaterloggable() || config.isUnderwater()) && highest <= placer.getFluidHeight() && d instanceof Waterlogged)
((Waterlogged) d).setWaterlogged(true);
if(yv >= 0 && config.isBottom())