mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-03 16:36:00 +00:00
reimplement slope condition
This commit is contained in:
parent
807ed2b247
commit
cc5a880fd7
@ -494,6 +494,12 @@ public class IrisObject extends IrisRegistrant {
|
|||||||
public int place(int x, int yv, int z, IObjectPlacer oplacer, IrisObjectPlacement config, RNG rng, BiConsumer<BlockPosition, BlockData> listener, CarveResult c, IrisData rdata) {
|
public int place(int x, int yv, int z, IObjectPlacer oplacer, IrisObjectPlacement config, RNG rng, BiConsumer<BlockPosition, BlockData> listener, CarveResult c, IrisData rdata) {
|
||||||
IObjectPlacer placer = (config.getHeightmap() != null) ? new HeightmapObjectPlacer(oplacer.getEngine() == null ? IrisContext.get().getEngine() : oplacer.getEngine(), rng, x, yv, z, config, oplacer) : oplacer;
|
IObjectPlacer placer = (config.getHeightmap() != null) ? new HeightmapObjectPlacer(oplacer.getEngine() == null ? IrisContext.get().getEngine() : oplacer.getEngine(), rng, x, yv, z, config, oplacer) : oplacer;
|
||||||
|
|
||||||
|
// Slope condition
|
||||||
|
if (!config.getSlopeCondition().isDefault() &&
|
||||||
|
!config.getSlopeCondition().isValid(rdata.getEngine().getComplex().getSlopeStream().get(x, z))) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// Rotation calculation
|
// Rotation calculation
|
||||||
int slopeRotationY = 0;
|
int slopeRotationY = 0;
|
||||||
ProceduralStream<Double> heightStream = rdata.getEngine().getComplex().getHeightStream();
|
ProceduralStream<Double> heightStream = rdata.getEngine().getComplex().getHeightStream();
|
||||||
|
@ -62,6 +62,8 @@ public class IrisObjectPlacement {
|
|||||||
private double snow = 0;
|
private double snow = 0;
|
||||||
@Desc("Whether or not this object can be targeted by a dolphin.")
|
@Desc("Whether or not this object can be targeted by a dolphin.")
|
||||||
private boolean isDolphinTarget = false;
|
private boolean isDolphinTarget = false;
|
||||||
|
@Desc("The slope at which this object can be placed. Range from 0 to 10 by default. Calculated from a 3-block radius from the center of the object placement.")
|
||||||
|
private IrisSlopeClip slopeCondition = new IrisSlopeClip();
|
||||||
@Desc("Set to true to add the rotation of the direction of the slope of the terrain (wherever the slope is going down) to the y-axis rotation of the object." +
|
@Desc("Set to true to add the rotation of the direction of the slope of the terrain (wherever the slope is going down) to the y-axis rotation of the object." +
|
||||||
"Rounded to 90 degrees. Adds the *min* rotation of the y axis as well (to still allow you to rotate objects nicely). Discards *max* and *interval* on *yaxis*")
|
"Rounded to 90 degrees. Adds the *min* rotation of the y axis as well (to still allow you to rotate objects nicely). Discards *max* and *interval* on *yaxis*")
|
||||||
private boolean rotateTowardsSlope = false;
|
private boolean rotateTowardsSlope = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user