Reimplement structure trees with TerraScripts

This commit is contained in:
dfsek
2020-12-24 02:06:19 -07:00
parent 5d6b060dee
commit 9adc03d56b
7 changed files with 37 additions and 59 deletions
@@ -21,7 +21,7 @@ public class Block implements Item<Block.ReturnLevel> {
}
@Override
public ReturnLevel apply(Location location, Rotation rotation, int recursions) {
public synchronized ReturnLevel apply(Location location, Rotation rotation, int recursions) {
for(Item<?> item : items) {
Object result = item.apply(location, rotation, recursions);
if(result instanceof ReturnLevel) {
@@ -33,7 +33,7 @@ public class Block implements Item<Block.ReturnLevel> {
}
@Override
public ReturnLevel apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
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) {
@@ -19,14 +19,14 @@ public class Assignment<T> implements Item<T> {
}
@Override
public T apply(Location location, Rotation rotation, int recursions) {
public synchronized T apply(Location location, Rotation rotation, int recursions) {
T val = value.apply(location, rotation, recursions);
delegate.setValue(val);
return val;
}
@Override
public T apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
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;
@@ -19,12 +19,12 @@ public class Getter implements Returnable<Object> {
}
@Override
public Object apply(Location location, Rotation rotation, int recursions) {
public synchronized Object apply(Location location, Rotation rotation, int recursions) {
return delegate.getValue();
}
@Override
public Object apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
public synchronized Object apply(Location location, Chunk chunk, Rotation rotation, int recursions) {
return delegate.getValue();
}