Initial terrascript 2 commit

This commit is contained in:
Astrash
2023-08-05 15:53:01 +10:00
parent 772675639e
commit 0e9cbd8e2f
123 changed files with 3090 additions and 1230 deletions

View File

@@ -1,10 +1,11 @@
package com.dfsek.terra.addons.terrascript.sampler;
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
import com.dfsek.terra.addons.terrascript.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.parser.lang.Scope;
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.Type;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.ImplementationArguments;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.Scope;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.legacy.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.lexer.SourcePosition;
import com.dfsek.terra.api.noise.NoiseSampler;
@@ -52,7 +53,7 @@ public class ConstantSamplerFunction implements Function<Number> {
}
@Override
public ReturnType returnType() {
return ReturnType.NUMBER;
public Type returnType() {
return Type.NUMBER;
}
}

View File

@@ -2,11 +2,12 @@ package com.dfsek.terra.addons.terrascript.sampler;
import java.util.function.Supplier;
import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments;
import com.dfsek.terra.addons.terrascript.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.parser.lang.Scope;
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.Type;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.ImplementationArguments;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.Scope;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.legacy.script.TerraImplementationArguments;
import com.dfsek.terra.addons.terrascript.lexer.SourcePosition;
import com.dfsek.terra.api.noise.NoiseSampler;
@@ -58,7 +59,7 @@ public class SamplerFunction implements Function<Number> {
}
@Override
public ReturnType returnType() {
return ReturnType.NUMBER;
public Type returnType() {
return Type.NUMBER;
}
}

View File

@@ -6,15 +6,16 @@ import java.util.Map;
import java.util.Objects;
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
import com.dfsek.terra.addons.terrascript.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.parser.lang.Expression.ReturnType;
import com.dfsek.terra.addons.terrascript.parser.lang.constants.NumericConstant;
import com.dfsek.terra.addons.terrascript.parser.lang.constants.StringConstant;
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.functions.Function;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.Expression;
import com.dfsek.terra.addons.terrascript.Type;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.constants.NumericConstant;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.constants.StringConstant;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.addons.terrascript.lexer.SourcePosition;
public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number>> {
public class SamplerFunctionBuilder implements FunctionBuilder<Function<Number>> {
private final Map<String, DimensionApplicableNoiseSampler> samplers2d;
private final Map<String, DimensionApplicableNoiseSampler> samplers3d;
@@ -33,8 +34,8 @@ public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.a
@SuppressWarnings("unchecked")
@Override
public com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number> build(List<Expression<?>> argumentList,
SourcePosition position) {
public Function<Number> build(List<Expression<?>> argumentList,
SourcePosition position) {
Expression<String> arg = (Expression<String>) argumentList.get(0);
if(argumentList.size() == 3) { // 2D
@@ -87,10 +88,10 @@ public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.a
}
@Override
public ReturnType getArgument(int position) {
public Type getArgument(int position) {
return switch(position) {
case 0 -> ReturnType.STRING;
case 1, 2, 3 -> ReturnType.NUMBER;
case 0 -> Type.STRING;
case 1, 2, 3 -> Type.NUMBER;
default -> null;
};
}

View File

@@ -2,7 +2,7 @@ package com.dfsek.terra.addons.terrascript.sampler;
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
import com.dfsek.terra.addons.noise.NoiseConfigPackTemplate;
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.addons.terrascript.legacy.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;