diff --git a/buildSrc/src/main/kotlin/AddonConfig.kt b/buildSrc/src/main/kotlin/AddonConfig.kt index cf76ebbe0..96221b3a7 100644 --- a/buildSrc/src/main/kotlin/AddonConfig.kt +++ b/buildSrc/src/main/kotlin/AddonConfig.kt @@ -12,6 +12,7 @@ import kotlin.streams.asStream * Configures a directory where addons will be put. */ fun Project.addonDir(dir: File, task: Task) { + task.dependsOn("compileAddons") task.doFirst { dir.parentFile.mkdirs() matchingAddons(dir) { diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index b03af16f8..df8d88d0f 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -7,16 +7,19 @@ import java.nio.file.Files import java.nio.file.StandardCopyOption import org.gradle.api.DefaultTask import org.gradle.api.Project +import org.gradle.api.Task import org.gradle.api.plugins.BasePluginExtension import org.gradle.jvm.tasks.Jar import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.creating import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.named import org.yaml.snakeyaml.DumperOptions import org.yaml.snakeyaml.Yaml + fun Project.configureDistribution() { apply(plugin = "com.github.johnrengelman.shadow") @@ -29,13 +32,17 @@ fun Project.configureDistribution() { } } - val installAddons = tasks.create("installAddons") { - group = "terra" + val compileAddons = tasks.create("compileAddons") { forSubProjects(":common:addons") { afterEvaluate { dependsOn(getJarTask()) } } + } + + val installAddons = tasks.create("installAddons") { + group = "terra" + dependsOn(compileAddons) doLast { // https://github.com/johnrengelman/shadow/issues/111 @@ -44,18 +51,18 @@ fun Project.configureDistribution() { FileSystems.newFileSystem(dest, mapOf("create" to "false"), null).use { fs -> forSubProjects(":common:addons") { val jar = getJarTask() - + println("Packaging addon ${jar.archiveFileName.get()} to $dest. size: ${jar.archiveFile.get().asFile.length() / 1024}KB") - + val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" val addonPath = fs.getPath("/addons/$boot${jar.archiveFileName.get()}"); - - if(!Files.exists(addonPath)) { + + if (!Files.exists(addonPath)) { Files.createDirectories(addonPath.parent) Files.createFile(addonPath) Files.copy(jar.archiveFile.get().asFile.toPath(), addonPath, StandardCopyOption.REPLACE_EXISTING) } - + } } } @@ -120,7 +127,7 @@ fun Project.configureDistribution() { relocate("com.dfsek.paralithic", "com.dfsek.terra.lib.paralithic") relocate("org.json", "com.dfsek.terra.lib.json") relocate("org.yaml", "com.dfsek.terra.lib.yaml") - + finalizedBy(installAddons) } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java index 6552a8cc8..9c9b73e0f 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java @@ -32,7 +32,7 @@ public class EqualsStatement extends BinaryOperation { return FastMath.abs(l.doubleValue() - r.doubleValue()) <= EPSILON; } - return left.equals(rightUnwrapped); + return leftUnwrapped.equals(rightUnwrapped); } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 363fc47ca..1bba19e9e 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -99,7 +99,7 @@ public class StructureScript implements Structure, Keyed { .registerFunction("rotationDegrees", new ZeroArgFunctionBuilder<>(arguments -> arguments.getRotation().getDegrees(), Returnable.ReturnType.NUMBER)) .registerFunction("print", - new UnaryStringFunctionBuilder(string -> LOGGER.debug("[TerraScript:{}] {}", id, string))) + new UnaryStringFunctionBuilder(string -> LOGGER.info("[TerraScript:{}] {}", id, string))) .registerFunction("abs", new UnaryNumberFunctionBuilder(number -> FastMath.abs(number.doubleValue()))) .registerFunction("pow2", new UnaryNumberFunctionBuilder(number -> FastMath.pow2(number.doubleValue()))) .registerFunction("pow", new BinaryNumberFunctionBuilder( diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java index fc68790e3..b9c4ceb10 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java @@ -54,7 +54,7 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { private final long seed; private final Map>> h = new Object2ObjectArrayMap<>(); - + private static final Lazy> EMPTY = Lazy.lazy(List::of); public NMSChunkGeneratorDelegate(ChunkGenerator vanilla, ConfigPack pack, NMSBiomeProvider biomeProvider, long seed) { @@ -154,7 +154,7 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @Override public List a(ConcentricRingsStructurePlacement concentricringsstructureplacement) { this.i(); - return this.h.get(concentricringsstructureplacement).value(); + return this.h.getOrDefault(concentricringsstructureplacement, EMPTY).value(); } private volatile boolean rings = false;