mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-09 01:06:21 +00:00
remove chunk apply method
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
|
||||
@@ -32,18 +31,6 @@ public class Block implements Item<Block.ReturnLevel> {
|
||||
return ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
for(Item<?> item : items) {
|
||||
Object result = item.apply(location, chunk, rotation, recursions);
|
||||
if(result instanceof ReturnLevel) {
|
||||
ReturnLevel level = (ReturnLevel) result;
|
||||
if(!level.equals(ReturnLevel.NONE)) return level;
|
||||
}
|
||||
}
|
||||
return ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
|
||||
public interface Item<T> {
|
||||
T apply(Location location, Rotation rotation, int recursions);
|
||||
|
||||
T apply(Location location, Chunk chunk, Rotation rotation, int recursions);
|
||||
|
||||
Position getPosition();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.constants;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -20,12 +19,6 @@ public abstract class ConstantExpression<T> implements Returnable<T> {
|
||||
return constant;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public T apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return constant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.functions.builtin;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -24,9 +23,4 @@ public class AbsFunction extends MathFunction {
|
||||
public Number apply(Location location, Rotation rotation, int recursions) {
|
||||
return FastMath.abs(returnable.apply(location, rotation, recursions).doubleValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Number apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return FastMath.abs(returnable.apply(location, chunk, rotation, recursions).doubleValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.functions.builtin;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -26,9 +25,4 @@ public class PowFunction extends MathFunction {
|
||||
public Number apply(Location location, Rotation rotation, int recursions) {
|
||||
return FastMath.pow(base.apply(location, rotation, recursions).doubleValue(), power.apply(location, rotation, recursions).doubleValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Number apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return FastMath.pow(base.apply(location, chunk, rotation, recursions).doubleValue(), power.apply(location, chunk, rotation, recursions).doubleValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.functions.builtin;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -24,9 +23,4 @@ public class SqrtFunction extends MathFunction {
|
||||
public Number apply(Location location, Rotation rotation, int recursions) {
|
||||
return FastMath.sqrt(returnable.apply(location, rotation, recursions).doubleValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Number apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return FastMath.sqrt(returnable.apply(location, chunk, rotation, recursions).doubleValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.keywords;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Keyword;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
@@ -19,11 +18,6 @@ public class BreakKeyword implements Keyword<Block.ReturnLevel> {
|
||||
return Block.ReturnLevel.BREAK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block.ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return Block.ReturnLevel.BREAK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.keywords;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Keyword;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
@@ -19,11 +18,6 @@ public class ContinueKeyword implements Keyword<Block.ReturnLevel> {
|
||||
return Block.ReturnLevel.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block.ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return Block.ReturnLevel.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.keywords;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Keyword;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
@@ -25,12 +24,6 @@ public class IfKeyword implements Keyword<Block.ReturnLevel> {
|
||||
return Block.ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block.ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
if(statement.apply(location, chunk, rotation, recursions)) return conditional.apply(location, chunk, rotation, recursions);
|
||||
return Block.ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.keywords;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Keyword;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
@@ -19,11 +18,6 @@ public class ReturnKeyword implements Keyword<Block.ReturnLevel> {
|
||||
return Block.ReturnLevel.RETURN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block.ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return Block.ReturnLevel.RETURN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.keywords;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Keyword;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
@@ -29,16 +28,6 @@ public class WhileKeyword implements Keyword<Block.ReturnLevel> {
|
||||
return Block.ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block.ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
while(statement.apply(location, chunk, rotation, recursions)) {
|
||||
Block.ReturnLevel level = conditional.apply(location, chunk, rotation, recursions);
|
||||
if(level.equals(Block.ReturnLevel.BREAK)) break;
|
||||
if(level.equals(Block.ReturnLevel.RETURN)) return Block.ReturnLevel.RETURN;
|
||||
}
|
||||
return Block.ReturnLevel.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.operations;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -28,9 +27,4 @@ public abstract class BinaryOperation<I, O> implements Returnable<O> {
|
||||
public O apply(Location location, Rotation rotation, int recursions) {
|
||||
return apply(left.apply(location, rotation, recursions), right.apply(location, rotation, recursions));
|
||||
}
|
||||
|
||||
@Override
|
||||
public O apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return apply(left.apply(location, chunk, rotation, recursions), right.apply(location, chunk, rotation, recursions));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.operations;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -22,11 +21,6 @@ public abstract class UnaryOperation<T> implements Returnable<T> {
|
||||
return apply(input.apply(location, rotation, recursions));
|
||||
}
|
||||
|
||||
@Override
|
||||
public T apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return apply(input.apply(location, chunk, rotation, recursions));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.variables;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Item;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
@@ -25,13 +24,6 @@ public class Assignment<T> implements Item<T> {
|
||||
return val;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized T apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
T val = value.apply(location, chunk, rotation, recursions);
|
||||
delegate.setValue(val);
|
||||
return val;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.parser.lang.variables;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -23,11 +22,6 @@ public class Getter implements Returnable<Object> {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized Object apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return delegate.getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return delegate.getPosition();
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.dfsek.terra.api.structures.script;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.Parser;
|
||||
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Block;
|
||||
@@ -47,10 +46,6 @@ public class StructureScript {
|
||||
block.apply(location, rotation, recursions);
|
||||
}
|
||||
|
||||
public void execute(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
block.apply(location, chunk, rotation, recursions);
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.math.vector.Vector2;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.parser.lang.constants.ConstantExpression;
|
||||
@@ -44,12 +43,6 @@ public class BlockFunction implements Function<Void> {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
//TODO: do
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.math.vector.Vector2;
|
||||
import com.dfsek.terra.api.math.vector.Vector3;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.platform.world.World;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||
@@ -33,19 +32,17 @@ public class CheckFunction implements Function<String> {
|
||||
return "check";
|
||||
}
|
||||
|
||||
private Vector3 getVector(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
Vector2 xz = chunk == null ? new Vector2(x.apply(location, rotation, recursions).doubleValue(), z.apply(location, rotation, recursions).doubleValue())
|
||||
: new Vector2(x.apply(location, chunk, rotation, recursions).doubleValue(), z.apply(location, chunk, rotation, recursions).doubleValue());
|
||||
private Vector3 getVector(Location location, Rotation rotation, int recursions) {
|
||||
Vector2 xz = new Vector2(x.apply(location, rotation, recursions).doubleValue(), z.apply(location, rotation, recursions).doubleValue());
|
||||
|
||||
RotationUtil.rotateVector(xz, rotation);
|
||||
|
||||
return location.clone().add(chunk == null ? new Vector3(FastMath.roundToInt(xz.getX()), y.apply(location, rotation, recursions).intValue(), FastMath.roundToInt(xz.getZ()))
|
||||
: new Vector3(FastMath.roundToInt(xz.getX()), y.apply(location, chunk, rotation, recursions).intValue(), FastMath.roundToInt(xz.getZ()))).toVector();
|
||||
return new Vector3(FastMath.roundToInt(xz.getX()), y.apply(location, rotation, recursions).intValue(), FastMath.roundToInt(xz.getZ()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String apply(Location location, Rotation rotation, int recursions) {
|
||||
return apply(getVector(location, null, rotation, recursions), location.getWorld());
|
||||
return apply(getVector(location, rotation, recursions), location.getWorld());
|
||||
}
|
||||
|
||||
private String apply(Vector3 vector, World world) {
|
||||
@@ -56,11 +53,6 @@ public class CheckFunction implements Function<String> {
|
||||
return "AIR";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return apply(getVector(location, chunk, rotation, recursions), location.getWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.script.functions;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
@@ -34,11 +33,6 @@ public class RandomFunction implements Function<Integer> {
|
||||
return ThreadLocalRandom.current().nextInt(numberReturnable.apply(location, rotation, recursions).intValue()); // TODO: deterministic random
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return ThreadLocalRandom.current().nextInt(numberReturnable.apply(location, chunk, rotation, recursions).intValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.dfsek.terra.api.structures.script.functions;
|
||||
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||
import com.dfsek.terra.api.structures.structure.Rotation;
|
||||
import com.dfsek.terra.api.structures.tokenizer.Position;
|
||||
@@ -28,11 +27,6 @@ public class RecursionsFunction implements Function<Number> {
|
||||
return recursions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Number apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return recursions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.dfsek.terra.api.structures.script.functions;
|
||||
import com.dfsek.terra.api.math.vector.Location;
|
||||
import com.dfsek.terra.api.math.vector.Vector2;
|
||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||
import com.dfsek.terra.api.platform.world.Chunk;
|
||||
import com.dfsek.terra.api.structures.parser.lang.Returnable;
|
||||
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
|
||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||
@@ -74,11 +73,6 @@ public class StructureFunction implements Function<Void> {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
|
||||
Reference in New Issue
Block a user