rename main parameters/fields to platform

This commit is contained in:
dfsek
2021-09-26 13:22:45 -07:00
parent 8f51707505
commit 4945a3bbfa
117 changed files with 535 additions and 516 deletions

View File

@@ -25,20 +25,20 @@ import com.dfsek.terra.api.structure.Structure;
@Version("1.0.0")
public class TerraScriptAddon extends TerraAddon {
@Inject
private Platform main;
private Platform platform;
@Override
public void initialize() {
main.getEventManager()
.getHandler(FunctionalEventHandler.class)
.register(this, ConfigPackPreLoadEvent.class)
.then(event -> {
platform.getEventManager()
.getHandler(FunctionalEventHandler.class)
.register(this, ConfigPackPreLoadEvent.class)
.then(event -> {
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
CheckedRegistry<LootTable> lootRegistry = event.getPack().getOrCreateRegistry(LootTable.class);
event.getPack().getLoader().open("", ".tesf").thenEntries(entries -> {
for(Map.Entry<String, InputStream> entry : entries) {
try {
StructureScript structureScript = new StructureScript(entry.getValue(), main, structureRegistry, lootRegistry,
StructureScript structureScript = new StructureScript(entry.getValue(), platform, structureRegistry, lootRegistry,
event.getPack().getRegistryFactory().create());
structureRegistry.register(structureScript.getID(), structureScript);
} catch(ParseException e) {
@@ -47,6 +47,6 @@ public class TerraScriptAddon extends TerraAddon {
}
}).close();
})
.failThrough();
.failThrough();
}
}

View File

@@ -11,13 +11,13 @@ import com.dfsek.terra.api.world.World;
public class BufferedBlock implements BufferedItem {
private final BlockState data;
private final boolean overwrite;
private final Platform main;
private final Platform platform;
private final boolean waterlog;
public BufferedBlock(BlockState data, boolean overwrite, Platform main, boolean waterlog) {
public BufferedBlock(BlockState data, boolean overwrite, Platform platform, boolean waterlog) {
this.data = data;
this.overwrite = overwrite;
this.main = main;
this.platform = platform;
this.waterlog = waterlog;
}
@@ -32,8 +32,8 @@ public class BufferedBlock implements BufferedItem {
world.setBlockData(origin, data);
}
} catch(RuntimeException e) {
main.logger().severe("Failed to place block at location " + origin + ": " + e.getMessage());
main.getDebugLogger().stack(e);
platform.logger().severe("Failed to place block at location " + origin + ": " + e.getMessage());
platform.getDebugLogger().stack(e);
}
}
}

View File

@@ -12,16 +12,16 @@ import com.dfsek.terra.api.world.World;
public class BufferedEntity implements BufferedItem {
private final EntityType type;
private final Platform main;
private final Platform platform;
public BufferedEntity(EntityType type, Platform main) {
public BufferedEntity(EntityType type, Platform platform) {
this.type = type;
this.main = main;
this.platform = platform;
}
@Override
public void paste(Vector3 origin, World world) {
Entity entity = world.spawnEntity(origin.clone().add(0.5, 0, 0.5), type);
main.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getConfig().getPack(), entity));
platform.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getConfig().getPack(), entity));
}
}

View File

@@ -15,12 +15,12 @@ import com.dfsek.terra.api.world.World;
public class BufferedLootApplication implements BufferedItem {
private final LootTable table;
private final Platform main;
private final Platform platform;
private final StructureScript structure;
public BufferedLootApplication(LootTable table, Platform main, StructureScript structure) {
public BufferedLootApplication(LootTable table, Platform platform, StructureScript structure) {
this.table = table;
this.main = main;
this.platform = platform;
this.structure = structure;
}
@@ -29,19 +29,19 @@ public class BufferedLootApplication implements BufferedItem {
try {
BlockEntity data = world.getBlockState(origin);
if(!(data instanceof Container)) {
main.logger().severe("Failed to place loot at " + origin + "; block " + data + " is not container.");
platform.logger().severe("Failed to place loot at " + origin + "; block " + data + " is not container.");
return;
}
Container container = (Container) data;
LootPopulateEvent event = new LootPopulateEvent(container, table, world.getConfig().getPack(), structure);
main.getEventManager().callEvent(event);
platform.getEventManager().callEvent(event);
if(event.isCancelled()) return;
event.getTable().fillInventory(container.getInventory(), new Random(origin.hashCode()));
data.update(false);
} catch(Exception e) {
main.logger().warning("Could not apply loot at " + origin + ": " + e.getMessage());
platform.logger().warning("Could not apply loot at " + origin + ": " + e.getMessage());
e.printStackTrace();
}
}

View File

@@ -8,11 +8,11 @@ import com.dfsek.terra.api.world.World;
public class BufferedStateManipulator implements BufferedItem {
private final Platform main;
private final Platform platform;
private final String data;
public BufferedStateManipulator(Platform main, String state) {
this.main = main;
public BufferedStateManipulator(Platform platform, String state) {
this.platform = platform;
this.data = state;
}
@@ -23,7 +23,7 @@ public class BufferedStateManipulator implements BufferedItem {
state.applyState(data);
state.update(false);
} catch(Exception e) {
main.logger().warning("Could not apply BlockState at " + origin + ": " + e.getMessage());
platform.logger().warning("Could not apply BlockState at " + origin + ": " + e.getMessage());
e.printStackTrace();
}
}

View File

@@ -52,10 +52,10 @@ public class StructureScript implements Structure {
private final Block block;
private final String id;
private final Cache<Vector3, StructureBuffer> cache;
private final Platform main;
private final Platform platform;
private String tempID;
public StructureScript(InputStream inputStream, Platform main, Registry<Structure> registry, Registry<LootTable> lootRegistry,
public StructureScript(InputStream inputStream, Platform platform, Registry<Structure> registry, Registry<LootTable> lootRegistry,
Registry<FunctionBuilder<?>> functionRegistry) throws ParseException {
Parser parser;
try {
@@ -67,20 +67,20 @@ public class StructureScript implements Structure {
functionRegistry.forEach(parser::registerFunction); // Register registry functions.
parser
.registerFunction("block", new BlockFunctionBuilder(main))
.registerFunction("debugBlock", new BlockFunctionBuilder(main))
.registerFunction("check", new CheckFunctionBuilder(main))
.registerFunction("structure", new StructureFunctionBuilder(registry, main))
.registerFunction("block", new BlockFunctionBuilder(platform))
.registerFunction("debugBlock", new BlockFunctionBuilder(platform))
.registerFunction("check", new CheckFunctionBuilder(platform))
.registerFunction("structure", new StructureFunctionBuilder(registry, platform))
.registerFunction("randomInt", new RandomFunctionBuilder())
.registerFunction("recursions", new RecursionsFunctionBuilder())
.registerFunction("setMark", new SetMarkFunctionBuilder())
.registerFunction("getMark", new GetMarkFunctionBuilder())
.registerFunction("pull", new PullFunctionBuilder(main))
.registerFunction("loot", new LootFunctionBuilder(main, lootRegistry, this))
.registerFunction("entity", new EntityFunctionBuilder(main))
.registerFunction("getBiome", new BiomeFunctionBuilder(main))
.registerFunction("pull", new PullFunctionBuilder(platform))
.registerFunction("loot", new LootFunctionBuilder(platform, lootRegistry, this))
.registerFunction("entity", new EntityFunctionBuilder(platform))
.registerFunction("getBiome", new BiomeFunctionBuilder(platform))
.registerFunction("getBlock", new CheckBlockFunctionBuilder())
.registerFunction("state", new StateFunctionBuilder(main))
.registerFunction("state", new StateFunctionBuilder(platform))
.registerFunction("setWaterlog", new UnaryBooleanFunctionBuilder((waterlog, args) -> args.setWaterlog(waterlog)))
.registerFunction("originX", new ZeroArgFunctionBuilder<Number>(arguments -> arguments.getBuffer().getOrigin().getX(),
Returnable.ReturnType.NUMBER))
@@ -93,7 +93,7 @@ public class StructureScript implements Structure {
.registerFunction("rotationDegrees", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().getDegrees(),
Returnable.ReturnType.NUMBER))
.registerFunction("print",
new UnaryStringFunctionBuilder(string -> main.getDebugLogger().info("[" + tempID + "] " + string)))
new UnaryStringFunctionBuilder(string -> platform.getDebugLogger().info("[" + tempID + "] " + string)))
.registerFunction("abs", new UnaryNumberFunctionBuilder(number -> FastMath.abs(number.doubleValue())))
.registerFunction("pow", new BinaryNumberFunctionBuilder(
(number, number2) -> FastMath.pow(number.doubleValue(), number2.doubleValue())))
@@ -113,21 +113,21 @@ public class StructureScript implements Structure {
.registerFunction("min", new BinaryNumberFunctionBuilder(
(number, number2) -> FastMath.min(number.doubleValue(), number2.doubleValue())));
if(!main.getTerraConfig().isDebugScript()) {
if(!platform.getTerraConfig().isDebugScript()) {
parser.ignoreFunction("debugBlock");
}
block = parser.parse();
this.id = parser.getID();
tempID = id;
this.main = main;
this.cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getStructureCache()).build();
this.platform = platform;
this.cache = CacheBuilder.newBuilder().maximumSize(platform.getTerraConfig().getStructureCache()).build();
}
@Override
@SuppressWarnings("try")
public boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation) {
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_chunk:" + id)) {
try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_chunk:" + id)) {
StructureBuffer buffer = computeBuffer(location, world, random, rotation);
buffer.paste(location, chunk);
return buffer.succeeded();
@@ -137,7 +137,7 @@ public class StructureScript implements Structure {
@Override
@SuppressWarnings("try")
public boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions) {
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_recursive:" + id)) {
try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_recursive:" + id)) {
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, recursions));
}
}
@@ -145,7 +145,7 @@ public class StructureScript implements Structure {
@Override
@SuppressWarnings("try")
public boolean generate(Vector3 location, World world, Random random, Rotation rotation) {
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) {
try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_direct:" + id)) {
DirectBuffer buffer = new DirectBuffer(location, world);
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, 0));
}
@@ -153,7 +153,7 @@ public class StructureScript implements Structure {
@SuppressWarnings("try")
public boolean test(Vector3 location, World world, Random random, Rotation rotation) {
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) {
try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_test:" + id)) {
StructureBuffer buffer = computeBuffer(location, world, random, rotation);
return buffer.succeeded();
}
@@ -175,8 +175,8 @@ public class StructureScript implements Structure {
try {
return block.apply(arguments).getLevel() != Block.ReturnLevel.FAIL;
} catch(RuntimeException e) {
main.logger().severe("Failed to generate structure at " + arguments.getBuffer().getOrigin() + ": " + e.getMessage());
main.getDebugLogger().stack(e);
platform.logger().severe("Failed to generate structure at " + arguments.getBuffer().getOrigin() + ": " + e.getMessage());
platform.getDebugLogger().stack(e);
return false;
}
}

View File

@@ -10,16 +10,16 @@ import com.dfsek.terra.api.Platform;
public class BiomeFunctionBuilder implements FunctionBuilder<BiomeFunction> {
private final Platform main;
private final Platform platform;
public BiomeFunctionBuilder(Platform main) {
this.main = main;
public BiomeFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@Override
public BiomeFunction build(List<Returnable<?>> argumentList, Position position) {
return new BiomeFunction(main, (Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
return new BiomeFunction(platform, (Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), position);
}

View File

@@ -13,10 +13,10 @@ import com.dfsek.terra.api.Platform;
public class BlockFunctionBuilder implements FunctionBuilder<BlockFunction> {
private final Platform main;
private final Platform platform;
public BlockFunctionBuilder(Platform main) {
this.main = main;
public BlockFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@@ -28,11 +28,11 @@ public class BlockFunctionBuilder implements FunctionBuilder<BlockFunction> {
if(argumentList.get(3) instanceof StringConstant) {
return new BlockFunction.Constant((Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (StringConstant) argumentList.get(3),
booleanReturnable, main, position);
booleanReturnable, platform, position);
}
return new BlockFunction((Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), booleanReturnable,
main, position);
platform, position);
}
@Override

View File

@@ -11,16 +11,16 @@ import com.dfsek.terra.api.Platform;
public class CheckFunctionBuilder implements FunctionBuilder<CheckFunction> {
private final Platform main;
private final Platform platform;
public CheckFunctionBuilder(Platform main) {
this.main = main;
public CheckFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@Override
public CheckFunction build(List<Returnable<?>> argumentList, Position position) throws ParseException {
return new CheckFunction(main, (Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
return new CheckFunction(platform, (Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), position);
}

View File

@@ -11,17 +11,17 @@ import com.dfsek.terra.api.Platform;
public class EntityFunctionBuilder implements FunctionBuilder<EntityFunction> {
private final Platform main;
private final Platform platform;
public EntityFunctionBuilder(Platform main) {
this.main = main;
public EntityFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@Override
public EntityFunction build(List<Returnable<?>> argumentList, Position position) throws ParseException {
return new EntityFunction((Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), main, position);
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), platform, position);
}
@Override

View File

@@ -13,12 +13,12 @@ import com.dfsek.terra.api.structure.LootTable;
public class LootFunctionBuilder implements FunctionBuilder<LootFunction> {
private final Platform main;
private final Platform platform;
private final Registry<LootTable> registry;
private final StructureScript script;
public LootFunctionBuilder(Platform main, Registry<LootTable> registry, StructureScript script) {
this.main = main;
public LootFunctionBuilder(Platform platform, Registry<LootTable> registry, StructureScript script) {
this.platform = platform;
this.registry = registry;
this.script = script;
}
@@ -27,7 +27,7 @@ public class LootFunctionBuilder implements FunctionBuilder<LootFunction> {
@Override
public LootFunction build(List<Returnable<?>> argumentList, Position position) {
return new LootFunction(registry, (Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), main, position, script);
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), platform, position, script);
}
@Override

View File

@@ -11,17 +11,17 @@ import com.dfsek.terra.api.Platform;
public class PullFunctionBuilder implements FunctionBuilder<PullFunction> {
private final Platform main;
private final Platform platform;
public PullFunctionBuilder(Platform main) {
this.main = main;
public PullFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@Override
public PullFunction build(List<Returnable<?>> argumentList, Position position) throws ParseException {
return new PullFunction((Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), main, position);
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), platform, position);
}
@Override

View File

@@ -11,10 +11,10 @@ import com.dfsek.terra.api.Platform;
public class StateFunctionBuilder implements FunctionBuilder<StateFunction> {
private final Platform main;
private final Platform platform;
public StateFunctionBuilder(Platform main) {
this.main = main;
public StateFunctionBuilder(Platform platform) {
this.platform = platform;
}
@SuppressWarnings("unchecked")
@@ -22,7 +22,7 @@ public class StateFunctionBuilder implements FunctionBuilder<StateFunction> {
public StateFunction build(List<Returnable<?>> argumentList, Position position) throws ParseException {
if(argumentList.size() < 4) throw new ParseException("Expected data", position);
return new StateFunction((Returnable<Number>) argumentList.get(0), (Returnable<Number>) argumentList.get(1),
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), main, position);
(Returnable<Number>) argumentList.get(2), (Returnable<String>) argumentList.get(3), platform, position);
}
@Override

View File

@@ -15,11 +15,11 @@ import com.dfsek.terra.api.structure.Structure;
public class StructureFunctionBuilder implements FunctionBuilder<StructureFunction> {
private final Registry<Structure> registry;
private final Platform main;
private final Platform platform;
public StructureFunctionBuilder(Registry<Structure> registry, Platform main) {
public StructureFunctionBuilder(Registry<Structure> registry, Platform platform) {
this.registry = registry;
this.main = main;
this.platform = platform;
}
@SuppressWarnings("unchecked")
@@ -30,7 +30,7 @@ public class StructureFunctionBuilder implements FunctionBuilder<StructureFuncti
return new StructureFunction((Returnable<Number>) argumentList.remove(0), (Returnable<Number>) argumentList.remove(0),
(Returnable<Number>) argumentList.remove(0), (Returnable<String>) argumentList.remove(0),
argumentList.stream().map(item -> ((Returnable<String>) item)).collect(Collectors.toList()), registry,
position, main);
position, platform);
}
@Override

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.terrascript.script.functions;
import com.dfsek.terra.api.Platform;
import net.jafama.FastMath;
import java.util.Map;
@@ -10,7 +12,6 @@ import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.RotationUtil;
import com.dfsek.terra.api.util.vector.Vector2;
import com.dfsek.terra.api.util.vector.Vector3;
@@ -18,13 +19,13 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class BiomeFunction implements Function<String> {
private final Platform main;
private final Platform platform;
private final Returnable<Number> x, y, z;
private final Position position;
public BiomeFunction(Platform main, Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Position position) {
this.main = main;
public BiomeFunction(Platform platform, Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Position position) {
this.platform = platform;
this.x = x;
this.y = y;
this.z = z;

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.terrascript.script.functions;
import com.dfsek.terra.api.Platform;
import net.jafama.FastMath;
import java.util.HashMap;
@@ -13,7 +15,6 @@ import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable;
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.util.RotationUtil;
import com.dfsek.terra.api.util.vector.Vector2;
@@ -23,19 +24,19 @@ import com.dfsek.terra.api.util.vector.Vector3;
public class BlockFunction implements Function<Void> {
protected final Returnable<Number> x, y, z;
protected final Returnable<String> blockData;
protected final Platform main;
protected final Platform platform;
private final Map<String, BlockState> data = new HashMap<>();
private final Returnable<Boolean> overwrite;
private final Position position;
public BlockFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> blockData,
Returnable<Boolean> overwrite, Platform main, Position position) {
Returnable<Boolean> overwrite, Platform platform, Position position) {
this.x = x;
this.y = y;
this.z = z;
this.blockData = blockData;
this.overwrite = overwrite;
this.main = main;
this.platform = platform;
this.position = position;
}
@@ -66,13 +67,13 @@ public class BlockFunction implements Function<Void> {
RotationUtil.rotateBlockData(rot, arguments.getRotation().inverse());
arguments.getBuffer().addItem(
new BufferedBlock(rot, overwrite.apply(implementationArguments, variableMap), main, arguments.isWaterlog()),
new BufferedBlock(rot, overwrite.apply(implementationArguments, variableMap), platform, arguments.isWaterlog()),
new Vector3(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).doubleValue(),
FastMath.roundToInt(xz.getZ())));
}
protected BlockState getBlockState(ImplementationArguments arguments, Map<String, Variable<?>> variableMap) {
return data.computeIfAbsent(blockData.apply(arguments, variableMap), main.getWorldHandle()::createBlockData);
return data.computeIfAbsent(blockData.apply(arguments, variableMap), platform.getWorldHandle()::createBlockData);
}
@@ -80,9 +81,9 @@ public class BlockFunction implements Function<Void> {
private final BlockState state;
public Constant(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, StringConstant blockData,
Returnable<Boolean> overwrite, Platform main, Position position) {
super(x, y, z, blockData, overwrite, main, position);
this.state = main.getWorldHandle().createBlockData(blockData.getConstant());
Returnable<Boolean> overwrite, Platform platform, Position position) {
super(x, y, z, blockData, overwrite, platform, position);
this.state = platform.getWorldHandle().createBlockData(blockData.getConstant());
}
@Override

View File

@@ -19,12 +19,12 @@ import com.dfsek.terra.api.world.generator.SamplerCache;
public class CheckFunction implements Function<String> {
private final Platform main;
private final Platform platform;
private final Returnable<Number> x, y, z;
private final Position position;
public CheckFunction(Platform main, Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Position position) {
this.main = main;
public CheckFunction(Platform platform, Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Position position) {
this.platform = platform;
this.x = x;
this.y = y;
this.z = z;

View File

@@ -22,15 +22,15 @@ public class EntityFunction implements Function<Void> {
private final EntityType data;
private final Returnable<Number> x, y, z;
private final Position position;
private final Platform main;
private final Platform platform;
public EntityFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform main,
public EntityFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform platform,
Position position) throws ParseException {
this.position = position;
this.main = main;
this.platform = platform;
if(!(data instanceof ConstantExpression)) throw new ParseException("Entity data must be constant", data.getPosition());
this.data = main.getWorldHandle().getEntity(((ConstantExpression<String>) data).getConstant());
this.data = platform.getWorldHandle().getEntity(((ConstantExpression<String>) data).getConstant());
this.x = x;
this.y = y;
this.z = z;
@@ -44,7 +44,7 @@ public class EntityFunction implements Function<Void> {
RotationUtil.rotateVector(xz, arguments.getRotation());
arguments.getBuffer().addItem(new BufferedEntity(data, main),
arguments.getBuffer().addItem(new BufferedEntity(data, platform),
new Vector3(xz.getX(), y.apply(implementationArguments, variableMap).doubleValue(), xz.getZ()));
return null;
}

View File

@@ -25,18 +25,18 @@ public class LootFunction implements Function<Void> {
private final Returnable<String> data;
private final Returnable<Number> x, y, z;
private final Position position;
private final Platform main;
private final Platform platform;
private final StructureScript script;
public LootFunction(Registry<LootTable> registry, Returnable<Number> x, Returnable<Number> y, Returnable<Number> z,
Returnable<String> data, Platform main, Position position, StructureScript script) {
Returnable<String> data, Platform platform, Position position, StructureScript script) {
this.registry = registry;
this.position = position;
this.data = data;
this.x = x;
this.y = y;
this.z = z;
this.main = main;
this.platform = platform;
this.script = script;
}
@@ -52,11 +52,11 @@ public class LootFunction implements Function<Void> {
LootTable table = registry.get(id);
if(table == null) {
main.logger().severe("No such loot table " + id);
platform.logger().severe("No such loot table " + id);
return null;
}
arguments.getBuffer().addItem(new BufferedLootApplication(table, main, script),
arguments.getBuffer().addItem(new BufferedLootApplication(table, platform, script),
new Vector3(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).intValue(),
FastMath.roundToInt(xz.getZ())));
return null;

View File

@@ -25,12 +25,12 @@ public class PullFunction implements Function<Void> {
private final Returnable<Number> x, y, z;
private final Position position;
public PullFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform main,
public PullFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform platform,
Position position) throws ParseException {
this.position = position;
if(!(data instanceof ConstantExpression)) throw new ParseException("Block data must be constant", data.getPosition());
this.data = main.getWorldHandle().createBlockData(((ConstantExpression<String>) data).getConstant());
this.data = platform.getWorldHandle().createBlockData(((ConstantExpression<String>) data).getConstant());
this.x = x;
this.y = y;
this.z = z;

View File

@@ -21,12 +21,12 @@ public class StateFunction implements Function<Void> {
private final Returnable<String> data;
private final Returnable<Number> x, y, z;
private final Position position;
private final Platform main;
private final Platform platform;
public StateFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform main,
public StateFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Platform platform,
Position position) {
this.position = position;
this.main = main;
this.platform = platform;
this.data = data;
this.x = x;
this.y = y;
@@ -40,7 +40,7 @@ public class StateFunction implements Function<Void> {
z.apply(implementationArguments, variableMap).doubleValue());
RotationUtil.rotateVector(xz, arguments.getRotation());
arguments.getBuffer().addItem(new BufferedStateManipulator(main, data.apply(implementationArguments, variableMap)),
arguments.getBuffer().addItem(new BufferedStateManipulator(platform, data.apply(implementationArguments, variableMap)),
new Vector3(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).intValue(),
FastMath.roundToInt(xz.getZ())));
return null;

View File

@@ -26,18 +26,18 @@ public class StructureFunction implements Function<Boolean> {
private final Returnable<String> id;
private final Returnable<Number> x, y, z;
private final Position position;
private final Platform main;
private final Platform platform;
private final List<Returnable<String>> rotations;
public StructureFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> id,
List<Returnable<String>> rotations, Registry<Structure> registry, Position position, Platform main) {
List<Returnable<String>> rotations, Registry<Structure> registry, Position position, Platform platform) {
this.registry = registry;
this.id = id;
this.position = position;
this.x = x;
this.y = y;
this.z = z;
this.main = main;
this.platform = platform;
this.rotations = rotations;
}
@@ -50,7 +50,7 @@ public class StructureFunction implements Function<Boolean> {
public Boolean apply(ImplementationArguments implementationArguments, Map<String, Variable<?>> variableMap) {
TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments;
if(arguments.getRecursions() > main.getTerraConfig().getMaxRecursion())
if(arguments.getRecursions() > platform.getTerraConfig().getMaxRecursion())
throw new RuntimeException("Structure recursion too deep: " + arguments.getRecursions());
Vector2 xz = new Vector2(x.apply(implementationArguments, variableMap).doubleValue(),
@@ -61,7 +61,7 @@ public class StructureFunction implements Function<Boolean> {
String app = id.apply(implementationArguments, variableMap);
Structure script = registry.get(app);
if(script == null) {
main.logger().severe("No such structure " + app);
platform.logger().severe("No such structure " + app);
return null;
}
@@ -70,7 +70,7 @@ public class StructureFunction implements Function<Boolean> {
try {
rotation1 = Rotation.valueOf(rotString);
} catch(IllegalArgumentException e) {
main.logger().severe("Invalid rotation " + rotString);
platform.logger().severe("Invalid rotation " + rotString);
return null;
}