StructureFunction returns boolean based on pass/fail

This commit is contained in:
dfsek
2020-12-27 21:08:48 -07:00
parent 8db263e19b
commit 447c82f74a
2 changed files with 6 additions and 8 deletions

View File

@@ -92,8 +92,8 @@ public class StructureScript {
return !block.apply(buffer, rotation, random, 0).equals(Block.ReturnLevel.FAIL);
}
public void executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
block.apply(buffer, rotation, random, recursions);
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
return !block.apply(buffer, rotation, random, recursions).equals(Block.ReturnLevel.FAIL);
}
public String getId() {

View File

@@ -17,7 +17,7 @@ import net.jafama.FastMath;
import java.util.List;
import java.util.Random;
public class StructureFunction implements Function<Void> {
public class StructureFunction implements Function<Boolean> {
private final ScriptRegistry registry;
private final Returnable<String> id;
private final Returnable<Number> x, y, z;
@@ -43,11 +43,11 @@ public class StructureFunction implements Function<Void> {
@Override
public ReturnType returnType() {
return ReturnType.VOID;
return ReturnType.BOOLEAN;
}
@Override
public Void apply(Buffer buffer, Rotation rotation, Random random, int recursions) {
public Boolean apply(Buffer buffer, Rotation rotation, Random random, int recursions) {
Vector2 xz = new Vector2(x.apply(buffer, rotation, random, recursions).doubleValue(), z.apply(buffer, rotation, random, recursions).doubleValue());
@@ -70,9 +70,7 @@ public class StructureFunction implements Function<Void> {
Vector3 offset = new Vector3(FastMath.roundToInt(xz.getX()), y.apply(buffer, rotation, random, recursions).intValue(), FastMath.roundToInt(xz.getZ()));
script.executeInBuffer(new IntermediateBuffer(buffer, offset), random, rotation.rotate(rotation1), recursions + 1);
return null;
return script.executeInBuffer(new IntermediateBuffer(buffer, offset), random, rotation.rotate(rotation1), recursions + 1);
}
@Override