From 81a96d6b769cf1173eeb16dea83b55916d9a089a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Thu, 2 Nov 2023 18:47:36 -0600 Subject: [PATCH] Reformat code --- .github/ISSUE_TEMPLATE/BUG_REPORT.md | 14 +- .github/ISSUE_TEMPLATE/config.yml | 18 +- build.gradle.kts | 18 +- buildSrc/build.gradle.kts | 4 +- .../src/main/kotlin/DistributionConfig.kt | 5 +- buildSrc/src/main/kotlin/Versions.kt | 3 +- .../src/main/resources/terra.addon.yml | 12 +- .../image/v2/ImageBiomeProviderAddon.java | 14 +- .../ClosestBiomeColorConverterTemplate.java | 2 +- .../ExactBiomeColorConverterTemplate.java | 6 +- .../src/main/resources/terra.addon.yml | 12 +- .../biome/image/ImageBiomeProviderAddon.java | 8 +- .../src/main/resources/terra.addon.yml | 10 +- .../biome-provider-pipeline-v2/README.md | 2 +- .../pipeline/v2/PipelineBiomeProvider.java | 9 +- .../pipeline/v2/api/biome/PipelineBiome.java | 4 +- .../v2/api/biome/SelfPipelineBiome.java | 2 +- .../v2/config/BiomePipelineTemplate.java | 16 +- .../pipeline/v2/pipeline/BiomeChunkImpl.java | 42 ++--- .../pipeline/v2/pipeline/PipelineImpl.java | 6 +- .../v2/stage/expander/FractalExpander.java | 8 +- .../v2/stage/mutators/BorderListStage.java | 7 +- .../v2/stage/mutators/SmoothStage.java | 2 +- .../src/main/resources/terra.addon.yml | 10 +- .../biome/pipeline/BiomePipelineAddon.java | 8 +- .../biome/pipeline/BiomePipelineProvider.java | 8 +- .../pipeline/api/delegate/SelfDelegate.java | 2 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../biome/query/BiomeQueryAPIAddon.java | 4 +- .../addons/biome/query/api/BiomeQueries.java | 2 +- .../src/main/resources/terra.addon.yml | 10 +- .../NoiseChunkGenerator3DAddon.java | 9 +- .../config/noise/ThreadLocalNoiseHolder.java | 2 +- .../config/palette/BiomePaletteTemplate.java | 9 +- .../math/interpolation/ChunkInterpolator.java | 2 +- .../chunkgenerator/palette/PaletteHolder.java | 19 +- .../palette/slant/MultipleSlantHolder.java | 3 +- .../palette/slant/SlantHolder.java | 169 +++++++++--------- .../palette/slant/SlantHolderImpl.java | 6 +- .../src/main/resources/terra.addon.yml | 10 +- .../commands/addons/AddonsCommandAddon.java | 6 +- .../src/main/resources/terra.addon.yml | 10 +- .../commands/packs/PacksCommandAddon.java | 6 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../structure/StructureCommandAddon.java | 2 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../feature/distributor/DistributorAddon.java | 4 +- .../src/main/resources/terra.addon.yml | 14 +- .../src/main/resources/terra.addon.yml | 12 +- .../src/main/resources/terra.addon.yml | 10 +- .../addons/feature/locator/LocatorAddon.java | 10 +- .../src/main/resources/terra.addon.yml | 14 +- .../dfsek/terra/addons/noise/NoiseAddon.java | 35 ++-- .../templates/TranslateSamplerTemplate.java | 2 +- .../noise/ExpressionFunctionTemplate.java | 9 +- .../ExpressionNormalizerTemplate.java | 9 +- .../terra/addons/noise/math/CubicSpline.java | 22 +-- .../addons/noise/paralithic/FunctionUtil.java | 5 +- .../noise/samplers/noise/DistanceSampler.java | 40 ++--- .../samplers/noise/GaborNoiseSampler.java | 8 +- .../noise/samplers/noise/NoiseFunction.java | 2 +- .../noise/value/ValueCubicSampler.java | 38 ++-- .../src/main/resources/terra.addon.yml | 10 +- .../DoublePredicateLoader.java | 2 +- .../numberpredicate/NumberPredicateAddon.java | 1 + .../src/main/resources/terra.addon.yml | 10 +- .../terra/addons/ore/ores/VanillaOre.java | 1 + .../addons/ore/ores/VanillaScatteredOre.java | 9 +- .../addons/ore/utils/VanillaOreUtils.java | 3 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../feature/FeatureGenerationAddon.java | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- common/addons/library-image/build.gradle.kts | 1 - .../terra/addons/image/ImageLibraryAddon.java | 2 +- .../image/colorsampler/ColorSampler.java | 1 + .../image/transform/Alignment.java | 4 +- .../mutate/RotateColorSampler.java | 11 +- .../addons/image/config/ColorLoader.java | 22 +-- .../ImageLibraryPackConfigTemplate.java | 7 +- .../SingleImageColorSamplerTemplate.java | 2 +- .../image/TileImageColorSamplerTemplate.java | 2 +- .../mutate/TranslateColorSamplerTemplate.java | 2 +- .../addons/image/config/image/ImageCache.java | 4 +- .../image/config/image/ImageTemplate.java | 6 +- .../config/image/StitchedImageTemplate.java | 17 +- ...DistanceTransformNoiseSamplerTemplate.java | 3 +- .../converter/ClosestMatchColorConverter.java | 11 +- .../image/converter/ExactColorConverter.java | 4 +- .../mapping/BiomeDefinedColorMapping.java | 3 +- .../addons/image/image/StitchedImage.java | 6 +- .../addons/image/image/SuppliedImage.java | 1 + .../image/operator/DistanceTransform.java | 59 +++--- .../terra/addons/image/util/ColorUtil.java | 53 ++++-- .../terra/addons/image/util/MapUtil.java | 6 +- .../terra/addons/image/util/MathUtil.java | 4 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 12 +- .../src/main/resources/terra.addon.yml | 10 +- .../pipeline/image/PipelineImageAddon.java | 27 +-- ...stPipelineBiomeColorConverterTemplate.java | 2 +- ...ctPipelineBiomeColorConverterTemplate.java | 6 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 8 +- .../addons/sponge/SpongeSchematicAddon.java | 2 +- .../src/main/resources/terra.addon.yml | 10 +- .../addons/terrascript/parser/Parser.java | 4 +- .../terrascript/parser/lang/Executable.java | 4 +- .../addons/terrascript/parser/lang/Scope.java | 6 +- .../lang/constants/BooleanConstant.java | 2 +- .../lang/constants/NumericConstant.java | 2 +- .../parser/lang/functions/Function.java | 4 +- .../lang/operations/BooleanOrOperation.java | 2 +- .../lang/operations/ModuloOperation.java | 2 +- .../operations/MultiplicationOperation.java | 2 +- .../operations/NumberAdditionOperation.java | 2 +- .../lang/operations/SubtractionOperation.java | 2 +- .../statements/EqualsStatement.java | 2 +- .../statements/LessThanOrEqualsStatement.java | 2 +- .../statements/LessThanStatement.java | 2 +- .../terrascript/script/StructureScript.java | 36 ++-- .../script/functions/LootFunction.java | 6 +- .../script/functions/StateFunction.java | 6 +- .../src/main/resources/terra.addon.yml | 10 +- .../src/main/resources/terra.addon.yml | 14 +- .../src/main/resources/terra.addon.yml | 14 +- common/api/build.gradle.kts | 4 +- .../java/com/dfsek/terra/api/Platform.java | 10 +- .../dfsek/terra/api/util/GeometryUtil.java | 2 +- .../com/dfsek/terra/api/util/MathUtil.java | 16 +- .../collection/ProbabilityCollection.java | 6 +- .../terra/api/util/generic/either/Either.java | 2 +- .../terra/api/util/generic/pair/Pair.java | 22 +-- .../api/util/reflection/ReflectionUtil.java | 2 +- .../dfsek/terra/api/util/vector/Vector2.java | 1 + .../terra/api/util/vector/Vector2Int.java | 14 +- .../dfsek/terra/api/util/vector/Vector3.java | 1 + .../generation/CachingBiomeProvider.java | 8 +- common/api/src/test/java/util/ColumnTest.java | 6 +- common/implementation/base/build.gradle.kts | 10 +- .../com/dfsek/terra/AbstractPlatform.java | 2 +- .../loaders/config/BufferedImageLoader.java | 3 +- .../MetaListLikePreprocessor.java | 3 +- .../base/src/main/resources/config.yml | 16 +- .../src/test/java/registry/RegistryTest.java | 6 +- .../base/src/test/resources/config.yml | 10 +- .../base/src/test/resources/meta.yml | 26 +-- .../base/src/test/resources/metaTarget.yml | 22 +-- .../terra/addon/BootstrapAddonLoader.java | 4 +- gradle.properties | 1 - platforms/bukkit/build.gradle.kts | 2 +- platforms/bukkit/common/build.gradle.kts | 8 +- .../com/dfsek/terra/bukkit/BukkitAddon.java | 8 +- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 2 +- .../generator/BukkitBlockPopulator.java | 5 +- .../BukkitChunkGeneratorWrapper.java | 10 +- .../bukkit/handles/BukkitWorldHandle.java | 3 +- .../terra/bukkit/world/BukkitProtoWorld.java | 2 +- .../bukkit/nms/v1_18_R2/AwfulBukkitHacks.java | 2 +- .../bukkit/nms/v1_18_R2/NMSBiomeInjector.java | 20 +-- .../terra/bukkit/nms/v1_18_R2/Reflection.java | 4 +- .../bukkit/nms/v1_19_R1/AwfulBukkitHacks.java | 2 +- .../bukkit/nms/v1_19_R1/NMSBiomeInjector.java | 8 +- .../v1_19_R1/NMSChunkGeneratorDelegate.java | 25 +-- .../terra/bukkit/nms/v1_19_R1/Reflection.java | 1 + .../bukkit/nms/v1_19_R2/NMSBiomeInjector.java | 8 +- .../bukkit/nms/v1_19_R2/NMSBiomeProvider.java | 4 +- .../v1_19_R2/NMSChunkGeneratorDelegate.java | 23 +-- .../nms/v1_19_R2/NMSInjectListener.java | 2 +- .../terra/bukkit/nms/v1_19_R2/Reflection.java | 2 + .../bukkit/nms/v1_19_R3/NMSBiomeInjector.java | 35 ++-- .../bukkit/nms/v1_19_R3/NMSBiomeProvider.java | 17 +- .../v1_19_R3/NMSChunkGeneratorDelegate.java | 23 +-- .../nms/v1_19_R3/NMSInjectListener.java | 2 +- .../terra/bukkit/nms/v1_19_R3/Reflection.java | 2 + .../bukkit/nms/v1_20_R1/NMSBiomeInjector.java | 35 ++-- .../bukkit/nms/v1_20_R1/NMSBiomeProvider.java | 17 +- .../v1_20_R1/NMSChunkGeneratorDelegate.java | 23 +-- .../nms/v1_20_R1/NMSInjectListener.java | 2 +- .../terra/bukkit/nms/v1_20_R1/Reflection.java | 2 + .../bukkit/nms/v1_20_R2/NMSBiomeInjector.java | 34 ++-- .../bukkit/nms/v1_20_R2/NMSBiomeProvider.java | 17 +- .../v1_20_R2/NMSChunkGeneratorDelegate.java | 23 +-- .../nms/v1_20_R2/NMSInjectListener.java | 2 +- .../terra/bukkit/nms/v1_20_R2/Reflection.java | 2 + platforms/cli/build.gradle.kts | 10 +- .../dfsek/terra/cli/block/CLIBlockState.java | 4 +- platforms/fabric/build.gradle.kts | 18 +- platforms/forge/build.gradle.kts | 22 +-- .../dfsek/terra/forge/AwfulForgeHacks.java | 4 +- .../mixin/lifecycle/NoiseConfigMixin.java | 3 +- .../com/dfsek/terra/forge/util/BiomeUtil.java | 6 +- platforms/merged/build.gradle.kts | 4 +- platforms/mixin-common/build.gradle.kts | 6 +- .../java/com/dfsek/terra/mod/ModPlatform.java | 5 +- .../config/BiomeParticleConfigTemplate.java | 4 +- .../java/com/dfsek/terra/mod/data/Codecs.java | 6 +- .../MinecraftChunkGeneratorWrapper.java | 3 +- .../mod/generation/TerraBiomeSource.java | 6 +- .../mod/handle/MinecraftWorldHandle.java | 3 +- .../entity/MobSpawnerBlockEntityMixin.java | 14 +- .../terra/chunk/WorldChunkMixin.java | 4 +- .../dfsek/terra/mod/util/MinecraftUtil.java | 3 +- .../com/dfsek/terra/mod/util/PresetUtil.java | 22 ++- .../com/dfsek/terra/mod/util/TagUtil.java | 2 +- platforms/mixin-lifecycle/build.gradle.kts | 12 +- .../terra/lifecycle/LifecycleEntryPoint.java | 8 +- .../terra/lifecycle/LifecyclePlatform.java | 27 ++- .../lifecycle/mixin/NoiseConfigMixin.java | 3 +- .../mixin/lifecycle/RegistryLoaderMixin.java | 3 +- .../dfsek/terra/lifecycle/util/BiomeUtil.java | 6 +- .../terra/lifecycle/util/LifecycleUtil.java | 5 +- .../terra/lifecycle/util/RegistryUtil.java | 2 +- .../resources/terra.lifecycle.mixins.json | 42 ++--- .../dfsek/terra/quilt/AwfulQuiltHacks.java | 6 +- .../com/dfsek/terra/quilt/QuiltAddon.java | 4 +- .../com/dfsek/terra/quilt/QuiltPlatform.java | 7 +- 224 files changed, 1156 insertions(+), 1075 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md index e5c4b0d4a..2c4abb380 100644 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -51,13 +51,13 @@ assignees: "" -| Name | Value | -|------------------------------|-------| -| Terra Version | -| Platform / Platform Version | -| Any External Plugins or Mods | -| Terra Packs In Use | -| Terra Addons In Use | +| Name | Value | +|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Terra Version | +| Platform / Platform Version | +| Any External Plugins or Mods | +| Terra Packs In Use | +| Terra Addons In Use | ## Issue Description diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 4611034c8..329a48021 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,11 @@ blank_issues_enabled: false contact_links: - - name: Which Issue Template do I Choose? - url: https://github.com/PolyhedralDev/Terra/wiki/How-To-Choose-An-Issue-Template - about: Click this if you don't know which issue template to select. This will help you make sure you choose the right one and provide enough information for us to help you. - - name: Terra Wiki - url: https://github.com/PolyhedralDev/Terra/wiki - about: Documentation for all things Terra. - - name: Join the Support Discord - url: https://discord.dfsek.com - about: If you have a basic support question, join the Discord instead. \ No newline at end of file + - name: Which Issue Template do I Choose? + url: https://github.com/PolyhedralDev/Terra/wiki/How-To-Choose-An-Issue-Template + about: Click this if you don't know which issue template to select. This will help you make sure you choose the right one and provide enough information for us to help you. + - name: Terra Wiki + url: https://github.com/PolyhedralDev/Terra/wiki + about: Documentation for all things Terra. + - name: Join the Support Discord + url: https://discord.dfsek.com + about: If you have a basic support question, join the Discord instead. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 0d71e84fc..73654719d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,32 +7,32 @@ versionProjects(":platforms", version("6.4.0")) allprojects { group = "com.dfsek.terra" - + configureCompilation() configureDependencies() configurePublishing() - + tasks.withType().configureEach { options.isFork = true options.isIncremental = true } - + tasks.withType().configureEach { useJUnitPlatform() - + maxHeapSize = "2G" ignoreFailures = false failFast = true maxParallelForks = (Runtime.getRuntime().availableProcessors() - 1).takeIf { it > 0 } ?: 1 - + reports.html.required.set(false) reports.junitXml.required.set(false) } - + tasks.withType().configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - + tasks.withType().configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } @@ -45,11 +45,11 @@ afterEvaluate { project(":platforms:bukkit:common").configureDistribution() forSubProjects(":common:addons") { apply(plugin = "com.github.johnrengelman.shadow") - + tasks.named("build") { finalizedBy(tasks.named("shadowJar")) } - + dependencies { "compileOnly"(project(":common:api")) "testImplementation"(project(":common:api")) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 84d964d5c..eaec594a4 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -17,8 +17,8 @@ repositories { dependencies { //TODO Allow pulling from Versions.kt implementation("com.github.johnrengelman", "shadow", "8.1.1") - implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin","1.5.6") - + implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin", "1.5.6") + implementation("org.ow2.asm", "asm", "9.5") implementation("org.ow2.asm", "asm-tree", "9.5") implementation("com.dfsek.tectonic", "common", "4.2.0") diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index 59f16569b..81102bdda 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -88,7 +88,8 @@ fun Project.configureDistribution() { val jar = getJarTask().archiveFileName.get() resources.computeIfAbsent( if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "addons/bootstrap" - else "addons") { ArrayList() }.add(jar) + else "addons" + ) { ArrayList() }.add(jar) } val options = DumperOptions() @@ -109,7 +110,7 @@ fun Project.configureDistribution() { FileWriter(manifest).use { yaml.dump(resources, it) } - + } } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 3e45cc7d7..18dbd85fe 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -56,7 +56,8 @@ object Versions { const val runPaper = "2.2.0" const val paperWeight = "1.5.6" } -// + + // // object Sponge { // const val sponge = "9.0.0-SNAPSHOT" // const val mixin = "0.8.2" diff --git a/common/addons/biome-provider-extrusion/src/main/resources/terra.addon.yml b/common/addons/biome-provider-extrusion/src/main/resources/terra.addon.yml index 21992a6d1..95fd480c1 100644 --- a/common/addons/biome-provider-extrusion/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-extrusion/src/main/resources/terra.addon.yml @@ -1,14 +1,14 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-extrusion version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.extrusion.BiomeExtrusionAddon" + - "com.dfsek.terra.addons.biome.extrusion.BiomeExtrusionAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - biome-query-api: "1.+" \ No newline at end of file + biome-query-api: "1.+" \ No newline at end of file diff --git a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/ImageBiomeProviderAddon.java b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/ImageBiomeProviderAddon.java index ba4bce73c..9a49b4d0f 100644 --- a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/ImageBiomeProviderAddon.java +++ b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/ImageBiomeProviderAddon.java @@ -58,15 +58,19 @@ public class ImageBiomeProviderAddon implements AddonInitializer { providerRegistry.register(addon.key("IMAGE"), ImageProviderTemplate::new); }) .then(event -> { - CheckedRegistry>>> biomeColorConverterRegistry = event.getPack().getOrCreateRegistry( - BIOME_COLOR_CONVERTER_REGISTRY_KEY); + CheckedRegistry>>> biomeColorConverterRegistry = + event.getPack().getOrCreateRegistry( + BIOME_COLOR_CONVERTER_REGISTRY_KEY); biomeColorConverterRegistry.register(addon.key("EXACT"), ExactBiomeColorConverterTemplate::new); biomeColorConverterRegistry.register(addon.key("CLOSEST"), ClosestBiomeColorConverterTemplate::new); }) .then(event -> { - CheckedRegistry>>> biomeColorMappingRegistry = event.getPack().getOrCreateRegistry( - BIOME_COLOR_MAPPING_REGISTRY_KEY); - biomeColorMappingRegistry.register(addon.key("USE_BIOME_COLORS"), () -> () -> new BiomeDefinedColorMapping<>(event.getPack().getRegistry(Biome.class), b -> b)); + CheckedRegistry>>> biomeColorMappingRegistry = + event.getPack().getOrCreateRegistry( + BIOME_COLOR_MAPPING_REGISTRY_KEY); + biomeColorMappingRegistry.register(addon.key("USE_BIOME_COLORS"), + () -> () -> new BiomeDefinedColorMapping<>(event.getPack().getRegistry(Biome.class), + b -> b)); biomeColorMappingRegistry.register(addon.key("MAP"), DefinedBiomeColorMappingTemplate::new); }) .failThrough(); diff --git a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ClosestBiomeColorConverterTemplate.java b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ClosestBiomeColorConverterTemplate.java index 9c9e15869..2c9973789 100644 --- a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ClosestBiomeColorConverterTemplate.java +++ b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ClosestBiomeColorConverterTemplate.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.biome.Biome; public class ClosestBiomeColorConverterTemplate extends ClosestColorConverterTemplate { - + @Value("match") private ColorMapping match; diff --git a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ExactBiomeColorConverterTemplate.java b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ExactBiomeColorConverterTemplate.java index 3be64aa77..ed32a18e8 100644 --- a/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ExactBiomeColorConverterTemplate.java +++ b/common/addons/biome-provider-image-v2/src/main/java/com/dfsek/terra/addons/biome/image/v2/config/converter/ExactBiomeColorConverterTemplate.java @@ -12,19 +12,19 @@ public class ExactBiomeColorConverterTemplate extends ExactColorConverterTemplat @Value("match") private ColorMapping match; - + @Value("else") private Biome fallback; @Value("ignore-alpha") @Default private boolean ignoreAlpha = true; - + @Override protected ColorMapping getMapping() { return match; } - + @Override protected Biome getFallback() { return fallback; diff --git a/common/addons/biome-provider-image-v2/src/main/resources/terra.addon.yml b/common/addons/biome-provider-image-v2/src/main/resources/terra.addon.yml index be3dd2af4..c80bb617a 100644 --- a/common/addons/biome-provider-image-v2/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-image-v2/src/main/resources/terra.addon.yml @@ -1,14 +1,14 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-image-v2 version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.image.v2.ImageBiomeProviderAddon" + - "com.dfsek.terra.addons.biome.image.v2.ImageBiomeProviderAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - library-image: "1.+" + library-image: "1.+" diff --git a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java index 27ac28df4..02ff7f446 100644 --- a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java +++ b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java @@ -27,11 +27,9 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public class ImageBiomeProviderAddon implements AddonInitializer { - private static final Logger logger = LoggerFactory.getLogger(ImageBiomeProviderAddon.class); - public static final TypeKey>> PROVIDER_REGISTRY_KEY = new TypeKey<>() { }; - + private static final Logger logger = LoggerFactory.getLogger(ImageBiomeProviderAddon.class); @Inject private Platform platform; @@ -51,6 +49,8 @@ public class ImageBiomeProviderAddon implements AddonInitializer { }) .failThrough(); if(platform.getTerraConfig().isDebugLog()) - logger.warn("The biome-provider-image addon is deprecated and scheduled for removal in Terra 7.0. It is recommended to use the biome-provider-image-v2 addon for future pack development instead."); + logger.warn( + "The biome-provider-image addon is deprecated and scheduled for removal in Terra 7.0. It is recommended to use the " + + "biome-provider-image-v2 addon for future pack development instead."); } } diff --git a/common/addons/biome-provider-image/src/main/resources/terra.addon.yml b/common/addons/biome-provider-image/src/main/resources/terra.addon.yml index 3fd86ad52..dec87cc26 100644 --- a/common/addons/biome-provider-image/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-image/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-image version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.image.ImageBiomeProviderAddon" + - "com.dfsek.terra.addons.biome.image.ImageBiomeProviderAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/biome-provider-pipeline-v2/README.md b/common/addons/biome-provider-pipeline-v2/README.md index d1d216dfd..745ffa241 100644 --- a/common/addons/biome-provider-pipeline-v2/README.md +++ b/common/addons/biome-provider-pipeline-v2/README.md @@ -6,7 +6,7 @@ of "stages" to apply "mutations" to a 2D grid of biomes. Version 2 is a re-implementation of the original addon with the primary goal of providing consistent scaling for noise relative to the world (See https://github.com/PolyhedralDev/Terra/issues/264 for more details), and has been -included as a separate addon to maintain parity with packs utilizing the first version. +included as a separate addon to maintain parity with packs utilizing the first version. This addon registers the `PIPELINE` biome provider type, and all associated configurations. \ No newline at end of file diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java index 08d321abd..02c7376a3 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/PipelineBiomeProvider.java @@ -38,7 +38,7 @@ public class PipelineBiomeProvider implements BiomeProvider { this.biomeChunkCache = Caffeine.newBuilder() .maximumSize(64) .build(pipeline::generateChunk); - + Set biomeSet = new HashSet<>(); pipeline.getSource().getBiomes().forEach(biomeSet::add); Iterable result = biomeSet; @@ -49,7 +49,7 @@ public class PipelineBiomeProvider implements BiomeProvider { Iterable finalResult = result; result.forEach(pipelineBiome -> { if(pipelineBiome.isPlaceholder()) { - + StringBuilder biomeList = new StringBuilder("\n"); StreamSupport.stream(finalResult.spliterator(), false) .sorted(Comparator.comparing(StringIdentifiable::getID)) @@ -60,7 +60,8 @@ public class PipelineBiomeProvider implements BiomeProvider { .append(delegate.getClass().getCanonicalName()) .append('\n')); throw new IllegalArgumentException("Biome Pipeline leaks placeholder biome \"" + pipelineBiome.getID() + - "\". Ensure there is a stage to guarantee replacement of the placeholder biome. Biomes: " + + "\". Ensure there is a stage to guarantee replacement of the placeholder biome. " + + "Biomes: " + biomeList); } this.biomes.add(pipelineBiome.getBiome()); @@ -73,7 +74,7 @@ public class PipelineBiomeProvider implements BiomeProvider { } public Biome getBiome(int x, int z, long seed) { - + x += mutator.noise(seed + 1, x, z) * noiseAmp; z += mutator.noise(seed + 2, x, z) * noiseAmp; diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/PipelineBiome.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/PipelineBiome.java index ccde84022..aeb99f903 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/PipelineBiome.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/PipelineBiome.java @@ -7,8 +7,6 @@ import com.dfsek.terra.api.world.biome.Biome; public interface PipelineBiome extends StringIdentifiable { - Biome getBiome(); - static PipelineBiome placeholder(String id) { return new PlaceholderPipelineBiome(id); } @@ -21,6 +19,8 @@ public interface PipelineBiome extends StringIdentifiable { return SelfPipelineBiome.INSTANCE; } + Biome getBiome(); + Set getTags(); default boolean isPlaceholder() { diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/SelfPipelineBiome.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/SelfPipelineBiome.java index 80583c1cb..a962dadbe 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/SelfPipelineBiome.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/api/biome/SelfPipelineBiome.java @@ -10,7 +10,7 @@ final class SelfPipelineBiome implements PipelineBiome { public static final SelfPipelineBiome INSTANCE = new SelfPipelineBiome(); private SelfPipelineBiome() { - + } @Override diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/config/BiomePipelineTemplate.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/config/BiomePipelineTemplate.java index f9ea854a5..78e115609 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/config/BiomePipelineTemplate.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/config/BiomePipelineTemplate.java @@ -33,24 +33,20 @@ public class BiomePipelineTemplate implements ObjectTemplate { Larger values are quadratically faster, but produce lower quality results. For example, a value of 3 would sample every 3 blocks.""") protected @Meta int resolution = 1; - - @Value("pipeline.source") - @Description("The Biome Source to use for initial population of biomes.") - private @Meta Source source; - - @Value("pipeline.stages") - @Description("A list of pipeline stages to apply to the result of #source") - private @Meta List<@Meta Stage> stages; - @Value("blend.sampler") @Default @Description("A sampler to use for blending the edges of biomes via domain warping.") protected @Meta NoiseSampler blendSampler = NoiseSampler.zero(); - @Value("blend.amplitude") @Default @Description("The amplitude at which to perform blending.") protected @Meta double blendAmplitude = 0d; + @Value("pipeline.source") + @Description("The Biome Source to use for initial population of biomes.") + private @Meta Source source; + @Value("pipeline.stages") + @Description("A list of pipeline stages to apply to the result of #source") + private @Meta List<@Meta Stage> stages; @Override public BiomeProvider get() { diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java index df843ec4b..5635bd16a 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/BiomeChunkImpl.java @@ -11,10 +11,10 @@ import com.dfsek.terra.addons.biome.pipeline.v2.api.biome.PipelineBiome; public class BiomeChunkImpl implements BiomeChunk { - private PipelineBiome[][] biomes; private final SeededVector worldOrigin; private final int chunkOriginArrayIndex; private final int worldCoordinateScale; + private PipelineBiome[][] biomes; public BiomeChunkImpl(SeededVector worldOrigin, PipelineImpl pipeline) { @@ -43,7 +43,8 @@ public class BiomeChunkImpl implements BiomeChunk { for(int gridZ = 0; gridZ < gridSize; gridZ++) { int xIndex = gridOrigin + gridX * gridInterval; int zIndex = gridOrigin + gridZ * gridInterval; - biomes[xIndex][zIndex] = pipeline.getSource().get(worldOrigin.seed(), xIndexToWorldCoordinate(xIndex), zIndexToWorldCoordinate(zIndex)); + biomes[xIndex][zIndex] = pipeline.getSource().get(worldOrigin.seed(), xIndexToWorldCoordinate(xIndex), + zIndexToWorldCoordinate(zIndex)); } } @@ -79,21 +80,6 @@ public class BiomeChunkImpl implements BiomeChunk { } } - @Override - public PipelineBiome get(int xInChunk, int zInChunk) { - int xIndex = xInChunk + chunkOriginArrayIndex; - int zIndex = zInChunk + chunkOriginArrayIndex; - return biomes[xIndex][zIndex]; - } - - private int xIndexToWorldCoordinate(int xIndex) { - return (worldOrigin.x() + xIndex - chunkOriginArrayIndex) * worldCoordinateScale; - } - - private int zIndexToWorldCoordinate(int zIndex) { - return (worldOrigin.z() + zIndex - chunkOriginArrayIndex) * worldCoordinateScale; - } - protected static int initialSizeToArraySize(int expanderCount, int initialSize) { int size = initialSize; for(int i = 0; i < expanderCount; i++) { @@ -117,8 +103,8 @@ public class BiomeChunkImpl implements BiomeChunk { int gridOrigin = 0; int expansionsApplied = 0; int gridInterval = calculateGridInterval(totalExpanderCount, expansionsApplied); - for (Stage stage : stages) { - if (stage instanceof Expander) { + for(Stage stage : stages) { + if(stage instanceof Expander) { expansionsApplied++; gridInterval = calculateGridInterval(totalExpanderCount, expansionsApplied); } @@ -143,6 +129,21 @@ public class BiomeChunkImpl implements BiomeChunk { return 1 << (totalExpansions - expansionsApplied); } + @Override + public PipelineBiome get(int xInChunk, int zInChunk) { + int xIndex = xInChunk + chunkOriginArrayIndex; + int zIndex = zInChunk + chunkOriginArrayIndex; + return biomes[xIndex][zIndex]; + } + + private int xIndexToWorldCoordinate(int xIndex) { + return (worldOrigin.x() + xIndex - chunkOriginArrayIndex) * worldCoordinateScale; + } + + private int zIndexToWorldCoordinate(int zIndex) { + return (worldOrigin.z() + zIndex - chunkOriginArrayIndex) * worldCoordinateScale; + } + private SeededVector getOrigin() { return worldOrigin; } @@ -160,7 +161,8 @@ public class BiomeChunkImpl implements BiomeChunk { private final int zIndex; private final PipelineBiome[][] lookupArray; - private ViewPoint(BiomeChunkImpl chunk, int gridInterval, int gridX, int gridZ, int xIndex, int zIndex, PipelineBiome[][] lookupArray) { + private ViewPoint(BiomeChunkImpl chunk, int gridInterval, int gridX, int gridZ, int xIndex, int zIndex, + PipelineBiome[][] lookupArray) { this.chunk = chunk; this.gridInterval = gridInterval; this.gridX = gridX; diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java index a01091d2e..a9be64bf3 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/pipeline/PipelineImpl.java @@ -36,18 +36,18 @@ public class PipelineImpl implements Pipeline { int chunkOriginArrayIndex; int chunkSize; int initialSize = 1; - while (true) { + while(true) { arraySize = BiomeChunkImpl.initialSizeToArraySize(expanderCount, initialSize); chunkOriginArrayIndex = BiomeChunkImpl.calculateChunkOriginArrayIndex(expanderCount, stages); chunkSize = BiomeChunkImpl.calculateChunkSize(arraySize, chunkOriginArrayIndex, expanderCount); - if (chunkSize > 1 && arraySize >= idealChunkArraySize) break; + if(chunkSize > 1 && arraySize >= idealChunkArraySize) break; initialSize++; } this.arraySize = arraySize; this.chunkOriginArrayIndex = chunkOriginArrayIndex; this.chunkSize = chunkSize; - + logger.debug("Initialized a new biome pipeline:"); logger.debug("Array size: {} (Target: {})", arraySize, idealChunkArraySize); logger.debug("Internal array origin: {}", chunkOriginArrayIndex); diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/expander/FractalExpander.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/expander/FractalExpander.java index c82743ba4..c4040d8b4 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/expander/FractalExpander.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/expander/FractalExpander.java @@ -16,21 +16,21 @@ public class FractalExpander implements Expander { @Override public PipelineBiome fillBiome(BiomeChunkImpl.ViewPoint viewPoint) { - + int xMod2 = viewPoint.gridX() % 2; int zMod2 = viewPoint.gridZ() % 2; double roll = sampler.noise(viewPoint.worldSeed(), viewPoint.worldX(), viewPoint.worldZ()); - if (xMod2 == 1 && zMod2 == 0) { // Pick one of 2 neighbors on X axis randomly + if(xMod2 == 1 && zMod2 == 0) { // Pick one of 2 neighbors on X axis randomly return roll > 0 ? viewPoint.getRelativeBiome(-1, 0) : viewPoint.getRelativeBiome(1, 0); - } else if (xMod2 == 0 && zMod2 == 1) { // Pick one of 2 neighbors on Z axis randomly + } else if(xMod2 == 0 && zMod2 == 1) { // Pick one of 2 neighbors on Z axis randomly return roll > 0 ? viewPoint.getRelativeBiome(0, -1) : viewPoint.getRelativeBiome(0, 1); } else { // Pick one of 4 corners randomly return roll > 0 ? - roll > 0.25 ? viewPoint.getRelativeBiome(-1, 1) : viewPoint.getRelativeBiome(1, 1) : + roll > 0.25 ? viewPoint.getRelativeBiome(-1, 1) : viewPoint.getRelativeBiome(1, 1) : roll > -0.25 ? viewPoint.getRelativeBiome(-1, -1) : viewPoint.getRelativeBiome(1, -1); } } diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/BorderListStage.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/BorderListStage.java index 340ff155a..1483816b5 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/BorderListStage.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/BorderListStage.java @@ -38,7 +38,7 @@ public class BorderListStage implements Stage { this.replaceDefault = replaceDefault; this.defaultReplace = defaultReplace; this.replace = replace; - + List points = new ArrayList<>(); for(int x = -1; x <= 1; x++) { for(int z = -1; z <= 1; z++) { @@ -68,10 +68,11 @@ public class BorderListStage implements Stage { if(current != null && current.getTags().contains(border)) { if(replace.containsKey(center)) { PipelineBiome replacement = replace.get(center).get(noiseSampler, viewPoint.worldX(), viewPoint.worldZ(), - viewPoint.worldSeed()); + viewPoint.worldSeed()); return replacement.isSelf() ? center : replacement; } - PipelineBiome replacement = replaceDefault.get(noiseSampler, viewPoint.worldX(), viewPoint.worldZ(), viewPoint.worldSeed()); + PipelineBiome replacement = replaceDefault.get(noiseSampler, viewPoint.worldX(), viewPoint.worldZ(), + viewPoint.worldSeed()); return replacement.isSelf() ? center : replacement; } } diff --git a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/SmoothStage.java b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/SmoothStage.java index 20b664539..fb40f86df 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/SmoothStage.java +++ b/common/addons/biome-provider-pipeline-v2/src/main/java/com/dfsek/terra/addons/biome/pipeline/v2/stage/mutators/SmoothStage.java @@ -34,7 +34,7 @@ public class SmoothStage implements Stage { boolean vert = Objects.equals(top, bottom); boolean horiz = Objects.equals(left, right); - + if(vert && horiz) { return roll > 0 ? roll > 0.25 ? left : right : diff --git a/common/addons/biome-provider-pipeline-v2/src/main/resources/terra.addon.yml b/common/addons/biome-provider-pipeline-v2/src/main/resources/terra.addon.yml index f800574ca..c9b711ce5 100644 --- a/common/addons/biome-provider-pipeline-v2/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-pipeline-v2/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-pipeline-v2 version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.pipeline.v2.BiomePipelineAddon" + - "com.dfsek.terra.addons.biome.pipeline.v2.BiomePipelineAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java index a4016a51a..ba91c8f9e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java @@ -41,15 +41,13 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public class BiomePipelineAddon implements AddonInitializer { - private static final Logger logger = LoggerFactory.getLogger(BiomePipelineAddon.class); - public static final TypeKey>> SOURCE_REGISTRY_KEY = new TypeKey<>() { }; - public static final TypeKey>> STAGE_REGISTRY_KEY = new TypeKey<>() { }; public static final TypeKey>> PROVIDER_REGISTRY_KEY = new TypeKey<>() { }; + private static final Logger logger = LoggerFactory.getLogger(BiomePipelineAddon.class); @Inject private Platform platform; @@ -91,6 +89,8 @@ public class BiomePipelineAddon implements AddonInitializer { }); if(platform.getTerraConfig().isDebugLog()) - logger.warn("The biome-provider-pipeline addon is deprecated and scheduled for removal in Terra 7.0. It is recommended to use the biome-provider-pipeline-v2 addon for future pack development instead."); + logger.warn( + "The biome-provider-pipeline addon is deprecated and scheduled for removal in Terra 7.0. It is recommended to use the" + + " biome-provider-pipeline-v2 addon for future pack development instead."); } } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java index d4dd96264..7f4287e70 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java @@ -80,11 +80,11 @@ public class BiomePipelineProvider implements BiomeProvider { public Biome getBiome(int x, int z, long seed) { x += mutator.noise(seed + 1, x, z) * noiseAmp; z += mutator.noise(seed + 2, x, z) * noiseAmp; - - + + x /= resolution; z /= resolution; - + int fdX = Math.floorDiv(x, pipeline.getSize()); int fdZ = Math.floorDiv(z, pipeline.getSize()); return holderCache.get(new SeededVector(fdX, fdZ, seed)).getBiome(x - fdX * pipeline.getSize(), @@ -119,7 +119,7 @@ public class BiomePipelineProvider implements BiomeProvider { } return false; } - + @Override public int hashCode() { int code = x; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java index 60b744059..ad6a4a721 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java @@ -10,7 +10,7 @@ final class SelfDelegate implements BiomeDelegate { public static final SelfDelegate INSTANCE = new SelfDelegate(); private SelfDelegate() { - + } @Override diff --git a/common/addons/biome-provider-pipeline/src/main/resources/terra.addon.yml b/common/addons/biome-provider-pipeline/src/main/resources/terra.addon.yml index abd2555a5..f43908cac 100644 --- a/common/addons/biome-provider-pipeline/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-pipeline/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-pipeline version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.pipeline.BiomePipelineAddon" + - "com.dfsek.terra.addons.biome.pipeline.BiomePipelineAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/biome-provider-single/src/main/resources/terra.addon.yml b/common/addons/biome-provider-single/src/main/resources/terra.addon.yml index d986179f3..c7e91131c 100644 --- a/common/addons/biome-provider-single/src/main/resources/terra.addon.yml +++ b/common/addons/biome-provider-single/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-provider-single version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.single.SingleBiomeProviderAddon" + - "com.dfsek.terra.addons.biome.single.SingleBiomeProviderAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java index 9def4378b..9933ea49e 100644 --- a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java +++ b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java @@ -33,12 +33,12 @@ public class BiomeQueryAPIAddon implements AddonInitializer { .getPack() .getRegistry(Biome.class) .entries(); - + BiomeTagFlattener flattener = new BiomeTagFlattener(biomes .stream() .flatMap(biome -> biome.getTags().stream()) .toList()); - + biomes.forEach(biome -> biome.getContext().put(BIOME_TAG_KEY, new BiomeTagHolder(biome, flattener))); }) .global(); diff --git a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java index dbee2752b..6e36b7a45 100644 --- a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java +++ b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.biome.Biome; public final class BiomeQueries { private BiomeQueries() { - + } public static Predicate has(String tag) { diff --git a/common/addons/biome-query-api/src/main/resources/terra.addon.yml b/common/addons/biome-query-api/src/main/resources/terra.addon.yml index 8a55ce2dc..1030c3e4c 100644 --- a/common/addons/biome-query-api/src/main/resources/terra.addon.yml +++ b/common/addons/biome-query-api/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: biome-query-api version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.query.BiomeQueryAPIAddon" + - "com.dfsek.terra.addons.biome.query.BiomeQueryAPIAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java index fed22e1c9..69fa4be73 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java @@ -47,7 +47,7 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { event.getPack().applyLoader(SlantHolder.CalculationMethod.class, (type, o, loader, depthTracker) -> SlantHolder.CalculationMethod.valueOf((String) o)); - + NoiseChunkGeneratorPackConfigTemplate config = event.loadTemplate(new NoiseChunkGeneratorPackConfigTemplate()); event.getPack().getContext().put(config); @@ -68,10 +68,13 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { .register(addon, ConfigurationLoadEvent.class) .then(event -> { if(event.is(Biome.class)) { - NoiseChunkGeneratorPackConfigTemplate config = event.getPack().getContext().get(NoiseChunkGeneratorPackConfigTemplate.class); + NoiseChunkGeneratorPackConfigTemplate config = event.getPack().getContext().get( + NoiseChunkGeneratorPackConfigTemplate.class); event.getLoadedObject(Biome.class).getContext().put(paletteInfoPropertyKey, - event.load(new BiomePaletteTemplate(platform, config.getSlantCalculationMethod())).get()); + event.load(new BiomePaletteTemplate(platform, + config.getSlantCalculationMethod())) + .get()); event.getLoadedObject(Biome.class).getContext().put(noisePropertiesPropertyKey, event.load(new BiomeNoiseConfigTemplate()).get()); } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/ThreadLocalNoiseHolder.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/ThreadLocalNoiseHolder.java index 454f9492f..fbb9deed8 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/ThreadLocalNoiseHolder.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/ThreadLocalNoiseHolder.java @@ -12,7 +12,7 @@ public class ThreadLocalNoiseHolder { if(holder.init && holder.y == y && holder.z == z && holder.x == x && holder.seed == seed) { return holder.noise; } - + double noise = sampler.noise(seed, x, y, z); holder.noise = noise; holder.x = x; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java index 0bb19e962..a80311ad1 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java @@ -27,26 +27,22 @@ import com.dfsek.terra.api.world.chunk.generation.util.Palette; public class BiomePaletteTemplate implements ObjectTemplate { private final Platform platform; - + private final SlantHolder.CalculationMethod slantCalculationMethod; @Value("slant") @Default @Description("The slant palettes to use in this biome.") private @Meta List slantLayers = Collections.emptyList(); - @Value("slant-depth") @Default @Description("The maximum depth at which to apply a slant palette.") private @Meta int slantDepth = Integer.MAX_VALUE; - @Value("palette") @Description("The palettes to use in this biome.") private @Meta List<@Meta Map<@Meta Palette, @Meta Integer>> palettes; - @Value("ocean.level") @Description("Sea level in this biome. Defaults to zero") @Default private @Meta int seaLevel = 0; - @Value("ocean.palette") @Description("The palette to use for the ocean in this biome. Defaults to a blank palette.") @Default @@ -56,13 +52,10 @@ public class BiomePaletteTemplate implements ObjectTemplate { return platform.getWorldHandle().air(); } }; - @Value("carving.update-palette") @Default private @Meta boolean updatePalette = false; - private final SlantHolder.CalculationMethod slantCalculationMethod; - public BiomePaletteTemplate(Platform platform, SlantHolder.CalculationMethod slantCalculationMethod) { this.platform = platform; this.slantCalculationMethod = slantCalculationMethod; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java index d846ac53f..792d16729 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java @@ -145,7 +145,7 @@ public class ChunkInterpolator { */ public double getNoise(double x, double y, double z) { return interpGrid[reRange(((int) x) / 4, 3)][(Math.max(Math.min(((int) y), max), min) - min) / 4][reRange(((int) z) / 4, - 3)].trilerp( + 3)].trilerp( (x % 4) / 4, (y % 4) / 4, (z % 4) / 4); } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolder.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolder.java index 327d6fe47..91318b0b4 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolder.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolder.java @@ -24,15 +24,6 @@ public class PaletteHolder { this.offset = offset; } - public Palette getPalette(int y) { - int index = y + offset; - return index >= 0 - ? index < palettes.length - ? palettes[index] - : palettes[palettes.length - 1] - : palettes[0]; - } - public static PaletteHolder of(List> palettes) { PaletteHolderBuilder builder = new PaletteHolderBuilder(); for(Map layer : palettes) { @@ -43,6 +34,16 @@ public class PaletteHolder { return builder.build(); } + public Palette getPalette(int y) { + int index = y + offset; + return index >= 0 + ? index < palettes.length + ? palettes[index] + : palettes[palettes.length - 1] + : palettes[0]; + } + + private static class PaletteHolderBuilder { private final TreeMap paletteMap = new TreeMap<>(); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/MultipleSlantHolder.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/MultipleSlantHolder.java index 6f04a2df7..fec070ea7 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/MultipleSlantHolder.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/MultipleSlantHolder.java @@ -23,7 +23,8 @@ public class MultipleSlantHolder extends SlantHolderImpl { MultipleSlantHolder(List slant, int slantDepth, CalculationMethod calculationMethod) { super(slantDepth, calculationMethod); - NavigableMap layers = new TreeMap<>(slant.stream().collect(Collectors.toMap(SlantHolder.Layer::threshold, SlantHolder.Layer::palette))); + NavigableMap layers = new TreeMap<>( + slant.stream().collect(Collectors.toMap(SlantHolder.Layer::threshold, SlantHolder.Layer::palette))); Stream thresholds = layers.keySet().stream(); double slantThreshold = floorToThreshold ? thresholds.min(Double::compare).orElseThrow() : diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolder.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolder.java index e70670977..7e084d1ff 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolder.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolder.java @@ -9,89 +9,6 @@ import com.dfsek.terra.api.util.vector.Vector3; public interface SlantHolder { - static SlantHolder of(List layers, int slantDepth, CalculationMethod calculationMethod) { - if(layers.isEmpty()) { - return EMPTY; - } else if(layers.size() == 1) { - return new SingleSlantHolder(layers.get(0), slantDepth, calculationMethod); - } - return new MultipleSlantHolder(layers, slantDepth, calculationMethod); - } - - double calculateSlant(Sampler3D sampler, double x, double y, double z); - - boolean isAboveDepth(int depth); - - boolean isInSlantThreshold(double slant); - - PaletteHolder getPalette(double slant); - - record Layer(PaletteHolder palette, double threshold) { - } - - enum CalculationMethod { - DotProduct { - private static final Vector3 DOT_PRODUCT_DIRECTION = Vector3.of(0, 1, 0); - - private static final Vector3[] DOT_PRODUCT_SAMPLE_POINTS = { - Vector3.of(0, 0, -DERIVATIVE_DIST), - Vector3.of(0, 0, DERIVATIVE_DIST), - Vector3.of(0, -DERIVATIVE_DIST, 0), - Vector3.of(0, DERIVATIVE_DIST, 0), - Vector3.of(-DERIVATIVE_DIST, 0, 0), - Vector3.of(DERIVATIVE_DIST, 0, 0) - }; - - @Override - public double slant(Sampler3D sampler, double x, double y, double z) { - Vector3.Mutable normalApproximation = Vector3.Mutable.of(0, 0, 0); - for(Vector3 point : DOT_PRODUCT_SAMPLE_POINTS) { - var scalar = -sampler.sample(x+point.getX(), y+point.getY(), z+point.getZ()); - normalApproximation.add(point.mutable().multiply(scalar)); - } - return DOT_PRODUCT_DIRECTION.dot(normalApproximation.normalize()); - } - - @Override - public boolean floorToThreshold() { - return false; - } - }, - - Derivative { - @Override - public double slant(Sampler3D sampler, double x, double y, double z) { - double baseSample = sampler.sample(x, y, z); - - double xVal1 = (sampler.sample(x + DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST; - double xVal2 = (sampler.sample(x - DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST; - double zVal1 = (sampler.sample(x, y, z + DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST; - double zVal2 = (sampler.sample(x, y, z - DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST; - double yVal1 = (sampler.sample(x, y + DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST; - double yVal2 = (sampler.sample(x, y - DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST; - - return Math.sqrt(((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1))); - } - - @Override - public boolean floorToThreshold() { - return true; - } - }; - - private static final double DERIVATIVE_DIST = 0.55; - - public abstract double slant(Sampler3D sampler, double x, double y, double z); - - /* - * Controls whether palettes should be applied before or after their respective thresholds. - * - * If true, slant values will map to the palette of the next floor threshold, otherwise they - * will map to the ceiling. - */ - public abstract boolean floorToThreshold(); - } - SlantHolder EMPTY = new SlantHolder() { @Override public double calculateSlant(Sampler3D sampler, double x, double y, double z) { @@ -113,4 +30,90 @@ public interface SlantHolder { throw new UnsupportedOperationException("Empty holder cannot return a palette"); } }; + + static SlantHolder of(List layers, int slantDepth, CalculationMethod calculationMethod) { + if(layers.isEmpty()) { + return EMPTY; + } else if(layers.size() == 1) { + return new SingleSlantHolder(layers.get(0), slantDepth, calculationMethod); + } + return new MultipleSlantHolder(layers, slantDepth, calculationMethod); + } + + double calculateSlant(Sampler3D sampler, double x, double y, double z); + + boolean isAboveDepth(int depth); + + boolean isInSlantThreshold(double slant); + + PaletteHolder getPalette(double slant); + + + enum CalculationMethod { + DotProduct { + private static final Vector3 DOT_PRODUCT_DIRECTION = Vector3.of(0, 1, 0); + + private static final Vector3[] DOT_PRODUCT_SAMPLE_POINTS = { + Vector3.of(0, 0, -DERIVATIVE_DIST), + Vector3.of(0, 0, DERIVATIVE_DIST), + Vector3.of(0, -DERIVATIVE_DIST, 0), + Vector3.of(0, DERIVATIVE_DIST, 0), + Vector3.of(-DERIVATIVE_DIST, 0, 0), + Vector3.of(DERIVATIVE_DIST, 0, 0) + }; + + @Override + public double slant(Sampler3D sampler, double x, double y, double z) { + Vector3.Mutable normalApproximation = Vector3.Mutable.of(0, 0, 0); + for(Vector3 point : DOT_PRODUCT_SAMPLE_POINTS) { + var scalar = -sampler.sample(x + point.getX(), y + point.getY(), z + point.getZ()); + normalApproximation.add(point.mutable().multiply(scalar)); + } + return DOT_PRODUCT_DIRECTION.dot(normalApproximation.normalize()); + } + + @Override + public boolean floorToThreshold() { + return false; + } + }, + + Derivative { + @Override + public double slant(Sampler3D sampler, double x, double y, double z) { + double baseSample = sampler.sample(x, y, z); + + double xVal1 = (sampler.sample(x + DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST; + double xVal2 = (sampler.sample(x - DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST; + double zVal1 = (sampler.sample(x, y, z + DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST; + double zVal2 = (sampler.sample(x, y, z - DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST; + double yVal1 = (sampler.sample(x, y + DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST; + double yVal2 = (sampler.sample(x, y - DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST; + + return Math.sqrt( + ((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1))); + } + + @Override + public boolean floorToThreshold() { + return true; + } + }; + + private static final double DERIVATIVE_DIST = 0.55; + + public abstract double slant(Sampler3D sampler, double x, double y, double z); + + /* + * Controls whether palettes should be applied before or after their respective thresholds. + * + * If true, slant values will map to the palette of the next floor threshold, otherwise they + * will map to the ceiling. + */ + public abstract boolean floorToThreshold(); + } + + + record Layer(PaletteHolder palette, double threshold) { + } } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolderImpl.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolderImpl.java index e7261b88e..73fabd6ae 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolderImpl.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/slant/SlantHolderImpl.java @@ -4,11 +4,9 @@ import com.dfsek.terra.addons.chunkgenerator.generation.math.samplers.Sampler3D; public abstract class SlantHolderImpl implements SlantHolder { - private final SlantHolder.CalculationMethod calculationMethod; - - private final int slantDepth; - protected final boolean floorToThreshold; + private final SlantHolder.CalculationMethod calculationMethod; + private final int slantDepth; protected SlantHolderImpl(int slantDepth, CalculationMethod calculationMethod) { this.floorToThreshold = calculationMethod.floorToThreshold(); diff --git a/common/addons/chunk-generator-noise-3d/src/main/resources/terra.addon.yml b/common/addons/chunk-generator-noise-3d/src/main/resources/terra.addon.yml index 76eed7bb9..6d32e2bf8 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/resources/terra.addon.yml +++ b/common/addons/chunk-generator-noise-3d/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: chunk-generator-noise-3d version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.chunkgenerator.NoiseChunkGenerator3DAddon" + - "com.dfsek.terra.addons.chunkgenerator.NoiseChunkGenerator3DAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/command-addons/src/main/java/com/dfsek/terra/addons/commands/addons/AddonsCommandAddon.java b/common/addons/command-addons/src/main/java/com/dfsek/terra/addons/commands/addons/AddonsCommandAddon.java index 289ed09e9..2bc66a2d3 100644 --- a/common/addons/command-addons/src/main/java/com/dfsek/terra/addons/commands/addons/AddonsCommandAddon.java +++ b/common/addons/command-addons/src/main/java/com/dfsek/terra/addons/commands/addons/AddonsCommandAddon.java @@ -28,7 +28,7 @@ public class AddonsCommandAddon implements AddonInitializer { .register(addon, CommandRegistrationEvent.class) .then(event -> { CommandManager manager = event.getCommandManager(); - + manager.command( manager.commandBuilder("addons", ArgumentDescription.of("List installed Terra addons")) .permission("terra.addons") @@ -51,9 +51,9 @@ public class AddonsCommandAddon implements AddonInitializer { .handler(context -> { BaseAddon addon = context.get("addon"); StringBuilder addonInfo = new StringBuilder("Addon ").append(addon.getID()).append('\n'); - + addonInfo.append("Version: ").append(addon.getVersion().getFormatted()).append('\n'); - + addonInfo.append("Dependencies:\n"); addon.getDependencies().forEach((id, versions) -> addonInfo .append(" - ") diff --git a/common/addons/command-addons/src/main/resources/terra.addon.yml b/common/addons/command-addons/src/main/resources/terra.addon.yml index 87f5b5454..086ee161d 100644 --- a/common/addons/command-addons/src/main/resources/terra.addon.yml +++ b/common/addons/command-addons/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: command-addons version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.commands.addons.AddonsCommandAddon" + - "com.dfsek.terra.addons.commands.addons.AddonsCommandAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/command-packs/src/main/java/com/dfsek/terra/addons/commands/packs/PacksCommandAddon.java b/common/addons/command-packs/src/main/java/com/dfsek/terra/addons/commands/packs/PacksCommandAddon.java index 7a5326552..2bc9abdeb 100644 --- a/common/addons/command-packs/src/main/java/com/dfsek/terra/addons/commands/packs/PacksCommandAddon.java +++ b/common/addons/command-packs/src/main/java/com/dfsek/terra/addons/commands/packs/PacksCommandAddon.java @@ -33,7 +33,7 @@ public class PacksCommandAddon implements AddonInitializer { .register(addon, CommandRegistrationEvent.class) .then(event -> { CommandManager manager = event.getCommandManager(); - + manager.command( manager.commandBuilder("packs", ArgumentDescription.of("List installed config packs")) .permission("terra.packs") @@ -54,10 +54,10 @@ public class PacksCommandAddon implements AddonInitializer { .handler(context -> { ConfigPack pack = context.get("pack"); StringBuilder packInfo = new StringBuilder("Pack ").append(pack.getID()).append('\n'); - + packInfo.append("Version: ").append(pack.getVersion().getFormatted()).append('\n'); packInfo.append("Author: ").append(pack.getAuthor()).append('\n'); - + packInfo.append("Addon Dependencies:\n"); pack.addons().forEach((id, versions) -> packInfo .append(" - ") diff --git a/common/addons/command-packs/src/main/resources/terra.addon.yml b/common/addons/command-packs/src/main/resources/terra.addon.yml index 4efeb9c99..007e28244 100644 --- a/common/addons/command-packs/src/main/resources/terra.addon.yml +++ b/common/addons/command-packs/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: command-packs version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.commands.packs.PacksCommandAddon" + - "com.dfsek.terra.addons.commands.packs.PacksCommandAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/command-profiler/src/main/resources/terra.addon.yml b/common/addons/command-profiler/src/main/resources/terra.addon.yml index 3ce8d72ab..17f5f4b8a 100644 --- a/common/addons/command-profiler/src/main/resources/terra.addon.yml +++ b/common/addons/command-profiler/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: command-profiler version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.commands.profiler.ProfilerCommandAddon" + - "com.dfsek.terra.addons.commands.profiler.ProfilerCommandAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/command-structures/src/main/java/com/dfsek/terra/addons/commands/structure/StructureCommandAddon.java b/common/addons/command-structures/src/main/java/com/dfsek/terra/addons/commands/structure/StructureCommandAddon.java index ce98abfce..37bab2508 100644 --- a/common/addons/command-structures/src/main/java/com/dfsek/terra/addons/commands/structure/StructureCommandAddon.java +++ b/common/addons/command-structures/src/main/java/com/dfsek/terra/addons/commands/structure/StructureCommandAddon.java @@ -41,7 +41,7 @@ public class StructureCommandAddon implements AddonInitializer { .register(addon, CommandRegistrationEvent.class) .then(event -> { CommandManager manager = event.getCommandManager(); - + manager.command( manager.commandBuilder("structures", ArgumentDescription.of("Manage or generate structures")) .literal("generate") diff --git a/common/addons/command-structures/src/main/resources/terra.addon.yml b/common/addons/command-structures/src/main/resources/terra.addon.yml index c41fc088e..dc4804af9 100644 --- a/common/addons/command-structures/src/main/resources/terra.addon.yml +++ b/common/addons/command-structures/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: command-structures version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.commands.structure.StructureCommandAddon" + - "com.dfsek.terra.addons.commands.structure.StructureCommandAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-biome/src/main/resources/terra.addon.yml b/common/addons/config-biome/src/main/resources/terra.addon.yml index f669208b1..dd6eb93bc 100644 --- a/common/addons/config-biome/src/main/resources/terra.addon.yml +++ b/common/addons/config-biome/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-biome version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.BiomeAddon" + - "com.dfsek.terra.addons.biome.BiomeAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java index 714f44f1a..4b0423d9a 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java @@ -50,7 +50,7 @@ public class DistributorAddon implements AddonInitializer { CheckedRegistry>> distributorRegistry = event .getPack() .getOrCreateRegistry(DISTRIBUTOR_TOKEN); - + distributorRegistry.register(addon.key("SAMPLER"), SamplerDistributorTemplate::new); distributorRegistry.register(addon.key("POINTS"), PointSetDistributorTemplate::new); distributorRegistry.register(addon.key("PADDED_GRID"), PaddedGridDistributorTemplate::new); @@ -59,7 +59,7 @@ public class DistributorAddon implements AddonInitializer { distributorRegistry.register(addon.key("XOR"), XorDistributorTemplate::new); distributorRegistry.register(addon.key("YES"), YesDistributorTemplate::new); distributorRegistry.register(addon.key("NO"), NoDistributorTemplate::new); - + event.getPack() .applyLoader(Point.class, PointTemplate::new); }) diff --git a/common/addons/config-distributors/src/main/resources/terra.addon.yml b/common/addons/config-distributors/src/main/resources/terra.addon.yml index 6e4c98a4a..4f35aa3ca 100644 --- a/common/addons/config-distributors/src/main/resources/terra.addon.yml +++ b/common/addons/config-distributors/src/main/resources/terra.addon.yml @@ -1,15 +1,15 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-distributors version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.feature.distributor.DistributorAddon" + - "com.dfsek.terra.addons.feature.distributor.DistributorAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - config-feature: "1.+" - generation-stage-feature: "1.+" \ No newline at end of file + config-feature: "1.+" + generation-stage-feature: "1.+" \ No newline at end of file diff --git a/common/addons/config-feature/src/main/resources/terra.addon.yml b/common/addons/config-feature/src/main/resources/terra.addon.yml index cb17b4b76..18656aa8c 100644 --- a/common/addons/config-feature/src/main/resources/terra.addon.yml +++ b/common/addons/config-feature/src/main/resources/terra.addon.yml @@ -1,14 +1,14 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-feature version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.feature.FeatureAddon" + - "com.dfsek.terra.addons.feature.FeatureAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - generation-stage-feature: "1.+" \ No newline at end of file + generation-stage-feature: "1.+" \ No newline at end of file diff --git a/common/addons/config-flora/src/main/resources/terra.addon.yml b/common/addons/config-flora/src/main/resources/terra.addon.yml index b464bed94..0ec6e92f1 100644 --- a/common/addons/config-flora/src/main/resources/terra.addon.yml +++ b/common/addons/config-flora/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-flora version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.flora.FloraAddon" + - "com.dfsek.terra.addons.flora.FloraAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java index 4157d4027..2a08155cc 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java @@ -63,16 +63,16 @@ public class LocatorAddon implements AddonInitializer { CheckedRegistry>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN); locatorRegistry.register(addon.key("SURFACE"), SurfaceLocatorTemplate::new); locatorRegistry.register(addon.key("TOP"), TopLocatorTemplate::new); - + locatorRegistry.register(addon.key("RANDOM"), RandomLocatorTemplate::new); locatorRegistry.register(addon.key("GAUSSIAN_RANDOM"), GaussianRandomLocatorTemplate::new); - + locatorRegistry.register(addon.key("PATTERN"), PatternLocatorTemplate::new); locatorRegistry.register(addon.key("ADJACENT_PATTERN"), AdjacentPatternLocatorTemplate::new); - + locatorRegistry.register(addon.key("SAMPLER"), SamplerLocatorTemplate::new); locatorRegistry.register(addon.key("SAMPLER_3D"), Sampler3DLocatorTemplate::new); - + locatorRegistry.register(addon.key("AND"), AndLocatorTemplate::new); locatorRegistry.register(addon.key("OR"), OrLocatorTemplate::new); locatorRegistry.register(addon.key("XOR"), XorLocatorTemplate::new); @@ -83,7 +83,7 @@ public class LocatorAddon implements AddonInitializer { patternRegistry.register(addon.key("MATCH_SOLID"), SolidMatchPatternTemplate::new); patternRegistry.register(addon.key("MATCH"), SingleBlockMatchPatternTemplate::new); patternRegistry.register(addon.key("MATCH_SET"), BlockSetMatchPatternTemplate::new); - + patternRegistry.register(addon.key("AND"), AndPatternTemplate::new); patternRegistry.register(addon.key("OR"), OrPatternTemplate::new); patternRegistry.register(addon.key("XOR"), XorPatternTemplate::new); diff --git a/common/addons/config-locators/src/main/resources/terra.addon.yml b/common/addons/config-locators/src/main/resources/terra.addon.yml index e84bf800d..7e4482e55 100644 --- a/common/addons/config-locators/src/main/resources/terra.addon.yml +++ b/common/addons/config-locators/src/main/resources/terra.addon.yml @@ -1,15 +1,15 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-locators version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.feature.locator.LocatorAddon" + - "com.dfsek.terra.addons.feature.locator.LocatorAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - config-feature: "1.+" - generation-stage-feature: "1.+" \ No newline at end of file + config-feature: "1.+" + generation-stage-feature: "1.+" \ No newline at end of file diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index ec5b4a675..1b3cb6409 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -95,7 +95,7 @@ public class NoiseAddon implements AddonInitializer { .applyLoader(DimensionApplicableNoiseSampler.class, DimensionApplicableNoiseSampler::new) .applyLoader(FunctionTemplate.class, FunctionTemplate::new) .applyLoader(CubicSpline.Point.class, CubicSplinePointTemplate::new); - + noiseRegistry.register(addon.key("LINEAR"), LinearNormalizerTemplate::new); noiseRegistry.register(addon.key("NORMAL"), NormalNormalizerTemplate::new); noiseRegistry.register(addon.key("CLAMP"), ClampNormalizerTemplate::new); @@ -103,53 +103,54 @@ public class NoiseAddon implements AddonInitializer { noiseRegistry.register(addon.key("SCALE"), ScaleNormalizerTemplate::new); noiseRegistry.register(addon.key("POSTERIZATION"), PosterizationNormalizerTemplate::new); noiseRegistry.register(addon.key("CUBIC_SPLINE"), CubicSplineNormalizerTemplate::new); - + noiseRegistry.register(addon.key("IMAGE"), ImageSamplerTemplate::new); - + noiseRegistry.register(addon.key("DOMAIN_WARP"), DomainWarpTemplate::new); - + noiseRegistry.register(addon.key("FBM"), BrownianMotionTemplate::new); noiseRegistry.register(addon.key("PING_PONG"), PingPongTemplate::new); noiseRegistry.register(addon.key("RIDGED"), RidgedFractalTemplate::new); - + noiseRegistry.register(addon.key("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new)); noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new)); noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate(PerlinSampler::new)); noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate(SimplexSampler::new)); noiseRegistry.register(addon.key("GABOR"), GaborNoiseTemplate::new); - - + + noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate(ValueSampler::new)); noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate(ValueCubicSampler::new)); - + noiseRegistry.register(addon.key("CELLULAR"), CellularNoiseTemplate::new); - + noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new)); noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new)); noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new)); noiseRegistry.register(addon.key("DISTANCE"), DistanceSamplerTemplate::new); - + noiseRegistry.register(addon.key("CONSTANT"), ConstantNoiseTemplate::new); - + noiseRegistry.register(addon.key("KERNEL"), KernelTemplate::new); - + noiseRegistry.register(addon.key("LINEAR_HEIGHTMAP"), LinearHeightmapSamplerTemplate::new); noiseRegistry.register(addon.key("TRANSLATE"), TranslateSamplerTemplate::new); - + noiseRegistry.register(addon.key("ADD"), () -> new BinaryArithmeticTemplate<>(AdditionSampler::new)); noiseRegistry.register(addon.key("SUB"), () -> new BinaryArithmeticTemplate<>(SubtractionSampler::new)); noiseRegistry.register(addon.key("MUL"), () -> new BinaryArithmeticTemplate<>(MultiplicationSampler::new)); noiseRegistry.register(addon.key("DIV"), () -> new BinaryArithmeticTemplate<>(DivisionSampler::new)); noiseRegistry.register(addon.key("MAX"), () -> new BinaryArithmeticTemplate<>(MaxSampler::new)); noiseRegistry.register(addon.key("MIN"), () -> new BinaryArithmeticTemplate<>(MinSampler::new)); - - + + Map packSamplers = new LinkedHashMap<>(); Map packFunctions = new LinkedHashMap<>(); noiseRegistry.register(addon.key("EXPRESSION"), () -> new ExpressionFunctionTemplate(packSamplers, packFunctions)); - noiseRegistry.register(addon.key("EXPRESSION_NORMALIZER"), () -> new ExpressionNormalizerTemplate(packSamplers, packFunctions)); - + noiseRegistry.register(addon.key("EXPRESSION_NORMALIZER"), + () -> new ExpressionNormalizerTemplate(packSamplers, packFunctions)); + NoiseConfigPackTemplate template = event.loadTemplate(new NoiseConfigPackTemplate()); packSamplers.putAll(template.getSamplers()); packFunctions.putAll(template.getFunctions()); diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/TranslateSamplerTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/TranslateSamplerTemplate.java index c08a8253f..3e5265ff5 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/TranslateSamplerTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/TranslateSamplerTemplate.java @@ -27,6 +27,6 @@ public class TranslateSamplerTemplate extends SamplerTemplate @Override public NoiseSampler get() { - return new TranslateSampler(sampler, x, y ,z); + return new TranslateSampler(sampler, x, y, z); } } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/ExpressionFunctionTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/ExpressionFunctionTemplate.java index d062cbaae..425181589 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/ExpressionFunctionTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/noise/ExpressionFunctionTemplate.java @@ -41,15 +41,18 @@ public class ExpressionFunctionTemplate extends SamplerTemplate functions = new LinkedHashMap<>(); - public ExpressionFunctionTemplate(Map globalSamplers, Map globalFunctions) { + public ExpressionFunctionTemplate(Map globalSamplers, + Map globalFunctions) { this.globalSamplers = globalSamplers; this.globalFunctions = globalFunctions; } @Override public NoiseSampler get() { - var mergedFunctions = new HashMap<>(globalFunctions); mergedFunctions.putAll(functions); - var mergedSamplers = new HashMap<>(globalSamplers); mergedSamplers.putAll(samplers); + var mergedFunctions = new HashMap<>(globalFunctions); + mergedFunctions.putAll(functions); + var mergedSamplers = new HashMap<>(globalSamplers); + mergedSamplers.putAll(samplers); try { return new ExpressionFunction(convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars); } catch(ParseException e) { diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/normalizer/ExpressionNormalizerTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/normalizer/ExpressionNormalizerTemplate.java index e0b40b69f..f0a2e9db1 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/normalizer/ExpressionNormalizerTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/normalizer/ExpressionNormalizerTemplate.java @@ -45,15 +45,18 @@ public class ExpressionNormalizerTemplate extends NormalizerTemplate functions = new LinkedHashMap<>(); - public ExpressionNormalizerTemplate(Map globalSamplers, Map globalFunctions) { + public ExpressionNormalizerTemplate(Map globalSamplers, + Map globalFunctions) { this.globalSamplers = globalSamplers; this.globalFunctions = globalFunctions; } @Override public NoiseSampler get() { - var mergedFunctions = new HashMap<>(globalFunctions); mergedFunctions.putAll(functions); - var mergedSamplers = new HashMap<>(globalSamplers); mergedSamplers.putAll(samplers); + var mergedFunctions = new HashMap<>(globalFunctions); + mergedFunctions.putAll(functions); + var mergedSamplers = new HashMap<>(globalSamplers); + mergedSamplers.putAll(samplers); try { return new ExpressionNormalizer(function, convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars); } catch(ParseException e) { diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/math/CubicSpline.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/math/CubicSpline.java index a1ab99d28..49070ea79 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/math/CubicSpline.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/math/CubicSpline.java @@ -28,18 +28,14 @@ public class CubicSpline { } } - public double apply(double in) { - return calculate(in, fromValues, toValues, gradients); - } - public static double calculate(double in, double[] fromValues, double[] toValues, double[] gradients) { int pointIdx = floorBinarySearch(in, fromValues) - 1; int pointIdxLast = fromValues.length - 1; - if (pointIdx < 0) { // If to left of first point return linear function intersecting said point using point's gradient + if(pointIdx < 0) { // If to left of first point return linear function intersecting said point using point's gradient return gradients[0] * (in - fromValues[0]) + toValues[0]; - } else if (pointIdx == pointIdxLast) { // Do same if to right of last point + } else if(pointIdx == pointIdxLast) { // Do same if to right of last point return gradients[pointIdxLast] * (in - fromValues[pointIdxLast]) + toValues[pointIdxLast]; } else { double fromLeft = fromValues[pointIdx]; @@ -48,7 +44,7 @@ public class CubicSpline { double toLeft = toValues[pointIdx]; double toRight = toValues[pointIdx + 1]; - double gradientLeft = gradients[pointIdx]; + double gradientLeft = gradients[pointIdx]; double gradientRight = gradients[pointIdx + 1]; double fromDelta = fromRight - fromLeft; @@ -56,7 +52,8 @@ public class CubicSpline { double t = (in - fromLeft) / fromDelta; - return lerp(t, toLeft, toRight) + t * (1.0F - t) * lerp(t, gradientLeft * fromDelta - toDelta, -gradientRight * fromDelta + toDelta); + return lerp(t, toLeft, toRight) + t * (1.0F - t) * lerp(t, gradientLeft * fromDelta - toDelta, + -gradientRight * fromDelta + toDelta); } } @@ -64,10 +61,10 @@ public class CubicSpline { int left = 0; int right = values.length; int idx = right - left; - while (idx > 0) { + while(idx > 0) { int halfDelta = idx / 2; int mid = left + halfDelta; - if (targetValue < values[mid]) { + if(targetValue < values[mid]) { idx = halfDelta; } else { left = mid + 1; @@ -76,6 +73,11 @@ public class CubicSpline { } return left; } + + public double apply(double in) { + return calculate(in, fromValues, toValues, gradients); + } + public record Point(double from, double to, double gradient) implements Comparable { diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/paralithic/FunctionUtil.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/paralithic/FunctionUtil.java index 9bee3e2c0..55f7ef2c6 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/paralithic/FunctionUtil.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/paralithic/FunctionUtil.java @@ -14,10 +14,11 @@ import com.dfsek.terra.addons.noise.paralithic.noise.NoiseFunction3; public class FunctionUtil { - private FunctionUtil() {} + private FunctionUtil() { } public static Map convertFunctionsAndSamplers(Map functions, - Map samplers) throws ParseException { + Map samplers) + throws ParseException { Map functionMap = new HashMap<>(); for(Map.Entry entry : functions.entrySet()) { functionMap.put(entry.getKey(), UserDefinedFunction.newInstance(entry.getValue())); diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/DistanceSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/DistanceSampler.java index 246c7bab1..72fbbed9a 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/DistanceSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/DistanceSampler.java @@ -20,14 +20,30 @@ public class DistanceSampler extends NoiseFunction { this.radius = radius; this.distanceAtRadius = distance2d(distanceFunction, radius, 0); // distance2d and distance3d should return the same value } - + + private static double distance2d(DistanceFunction distanceFunction, double x, double z) { + return switch(distanceFunction) { + case Euclidean -> Math.sqrt(x * x + z * z); + case EuclideanSq -> x * x + z * z; + case Manhattan -> Math.abs(x) + Math.abs(z); + }; + } + + private static double distance3d(DistanceFunction distanceFunction, double x, double y, double z) { + return switch(distanceFunction) { + case Euclidean -> Math.sqrt(x * x + y * y + z * z); + case EuclideanSq -> x * x + y * y + z * z; + case Manhattan -> Math.abs(x) + Math.abs(y) + Math.abs(z); + }; + } + @Override public double getNoiseRaw(long seed, double x, double y) { double dx = x - ox; double dy = y - oz; - if (normalize && (Math.abs(dx) > radius || Math.abs(dy) > radius)) return 1; + if(normalize && (Math.abs(dx) > radius || Math.abs(dy) > radius)) return 1; double dist = distance2d(distanceFunction, dx, dy); - if (normalize) return Math.min(((2*dist)/distanceAtRadius)-1, 1); + if(normalize) return Math.min(((2 * dist) / distanceAtRadius) - 1, 1); return dist; } @@ -38,26 +54,10 @@ public class DistanceSampler extends NoiseFunction { double dz = z - oz; if(normalize && (Math.abs(dx) > radius || Math.abs(dy) > radius || Math.abs(dz) > radius)) return 1; double dist = distance3d(distanceFunction, dx, dy, dz); - if (normalize) return Math.min(((2*dist)/distanceAtRadius)-1, 1); + if(normalize) return Math.min(((2 * dist) / distanceAtRadius) - 1, 1); return dist; } - private static double distance2d(DistanceFunction distanceFunction, double x, double z) { - return switch(distanceFunction) { - case Euclidean -> Math.sqrt(x*x + z*z); - case EuclideanSq -> x*x + z*z; - case Manhattan -> Math.abs(x) + Math.abs(z); - }; - } - - private static double distance3d(DistanceFunction distanceFunction, double x, double y, double z) { - return switch(distanceFunction) { - case Euclidean -> Math.sqrt(x*x + y*y + z*z); - case EuclideanSq -> x*x + y*y + z*z; - case Manhattan -> Math.abs(x) + Math.abs(y) + Math.abs(z); - }; - } - public enum DistanceFunction { Euclidean, EuclideanSq, diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/GaborNoiseSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/GaborNoiseSampler.java index c9a729a39..1b74295a8 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/GaborNoiseSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/GaborNoiseSampler.java @@ -17,11 +17,10 @@ public class GaborNoiseSampler extends NoiseFunction { private double a = 0.1; private double f0 = 0.625; private double kernelRadius = (Math.sqrt(-Math.log(0.05) / Math.PI) / a); - private double impulsesPerKernel = 64d; private double impulseDensity = (impulsesPerKernel / (Math.PI * kernelRadius * kernelRadius)); private double impulsesPerCell = impulseDensity * kernelRadius * kernelRadius; private double g = Math.exp(-impulsesPerCell); - + private double impulsesPerKernel = 64d; private double omega0 = Math.PI * 0.25; private boolean isotropic = true; @@ -72,8 +71,9 @@ public class GaborNoiseSampler extends NoiseFunction { } private double gabor(double omega_0, double x, double y) { - return k * (Math.exp(-Math.PI * (a * a) * (x * x + y * y)) * MathUtil.cos(2 * Math.PI * f0 * (x * MathUtil.cos(omega_0) + y * MathUtil.sin( - omega_0)))); + return k * (Math.exp(-Math.PI * (a * a) * (x * x + y * y)) * MathUtil.cos(2 * Math.PI * f0 * (x * MathUtil.cos(omega_0) + + y * MathUtil.sin( + omega_0)))); } public void setA(double a) { diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/NoiseFunction.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/NoiseFunction.java index 890714272..a996ded2a 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/NoiseFunction.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/NoiseFunction.java @@ -15,7 +15,7 @@ public abstract class NoiseFunction implements NoiseSampler { protected static final int PRIME_X = 501125321; protected static final int PRIME_Y = 1136930381; protected static final int PRIME_Z = 1720413743; - + protected double frequency = 0.02d; protected long salt; diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/value/ValueCubicSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/value/ValueCubicSampler.java index 0c2e8b335..8b14d9d2f 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/value/ValueCubicSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/value/ValueCubicSampler.java @@ -33,11 +33,11 @@ public class ValueCubicSampler extends ValueStyleNoise { MathUtil.cubicLerp(valCoord(seed, x0, y0), valCoord(seed, x1, y0), valCoord(seed, x2, y0), valCoord(seed, x3, y0), xs), MathUtil.cubicLerp(valCoord(seed, x0, y1), valCoord(seed, x1, y1), valCoord(seed, x2, y1), valCoord(seed, x3, y1), - xs), + xs), MathUtil.cubicLerp(valCoord(seed, x0, y2), valCoord(seed, x1, y2), valCoord(seed, x2, y2), valCoord(seed, x3, y2), - xs), + xs), MathUtil.cubicLerp(valCoord(seed, x0, y3), valCoord(seed, x1, y3), valCoord(seed, x2, y3), valCoord(seed, x3, y3), - xs), + xs), ys) * (1 / (1.5 * 1.5)); } @@ -69,43 +69,43 @@ public class ValueCubicSampler extends ValueStyleNoise { return MathUtil.cubicLerp( MathUtil.cubicLerp( MathUtil.cubicLerp(valCoord(seed, x0, y0, z0), valCoord(seed, x1, y0, z0), valCoord(seed, x2, y0, z0), - valCoord(seed, x3, y0, z0), xs), + valCoord(seed, x3, y0, z0), xs), MathUtil.cubicLerp(valCoord(seed, x0, y1, z0), valCoord(seed, x1, y1, z0), valCoord(seed, x2, y1, z0), - valCoord(seed, x3, y1, z0), xs), + valCoord(seed, x3, y1, z0), xs), MathUtil.cubicLerp(valCoord(seed, x0, y2, z0), valCoord(seed, x1, y2, z0), valCoord(seed, x2, y2, z0), - valCoord(seed, x3, y2, z0), xs), + valCoord(seed, x3, y2, z0), xs), MathUtil.cubicLerp(valCoord(seed, x0, y3, z0), valCoord(seed, x1, y3, z0), valCoord(seed, x2, y3, z0), - valCoord(seed, x3, y3, z0), xs), + valCoord(seed, x3, y3, z0), xs), ys), MathUtil.cubicLerp( MathUtil.cubicLerp(valCoord(seed, x0, y0, z1), valCoord(seed, x1, y0, z1), valCoord(seed, x2, y0, z1), - valCoord(seed, x3, y0, z1), xs), + valCoord(seed, x3, y0, z1), xs), MathUtil.cubicLerp(valCoord(seed, x0, y1, z1), valCoord(seed, x1, y1, z1), valCoord(seed, x2, y1, z1), - valCoord(seed, x3, y1, z1), xs), + valCoord(seed, x3, y1, z1), xs), MathUtil.cubicLerp(valCoord(seed, x0, y2, z1), valCoord(seed, x1, y2, z1), valCoord(seed, x2, y2, z1), - valCoord(seed, x3, y2, z1), xs), + valCoord(seed, x3, y2, z1), xs), MathUtil.cubicLerp(valCoord(seed, x0, y3, z1), valCoord(seed, x1, y3, z1), valCoord(seed, x2, y3, z1), - valCoord(seed, x3, y3, z1), xs), + valCoord(seed, x3, y3, z1), xs), ys), MathUtil.cubicLerp( MathUtil.cubicLerp(valCoord(seed, x0, y0, z2), valCoord(seed, x1, y0, z2), valCoord(seed, x2, y0, z2), - valCoord(seed, x3, y0, z2), xs), + valCoord(seed, x3, y0, z2), xs), MathUtil.cubicLerp(valCoord(seed, x0, y1, z2), valCoord(seed, x1, y1, z2), valCoord(seed, x2, y1, z2), - valCoord(seed, x3, y1, z2), xs), + valCoord(seed, x3, y1, z2), xs), MathUtil.cubicLerp(valCoord(seed, x0, y2, z2), valCoord(seed, x1, y2, z2), valCoord(seed, x2, y2, z2), - valCoord(seed, x3, y2, z2), xs), + valCoord(seed, x3, y2, z2), xs), MathUtil.cubicLerp(valCoord(seed, x0, y3, z2), valCoord(seed, x1, y3, z2), valCoord(seed, x2, y3, z2), - valCoord(seed, x3, y3, z2), xs), + valCoord(seed, x3, y3, z2), xs), ys), MathUtil.cubicLerp( MathUtil.cubicLerp(valCoord(seed, x0, y0, z3), valCoord(seed, x1, y0, z3), valCoord(seed, x2, y0, z3), - valCoord(seed, x3, y0, z3), xs), + valCoord(seed, x3, y0, z3), xs), MathUtil.cubicLerp(valCoord(seed, x0, y1, z3), valCoord(seed, x1, y1, z3), valCoord(seed, x2, y1, z3), - valCoord(seed, x3, y1, z3), xs), + valCoord(seed, x3, y1, z3), xs), MathUtil.cubicLerp(valCoord(seed, x0, y2, z3), valCoord(seed, x1, y2, z3), valCoord(seed, x2, y2, z3), - valCoord(seed, x3, y2, z3), xs), + valCoord(seed, x3, y2, z3), xs), MathUtil.cubicLerp(valCoord(seed, x0, y3, z3), valCoord(seed, x1, y3, z3), valCoord(seed, x2, y3, z3), - valCoord(seed, x3, y3, z3), xs), + valCoord(seed, x3, y3, z3), xs), ys), zs) * (1 / (1.5 * 1.5 * 1.5)); } diff --git a/common/addons/config-noise-function/src/main/resources/terra.addon.yml b/common/addons/config-noise-function/src/main/resources/terra.addon.yml index b22b0f781..c1320f289 100644 --- a/common/addons/config-noise-function/src/main/resources/terra.addon.yml +++ b/common/addons/config-noise-function/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-noise-function version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.noise.NoiseAddon" + - "com.dfsek.terra.addons.noise.NoiseAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/DoublePredicateLoader.java b/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/DoublePredicateLoader.java index 4b9bf789e..a9528d31b 100644 --- a/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/DoublePredicateLoader.java +++ b/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/DoublePredicateLoader.java @@ -18,7 +18,7 @@ public class DoublePredicateLoader implements TypeLoader { @Override public DoublePredicate load(@NotNull AnnotatedType annotatedType, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { - if (o instanceof String expressionString) { + if(o instanceof String expressionString) { Scope scope = new Scope(); scope.addInvocationVariable("value"); try { diff --git a/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/NumberPredicateAddon.java b/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/NumberPredicateAddon.java index 75e2e6faa..60ddc8b8c 100644 --- a/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/NumberPredicateAddon.java +++ b/common/addons/config-number-predicate/src/main/java/com/dfsek/terra/addons/numberpredicate/NumberPredicateAddon.java @@ -16,6 +16,7 @@ import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.inject.annotations.Inject; + public class NumberPredicateAddon implements AddonInitializer { @Inject diff --git a/common/addons/config-number-predicate/src/main/resources/terra.addon.yml b/common/addons/config-number-predicate/src/main/resources/terra.addon.yml index e4014b3a3..838742309 100644 --- a/common/addons/config-number-predicate/src/main/resources/terra.addon.yml +++ b/common/addons/config-number-predicate/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-number-predicate version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.numberpredicate.NumberPredicateAddon" + - "com.dfsek.terra.addons.numberpredicate.NumberPredicateAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaOre.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaOre.java index f2485c2c0..529983f7b 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaOre.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaOre.java @@ -167,6 +167,7 @@ public class VanillaOre implements Structure { return blockCount > 0; } + public BlockState getMaterial(BlockType replace) { return materials.getOrDefault(replace, material); } diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaScatteredOre.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaScatteredOre.java index 12dcda3ce..6a1ce728f 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaScatteredOre.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/ores/VanillaScatteredOre.java @@ -15,6 +15,7 @@ import static com.dfsek.terra.addons.ore.utils.VanillaOreUtils.shouldPlace; public class VanillaScatteredOre extends VanillaOre { protected final int spread; + public VanillaScatteredOre(BlockState material, double size, MaterialSet replaceable, boolean applyGravity, double exposed, Map materials, int spread) { super(material, size, replaceable, applyGravity, exposed, materials); @@ -30,9 +31,9 @@ public class VanillaScatteredOre extends VanillaOre { for(int j = 0; j < i; ++j) { this.setPos(mutable, random, location, Math.min(j, spread)); BlockType block = world.getBlockState(mutable).getBlockType(); - if (shouldPlace(getReplaceable(), block, exposed, random, world, mutable.getX(), mutable.getY(), mutable.getZ())) { - world.setBlockState(mutable, getMaterial(block), isApplyGravity()); - } + if(shouldPlace(getReplaceable(), block, exposed, random, world, mutable.getX(), mutable.getY(), mutable.getZ())) { + world.setBlockState(mutable, getMaterial(block), isApplyGravity()); + } } return true; @@ -48,6 +49,6 @@ public class VanillaScatteredOre extends VanillaOre { } private int getSpread(Random random, int spread) { - return Math.round((random.nextFloat() - random.nextFloat()) * (float)spread); + return Math.round((random.nextFloat() - random.nextFloat()) * (float) spread); } } diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/utils/VanillaOreUtils.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/utils/VanillaOreUtils.java index aa8f0132d..48bf3a712 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/utils/VanillaOreUtils.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/utils/VanillaOreUtils.java @@ -18,7 +18,8 @@ public class VanillaOreUtils { } } - public static boolean shouldPlace(MaterialSet replaceable, BlockType type, Double exposed, Random random, WritableWorld world, int x, int y, int z) { + public static boolean shouldPlace(MaterialSet replaceable, BlockType type, Double exposed, Random random, WritableWorld world, int x, + int y, int z) { if(!replaceable.contains(type)) { return false; } else if(shouldNotDiscard(random, exposed)) { diff --git a/common/addons/config-ore/src/main/resources/terra.addon.yml b/common/addons/config-ore/src/main/resources/terra.addon.yml index 60ea05e60..bab302e4f 100644 --- a/common/addons/config-ore/src/main/resources/terra.addon.yml +++ b/common/addons/config-ore/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-ore version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.ore.OreAddon" + - "com.dfsek.terra.addons.ore.OreAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-palette/src/main/resources/terra.addon.yml b/common/addons/config-palette/src/main/resources/terra.addon.yml index 255a58048..67db4259c 100644 --- a/common/addons/config-palette/src/main/resources/terra.addon.yml +++ b/common/addons/config-palette/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-palette version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.palette.PaletteAddon" + - "com.dfsek.terra.addons.palette.PaletteAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/config-structure/src/main/resources/terra.addon.yml b/common/addons/config-structure/src/main/resources/terra.addon.yml index ad31e3641..3143b5830 100644 --- a/common/addons/config-structure/src/main/resources/terra.addon.yml +++ b/common/addons/config-structure/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: config-structure version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.structure.StructureAddon" + - "com.dfsek.terra.addons.structure.StructureAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationAddon.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationAddon.java index f58dfd692..1e6adbdbe 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationAddon.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationAddon.java @@ -66,7 +66,7 @@ public class FeatureGenerationAddon implements AddonInitializer { .then(event -> { if(event.is(Biome.class)) { DynamicTemplate.Builder templateBuilder = DynamicTemplate.builder(); - + List featureGenerationStages = new ArrayList<>(); event.getPack().getStages().forEach(stage -> { if(stage instanceof FeatureGenerationStage featureGenerationStage) { @@ -80,13 +80,13 @@ public class FeatureGenerationAddon implements AddonInitializer { .build()); } }); - + DynamicTemplate template = event.load(templateBuilder.build()); - + Map> features = new HashMap<>(); - + featureGenerationStages.forEach(stage -> features.put(stage, template.get(stage.getID(), List.class))); - + event.getLoadedObject(Biome.class).getContext().put(biomeFeaturesKey, new BiomeFeatures(features)); } }) diff --git a/common/addons/generation-stage-feature/src/main/resources/terra.addon.yml b/common/addons/generation-stage-feature/src/main/resources/terra.addon.yml index 640aa8aa3..0f0447864 100644 --- a/common/addons/generation-stage-feature/src/main/resources/terra.addon.yml +++ b/common/addons/generation-stage-feature/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: generation-stage-feature version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.generation.feature.FeatureGenerationAddon" + - "com.dfsek.terra.addons.generation.feature.FeatureGenerationAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/generation-stage-structure/src/main/resources/terra.addon.yml b/common/addons/generation-stage-structure/src/main/resources/terra.addon.yml index 2d361cf3d..9aa1ac530 100644 --- a/common/addons/generation-stage-structure/src/main/resources/terra.addon.yml +++ b/common/addons/generation-stage-structure/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: generation-stage-structure version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.generation.structure.StructureGenerationAddon" + - "com.dfsek.terra.addons.generation.structure.StructureGenerationAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/language-yaml/src/main/resources/terra.addon.yml b/common/addons/language-yaml/src/main/resources/terra.addon.yml index 2b3d1d50b..541c7f693 100644 --- a/common/addons/language-yaml/src/main/resources/terra.addon.yml +++ b/common/addons/language-yaml/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: language-yaml version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.yaml.YamlAddon" + - "com.dfsek.terra.addons.yaml.YamlAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/library-image/build.gradle.kts b/common/addons/library-image/build.gradle.kts index 703657471..e01ce95f8 100644 --- a/common/addons/library-image/build.gradle.kts +++ b/common/addons/library-image/build.gradle.kts @@ -2,7 +2,6 @@ version = version("1.0.1") dependencies { compileOnlyApi(project(":common:addons:manifest-addon-loader")) - } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/ImageLibraryAddon.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/ImageLibraryAddon.java index 638056f7f..811164b01 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/ImageLibraryAddon.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/ImageLibraryAddon.java @@ -84,6 +84,6 @@ public class ImageLibraryAddon implements AddonInitializer { colorSamplerRegistry.register(addon.key("COLOR"), ConstantColorSamplerTemplate::new); colorSamplerRegistry.register(addon.key("ROTATE"), RotateColorSamplerTemplate::new); colorSamplerRegistry.register(addon.key("TRANSLATE"), TranslateColorSamplerTemplate::new); - }); + }); } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/ColorSampler.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/ColorSampler.java index 9cf226302..6c0baa7f7 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/ColorSampler.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/ColorSampler.java @@ -6,6 +6,7 @@ public interface ColorSampler { /** * @param x World x coordinate * @param z World z coordinate + * * @return Integer representing a web color */ int apply(int x, int z); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/image/transform/Alignment.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/image/transform/Alignment.java index 834428c5c..87285171c 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/image/transform/Alignment.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/image/transform/Alignment.java @@ -10,7 +10,7 @@ public enum Alignment implements ImageTransformation { public int transformX(Image image, int x) { return x; } - + @Override public int transformZ(Image image, int z) { return z; @@ -21,7 +21,7 @@ public enum Alignment implements ImageTransformation { public int transformX(Image image, int x) { return x + image.getWidth() / 2; } - + @Override public int transformZ(Image image, int z) { return z + image.getHeight() / 2; diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/mutate/RotateColorSampler.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/mutate/RotateColorSampler.java index 8ace7a3ef..aa348b350 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/mutate/RotateColorSampler.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/colorsampler/mutate/RotateColorSampler.java @@ -3,6 +3,7 @@ package com.dfsek.terra.addons.image.colorsampler.mutate; import com.dfsek.terra.addons.image.colorsampler.ColorSampler; import com.dfsek.terra.api.util.MathUtil; + public class RotateColorSampler implements ColorSampler { private final ColorSampler sampler; @@ -15,15 +16,15 @@ public class RotateColorSampler implements ColorSampler { this.sampler = sampler; double normalizedDegrees = degrees % 360.0; - if (normalizedDegrees < 0) normalizedDegrees += 360.0; + if(normalizedDegrees < 0) normalizedDegrees += 360.0; - if (normalizedDegrees == 0.0) + if(normalizedDegrees == 0.0) rotationMethod = RotationMethod.DEG_0; - else if (normalizedDegrees == 90.0) + else if(normalizedDegrees == 90.0) rotationMethod = RotationMethod.DEG_90; - else if (normalizedDegrees == 180.0) + else if(normalizedDegrees == 180.0) rotationMethod = RotationMethod.DEG_180; - else if (normalizedDegrees == 270.0) + else if(normalizedDegrees == 270.0) rotationMethod = RotationMethod.DEG_270; else rotationMethod = RotationMethod.RAD_ANY; diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ColorLoader.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ColorLoader.java index 03316d87b..61115f3b6 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ColorLoader.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ColorLoader.java @@ -28,28 +28,24 @@ public class ColorLoader implements TypeLoader { this.argb = parse(string); } - public int getColor() { - return argb; - } - private static int parse(String string) throws IllegalArgumentException { - if (string.length() == 0) + if(string.length() == 0) throw new IllegalArgumentException("Empty string cannot be parsed as a valid color"); String[] split = string.split(","); - if (split.length == 1) + if(split.length == 1) return parseHex(string); - else if (split.length == 3) + else if(split.length == 3) return parseChannels("255", split[0], split[1], split[2]); - else if (split.length == 4) + else if(split.length == 4) return parseChannels(split[0], split[1], split[2], split[3]); else throw new IllegalArgumentException("Invalid channels provided, required format RED,GREEN,BLUE or ALPHA,RED,GREEN,BLUE"); } private static int parseHex(String hex) throws IllegalArgumentException { - if (hex.startsWith("#")) + if(hex.startsWith("#")) hex = hex.substring(1); int alpha = 255; @@ -71,7 +67,7 @@ public class ColorLoader implements TypeLoader { blue = Integer.parseInt(hex.substring(4, 6), 16); return ColorUtil.argbValidated(alpha, red, green, blue); - } catch (NumberFormatException e) { + } catch(NumberFormatException e) { throw new IllegalArgumentException("Failed to parse hex color", e); } } @@ -84,9 +80,13 @@ public class ColorLoader implements TypeLoader { int b = Integer.decode(blue); return ColorUtil.argbValidated(a, r, g, b); - } catch (NumberFormatException e) { + } catch(NumberFormatException e) { throw new IllegalArgumentException("Invalid channel value", e); } } + + public int getColor() { + return argb; + } } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ImageLibraryPackConfigTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ImageLibraryPackConfigTemplate.java index 60d58cddd..1d823f06c 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ImageLibraryPackConfigTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/ImageLibraryPackConfigTemplate.java @@ -7,6 +7,7 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.api.properties.Properties; + public class ImageLibraryPackConfigTemplate implements ConfigTemplate, Properties { // TODO - These would be better as plugin wide config parameters in config.yml @@ -17,8 +18,10 @@ public class ImageLibraryPackConfigTemplate implements ConfigTemplate, Propertie @Value("images.cache.timeout") @Description("How many seconds to keep images loaded in the image cache for. " + - "If set to a number greater than 0, images will be removed from memory if not used after the timeout, otherwise images will stay loaded in memory. " + - "Setting the timeout to greater than 0 will trade decreased memory consumption when not performing any image reads for a period of time for extra processing time required to perform cache lookups.") + "If set to a number greater than 0, images will be removed from memory if not used after the timeout, otherwise images " + + "will stay loaded in memory. " + + "Setting the timeout to greater than 0 will trade decreased memory consumption when not performing any image reads for a" + + " period of time for extra processing time required to perform cache lookups.") @Default private int cacheTimeout = 0; diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/SingleImageColorSamplerTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/SingleImageColorSamplerTemplate.java index dd31a3d67..20d8f161f 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/SingleImageColorSamplerTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/SingleImageColorSamplerTemplate.java @@ -9,7 +9,7 @@ import com.dfsek.terra.addons.image.colorsampler.image.SingleImageColorSampler; public class SingleImageColorSamplerTemplate extends ImageColorSamplerTemplate { @Value("outside-sampler") private ColorSampler fallback; - + @Override public ColorSampler get() { return new SingleImageColorSampler(image, fallback, alignment); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/TileImageColorSamplerTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/TileImageColorSamplerTemplate.java index 72421cb58..5fa89676e 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/TileImageColorSamplerTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/image/TileImageColorSamplerTemplate.java @@ -5,7 +5,7 @@ import com.dfsek.terra.addons.image.colorsampler.image.TileImageColorSampler; public class TileImageColorSamplerTemplate extends ImageColorSamplerTemplate { - + @Override public ColorSampler get() { return new TileImageColorSampler(image, alignment); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/mutate/TranslateColorSamplerTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/mutate/TranslateColorSamplerTemplate.java index e8e18c447..fa310c378 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/mutate/TranslateColorSamplerTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/colorsampler/mutate/TranslateColorSamplerTemplate.java @@ -16,6 +16,6 @@ public class TranslateColorSamplerTemplate extends MutateColorSamplerTemplate { @Override public ColorSampler get() { - return new TranslateColorSampler(sampler, translateX, translateZ); + return new TranslateColorSampler(sampler, translateX, translateZ); } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageCache.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageCache.java index 54551504c..ac3ea4800 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageCache.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageCache.java @@ -27,12 +27,12 @@ record ImageCache(LoadingCache cache) implements Properties { ImageCache images; if(!pack.getContext().has(ImageCache.class)) { var cacheBuilder = Caffeine.newBuilder(); - if (config.unloadOnTimeout()) cacheBuilder.expireAfterAccess(config.getCacheTimeout(), TimeUnit.SECONDS); + if(config.unloadOnTimeout()) cacheBuilder.expireAfterAccess(config.getCacheTimeout(), TimeUnit.SECONDS); images = new ImageCache(cacheBuilder.build(s -> loadImage(s, files))); pack.getContext().put(images); } else images = pack.getContext().get(ImageCache.class); - if (config.loadOnUse()) { + if(config.loadOnUse()) { if(config.unloadOnTimeout()) { // Grab directly from cache if images are to unload on timeout return new SuppliedImage(() -> images.cache.get(path)); } else { diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageTemplate.java index 7590ca1b4..b94096871 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/ImageTemplate.java @@ -12,13 +12,11 @@ import com.dfsek.terra.api.config.Loader; public class ImageTemplate implements ObjectTemplate { + private final Loader files; + private final ConfigPack pack; @Value("path") private String path; - private final Loader files; - - private final ConfigPack pack; - public ImageTemplate(Loader files, ConfigPack pack) { this.files = files; this.pack = pack; diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/StitchedImageTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/StitchedImageTemplate.java index 509bbeb22..e85537d09 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/StitchedImageTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/image/StitchedImageTemplate.java @@ -15,24 +15,19 @@ import com.dfsek.terra.api.config.Loader; public class StitchedImageTemplate implements ObjectTemplate, ValidatedConfigTemplate { - + + private final Loader files; + private final ConfigPack pack; @Value("path-format") private String path; - @Value("rows") private int rows; - @Value("columns") private int cols; - @Value("zero-indexed") @Default private boolean zeroIndexed = false; - - private final Loader files; - - private final ConfigPack pack; - + public StitchedImageTemplate(Loader files, ConfigPack pack) { this.files = files; this.pack = pack; @@ -54,13 +49,13 @@ public class StitchedImageTemplate implements ObjectTemplate, ValidatedCo } private String getFormattedPath(int row, int column) { - if (!zeroIndexed) { + if(!zeroIndexed) { row++; column++; } return path.replaceFirst("\\{row}", String.valueOf(row)).replaceFirst("\\{column}", String.valueOf(column)); } - + @Override public boolean validate() throws ValidationException { if(!path.contains("{row}")) diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/noisesampler/DistanceTransformNoiseSamplerTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/noisesampler/DistanceTransformNoiseSamplerTemplate.java index 32c523d3c..012b5b8bb 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/noisesampler/DistanceTransformNoiseSamplerTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/noisesampler/DistanceTransformNoiseSamplerTemplate.java @@ -69,6 +69,7 @@ public class DistanceTransformNoiseSamplerTemplate implements ObjectTemplate implements ColorConverter { - + private final Map map; - + private final Integer[] colors; - + public ClosestMatchColorConverter(Map map) { this.map = map; this.colors = map.keySet().toArray(new Integer[0]); } - + @Override public T apply(int color) { int closest = 0; @@ -32,7 +33,7 @@ public class ClosestMatchColorConverter implements ColorConverter { } return map.get(closest); } - + @Override public Iterable getEntries() { return map.values(); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java index 8f6f55d4c..054e9397f 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java @@ -16,7 +16,7 @@ public class ExactColorConverter implements ColorConverter { private final boolean ignoreAlpha; public ExactColorConverter(Map map, T fallback, boolean ignoreAlpha) { - if (ignoreAlpha) { + if(ignoreAlpha) { map = MapUtil.mapKeys(map, ColorUtil::zeroAlpha); } this.map = map; @@ -26,7 +26,7 @@ public class ExactColorConverter implements ColorConverter { @Override public T apply(int color) { - if (ignoreAlpha) { + if(ignoreAlpha) { color = ColorUtil.zeroAlpha(color); } T lookup = map.get(color); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/mapping/BiomeDefinedColorMapping.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/mapping/BiomeDefinedColorMapping.java index 469596577..f12d9782c 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/mapping/BiomeDefinedColorMapping.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/mapping/BiomeDefinedColorMapping.java @@ -30,7 +30,8 @@ public class BiomeDefinedColorMapping implements ColorMapping { if(!output.containsKey(color)) { output.put(color, biome); } else { - throw new IllegalArgumentException(String.format("Biome %s has same color as %s: %x", biome.getID(), output.get(color).getID(), color)); + throw new IllegalArgumentException( + String.format("Biome %s has same color as %s: %x", biome.getID(), output.get(color).getID(), color)); } })); return output.entrySet().stream().collect(Collectors.toMap(Entry::getKey, e -> converter.apply(e.getValue()))); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/StitchedImage.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/StitchedImage.java index c2d131b46..1507cf432 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/StitchedImage.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/StitchedImage.java @@ -40,7 +40,7 @@ public class StitchedImage implements Image { } private int getColumn(int x) { - for(int i = columnOffsets.length-1; i > 0; i--) { + for(int i = columnOffsets.length - 1; i > 0; i--) { if(x >= columnOffsets[i]) return i; } @@ -48,7 +48,7 @@ public class StitchedImage implements Image { } private int getRow(int y) { - for(int i = rowOffsets.length-1; i > 0; i--) { + for(int i = rowOffsets.length - 1; i > 0; i--) { if(y >= rowOffsets[i]) return i; } @@ -59,7 +59,7 @@ public class StitchedImage implements Image { public int getRGB(int x, int y) { int row = getRow(y); int column = getColumn(x); - return images[row][column].getRGB(x-columnOffsets[column], y-rowOffsets[row]); + return images[row][column].getRGB(x - columnOffsets[column], y - rowOffsets[row]); } @Override diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/SuppliedImage.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/SuppliedImage.java index 99fcbfcd3..f3e398c50 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/SuppliedImage.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/image/SuppliedImage.java @@ -2,6 +2,7 @@ package com.dfsek.terra.addons.image.image; import java.util.function.Supplier; + public class SuppliedImage implements Image { private final Supplier imageSupplier; diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/operator/DistanceTransform.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/operator/DistanceTransform.java index a7fbe1194..b5fa3458b 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/operator/DistanceTransform.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/operator/DistanceTransform.java @@ -16,21 +16,20 @@ import static com.dfsek.terra.addons.image.util.MathUtil.lerp; */ public class DistanceTransform { + private static final double MAX_DISTANCE_CAP = 10_000_000; // Arbitrarily large value, doubtful someone would private final double[][] distances; - /** * Size bounds matching the provided image. */ private final int width, height; - /** * Min and max distances of the distance computation. These may change after {@link #normalize(Normalization)} calls. */ private double minDistance, maxDistance; - private static final double MAX_DISTANCE_CAP = 10_000_000; // Arbitrarily large value, doubtful someone would - // ever use an image large enough to exceed this. - public DistanceTransform(Image image, Channel channel, int threshold, boolean clampToMaxEdgeDistance, CostFunction costFunction, boolean invertThreshold) { + // ever use an image large enough to exceed this. + public DistanceTransform(Image image, Channel channel, int threshold, boolean clampToMaxEdgeDistance, CostFunction costFunction, + boolean invertThreshold) { // Construct binary image based on threshold value boolean[][] binaryImage = new boolean[image.getWidth()][image.getHeight()]; for(int x = 0; x < image.getWidth(); x++) { @@ -47,17 +46,17 @@ public class DistanceTransform { binaryImageEdge[x][y] = false; else // If cell borders any false cell - binaryImageEdge[x][y] = x > 0 && !binaryImage[x-1][y] || - y > 0 && !binaryImage[x][y-1] || - x < image.getWidth ()-1 && !binaryImage[x+1][y] || - y < image.getHeight()-1 && !binaryImage[x][y+1]; + binaryImageEdge[x][y] = x > 0 && !binaryImage[x - 1][y] || + y > 0 && !binaryImage[x][y - 1] || + x < image.getWidth() - 1 && !binaryImage[x + 1][y] || + y < image.getHeight() - 1 && !binaryImage[x][y + 1]; } } double[][] function = new double[image.getWidth()][image.getHeight()]; for(int x = 0; x < image.getWidth(); x++) { for(int y = 0; y < image.getHeight(); y++) { - function[x][y] = switch (costFunction) { + function[x][y] = switch(costFunction) { case Channel -> ColorUtil.getChannel(image.getRGB(x, y), channel); case Threshold -> binaryImage[x][y] ? MAX_DISTANCE_CAP : 0; case ThresholdEdge, ThresholdEdgeSigned -> binaryImageEdge[x][y] ? 0 : MAX_DISTANCE_CAP; @@ -80,11 +79,11 @@ public class DistanceTransform { double max = Double.NEGATIVE_INFINITY; for(int x = 0; x < image.getWidth(); x++) { max = Math.max(max, distances[x][0]); - max = Math.max(max, distances[x][image.getHeight()-1]); + max = Math.max(max, distances[x][image.getHeight() - 1]); } for(int y = 0; y < image.getHeight(); y++) { max = Math.max(max, distances[0][y]); - max = Math.max(max, distances[image.getWidth()-1][y]); + max = Math.max(max, distances[image.getWidth() - 1][y]); } // Clamp to that largest value for(int x = 0; x < image.getWidth(); x++) { @@ -93,7 +92,7 @@ public class DistanceTransform { } } } - + this.width = image.getWidth(); this.height = image.getHeight(); @@ -122,28 +121,28 @@ public class DistanceTransform { private double[] calculateDistance1D(double[] f) { double[] d = new double[f.length]; int[] v = new int[f.length]; - double[] z = new double[f.length+1]; + double[] z = new double[f.length + 1]; int k = 0; v[0] = 0; z[0] = Integer.MIN_VALUE; z[1] = Integer.MAX_VALUE; - for(int q = 1; q <= f.length-1; q++) { - double s = ((f[q]+Math.pow(q, 2))-(f[v[k]]+Math.pow(v[k], 2)))/(2*q-2*v[k]); - while (s <= z[k]) { + for(int q = 1; q <= f.length - 1; q++) { + double s = ((f[q] + Math.pow(q, 2)) - (f[v[k]] + Math.pow(v[k], 2))) / (2 * q - 2 * v[k]); + while(s <= z[k]) { k--; - s = ((f[q]+Math.pow(q, 2))-(f[v[k]]+Math.pow(v[k], 2)))/(2*q-2*v[k]); + s = ((f[q] + Math.pow(q, 2)) - (f[v[k]] + Math.pow(v[k], 2))) / (2 * q - 2 * v[k]); } k++; v[k] = q; z[k] = s; - z[k+1] = Integer.MAX_VALUE; + z[k + 1] = Integer.MAX_VALUE; } k = 0; - for(int q = 0; q <= f.length-1; q++) { - while(z[k+1] < q) + for(int q = 0; q <= f.length - 1; q++) { + while(z[k + 1] < q) k++; - d[q] = Math.pow(q-v[k], 2) + f[v[k]]; + d[q] = Math.pow(q - v[k], 2) + f[v[k]]; } return d; } @@ -164,9 +163,9 @@ public class DistanceTransform { yield lerp(distances[x][y], minDistance, -1, maxDistance, 1); } else { if(d > 0) { - yield Math.pow(d/maxDistance, 2); + yield Math.pow(d / maxDistance, 2); } else if(d < 0) { - yield -Math.pow(d/minDistance, 2); + yield -Math.pow(d / minDistance, 2); } else { yield 0; } @@ -198,6 +197,7 @@ public class DistanceTransform { ThresholdEdgeSigned, } + public enum Normalization { /** * Return the raw calculated distances. @@ -217,21 +217,22 @@ public class DistanceTransform { SmoothPreserveZero, } + public static class Noise implements NoiseSampler { - + private final DistanceTransform transform; - + public Noise(DistanceTransform transform, Normalization normalization) { this.transform = transform; transform.normalize(normalization); } - + @Override public double noise(long seed, double x, double y) { - if(x<0 || y<0 || x>=transform.width || y>=transform.height) return transform.minDistance; + if(x < 0 || y < 0 || x >= transform.width || y >= transform.height) return transform.minDistance; return transform.distances[(int) Math.floor(x)][(int) Math.floor(y)]; } - + @Override public double noise(long seed, double x, double y, double z) { return noise(seed, x, z); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/ColorUtil.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/ColorUtil.java index 6e76cd72e..dc7316d8c 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/ColorUtil.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/ColorUtil.java @@ -5,7 +5,7 @@ package com.dfsek.terra.addons.image.util; */ public class ColorUtil { - private ColorUtil() {} + private ColorUtil() { } public static int distance(int a, int b) { return Math.abs(getRed(a) - getRed(b)) + @@ -17,6 +17,7 @@ public class ColorUtil { * Returns the red channel value of a given ARGB color value. * * @param argb the ARGB color value to extract the red channel value from + * * @return the red channel value of the given ARGB color value, in the range 0-255 */ public static int getRed(int argb) { @@ -27,6 +28,7 @@ public class ColorUtil { * Returns the green channel value of a given ARGB color value. * * @param argb the ARGB color value to extract the green channel value from + * * @return the green channel value of the given ARGB color value, in the range 0-255 */ public static int getGreen(int argb) { @@ -37,6 +39,7 @@ public class ColorUtil { * Returns the blue channel value of a given ARGB color value. * * @param argb the ARGB color value to extract the blue channel value from + * * @return the blue channel value of the given ARGB color value, in the range 0-255 */ public static int getBlue(int argb) { @@ -47,6 +50,7 @@ public class ColorUtil { * Returns the alpha channel value of a given ARGB color value. * * @param argb the ARGB color value to extract the blue channel value from + * * @return the alpha channel value of the given ARGB color value, in the range 0-255 */ public static int getAlpha(int argb) { @@ -57,6 +61,7 @@ public class ColorUtil { * Returns the grayscale value of a given ARGB color value. * * @param argb the ARGB color value to convert to grayscale + * * @return the grayscale value of the given ARGB color value, in the range 0-255 */ public static int getGrayscale(int argb) { @@ -66,8 +71,9 @@ public class ColorUtil { /** * Returns the value of the specified channel for a given ARGB color value. * - * @param argb the ARGB color value to extract the channel value from + * @param argb the ARGB color value to extract the channel value from * @param channel the channel to extract the value from + * * @return the value of the specified channel for the given ARGB color value, in the range 0-255 */ public static int getChannel(int argb, Channel channel) { @@ -78,6 +84,7 @@ public class ColorUtil { * Sets the red channel value of a given ARGB color value to zero. * * @param argb the ARGB color value to zero the red channel of + * * @return the resulting ARGB color value with the red channel set to zero */ public static int zeroRed(int argb) { @@ -88,6 +95,7 @@ public class ColorUtil { * Sets the green channel value of a given ARGB color value to zero. * * @param argb the ARGB color value to zero the green channel of + * * @return the resulting ARGB color value with the green channel set to zero */ public static int zeroGreen(int argb) { @@ -98,6 +106,7 @@ public class ColorUtil { * Sets the blue channel value of a given ARGB color value to zero. * * @param argb the ARGB color value to zero the blue channel of + * * @return the resulting ARGB color value with the blue channel set to zero */ public static int zeroBlue(int argb) { @@ -109,6 +118,7 @@ public class ColorUtil { * This is the same as setting the color to fully transparent. * * @param argb the ARGB color value to zero the alpha channel of + * * @return the resulting ARGB color value with the alpha channel set to zero */ public static int zeroAlpha(int argb) { @@ -120,6 +130,7 @@ public class ColorUtil { * This is the same as setting the color to black, while preserving the alpha. * * @param argb the ARGB color value to zero the color channel of + * * @return the resulting ARGB color value with the color channels set to zero */ public static int zeroGrayscale(int argb) { @@ -129,8 +140,9 @@ public class ColorUtil { /** * Sets the specified channel value of a given ARGB color value to zero. * - * @param argb the ARGB color value to zero the specified channel of + * @param argb the ARGB color value to zero the specified channel of * @param channel the channel to zero the value of + * * @return the resulting ARGB color value with the specified channel value set to zero */ public static int zeroChannel(int argb, Channel channel) { @@ -141,6 +153,7 @@ public class ColorUtil { * Multiply the RGB channels of a given ARGB color value by its alpha channel value. * * @param argb the ARGB color value to premultiply the RGB channels of + * * @return the resulting premultiplied ARGB color value */ public static int premultiply(int argb) { @@ -155,9 +168,10 @@ public class ColorUtil { * Returns an ARGB color value with the specified values for alpha, red, green, and blue channels. * * @param alpha the alpha value, between 0 and 255, to set in the ARGB color value - * @param red the red value, between 0 and 255, to set in the ARGB color value + * @param red the red value, between 0 and 255, to set in the ARGB color value * @param green the green value, between 0 and 255, to set in the ARGB color value - * @param blue the blue value, between 0 and 255, to set in the ARGB color value + * @param blue the blue value, between 0 and 255, to set in the ARGB color value + * * @return the resulting ARGB color value with the specified values for alpha, red, green, and blue channels */ public static int argb(int alpha, int red, int green, int blue) { @@ -169,17 +183,19 @@ public class ColorUtil { * after validating that each channel value is in the range 0-255. * * @param alpha the alpha value, between 0 and 255, to set in the ARGB color value - * @param red the red value, between 0 and 255, to set in the ARGB color value + * @param red the red value, between 0 and 255, to set in the ARGB color value * @param green the green value, between 0 and 255, to set in the ARGB color value - * @param blue the blue value, between 0 and 255, to set in the ARGB color value + * @param blue the blue value, between 0 and 255, to set in the ARGB color value + * * @return the resulting ARGB color value with the specified values for alpha, red, green, and blue channels + * * @throws IllegalArgumentException if any channel value is outside the range 0-255 */ public static int argbValidated(int alpha, int red, int green, int blue) throws IllegalArgumentException { - if (alpha < 0 || alpha > 255 || - red < 0 || red > 255 || - green < 0 || green > 255 || - blue < 0 || blue > 255 + if(alpha < 0 || alpha > 255 || + red < 0 || red > 255 || + green < 0 || green > 255 || + blue < 0 || blue > 255 ) throw new IllegalArgumentException("Channel values must be in range 0-255"); return argb(alpha, red, green, blue); } @@ -189,6 +205,7 @@ public class ColorUtil { * for the red, green, and blue channels. * * @param alpha the alpha channel value to set in the ARGB color value + * * @return the resulting ARGB color value */ public static int argbAlpha(int alpha) { return alpha << 24; } @@ -198,6 +215,7 @@ public class ColorUtil { * for the alpha, green, and blue channels. * * @param red the red channel value to set in the ARGB color value + * * @return the resulting ARGB color value */ public static int argbRed(int red) { return red << 16; } @@ -207,6 +225,7 @@ public class ColorUtil { * for the alpha, red, and blue channels. * * @param green the green channel value to set in the ARGB color value + * * @return the resulting ARGB color value */ public static int argbGreen(int green) { return green << 8; } @@ -216,6 +235,7 @@ public class ColorUtil { * for the alpha, red, and green channels. * * @param blue the blue channel value to set in the ARGB color value + * * @return the resulting ARGB color value */ public static int argbBlue(int blue) { return blue; } @@ -224,6 +244,7 @@ public class ColorUtil { * Returns an ARGB color value with the specified grayscale value for all four channels. * * @param value the grayscale value to set in all four channels of the ARGB color value + * * @return the resulting ARGB color value with the specified grayscale value for all four channels */ public static int argbGrayscale(int value) { return argb(value, value, value, value); } @@ -234,7 +255,7 @@ public class ColorUtil { public int from(int argb) { return getRed(argb); } - + @Override public int zero(int argb) { return zeroRed(argb); @@ -250,7 +271,7 @@ public class ColorUtil { public int from(int argb) { return getGreen(argb); } - + @Override public int zero(int argb) { return zeroGreen(argb); @@ -266,7 +287,7 @@ public class ColorUtil { public int from(int argb) { return getBlue(argb); } - + @Override public int zero(int argb) { return zeroBlue(argb); @@ -282,7 +303,7 @@ public class ColorUtil { public int from(int argb) { return getGrayscale(argb); } - + @Override public int zero(int argb) { return zeroGrayscale(argb); @@ -298,7 +319,7 @@ public class ColorUtil { public int from(int argb) { return getAlpha(argb); } - + @Override public int zero(int argb) { return zeroAlpha(argb); diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MapUtil.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MapUtil.java index 7fa1040ce..01b730895 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MapUtil.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MapUtil.java @@ -7,8 +7,8 @@ import java.util.stream.Collectors; public class MapUtil { - - private MapUtil() {} + + private MapUtil() { } /** * Utility method for applying transformations on a map's keys. @@ -20,6 +20,6 @@ public class MapUtil { .collect(Collectors.toMap( e -> mappingFunction.apply(e.getKey()), Entry::getValue - )); + )); } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MathUtil.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MathUtil.java index 40e52e5d1..ea677eac8 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MathUtil.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/util/MathUtil.java @@ -1,9 +1,9 @@ package com.dfsek.terra.addons.image.util; public class MathUtil { - private MathUtil() {} + private MathUtil() { } public static double lerp(double x, double x1, double y1, double x2, double y2) { - return (((y1-y2)*(x-x1))/(x1-x2))+y1; + return (((y1 - y2) * (x - x1)) / (x1 - x2)) + y1; } } diff --git a/common/addons/library-image/src/main/resources/terra.addon.yml b/common/addons/library-image/src/main/resources/terra.addon.yml index c664c3df4..4e9cbb54c 100644 --- a/common/addons/library-image/src/main/resources/terra.addon.yml +++ b/common/addons/library-image/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: library-image version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.image.ImageLibraryAddon" + - "com.dfsek.terra.addons.image.ImageLibraryAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License diff --git a/common/addons/locator-slant-noise-3d/src/main/resources/terra.addon.yml b/common/addons/locator-slant-noise-3d/src/main/resources/terra.addon.yml index 8a7ef4ad9..0189030b6 100644 --- a/common/addons/locator-slant-noise-3d/src/main/resources/terra.addon.yml +++ b/common/addons/locator-slant-noise-3d/src/main/resources/terra.addon.yml @@ -1,14 +1,14 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: locator-slant-noise-3d version: @VERSION@ entrypoints: - - "com.dfsek.terra.addon.feature.locator.slant.SlantLocatorAddon" + - "com.dfsek.terra.addon.feature.locator.slant.SlantLocatorAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - chunk-generator-noise-3d: "[1.2.0,2.0.0)" \ No newline at end of file + chunk-generator-noise-3d: "[1.2.0,2.0.0)" \ No newline at end of file diff --git a/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml b/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml index 6b643a053..263fefa83 100644 --- a/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml +++ b/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: palette-block-shortcut version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.palette.shortcut.block.PaletteBlockShortcutAddon" + - "com.dfsek.terra.addons.palette.shortcut.block.PaletteBlockShortcutAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/PipelineImageAddon.java b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/PipelineImageAddon.java index eb62a79b2..df69d9662 100644 --- a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/PipelineImageAddon.java +++ b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/PipelineImageAddon.java @@ -28,11 +28,13 @@ import com.dfsek.terra.api.world.biome.Biome; public class PipelineImageAddon implements AddonInitializer { - public static final TypeKey>>> PIPELINE_BIOME_COLOR_CONVERTER_REGISTRY_KEY = new TypeKey<>() { - }; + public static final TypeKey>>> PIPELINE_BIOME_COLOR_CONVERTER_REGISTRY_KEY = + new TypeKey<>() { + }; - public static final TypeKey>>> PIPELINE_BIOME_COLOR_MAPPING_REGISTRY_KEY = new TypeKey<>() { - }; + public static final TypeKey>>> PIPELINE_BIOME_COLOR_MAPPING_REGISTRY_KEY = + new TypeKey<>() { + }; @Inject private Platform platform; @@ -48,19 +50,24 @@ public class PipelineImageAddon implements AddonInitializer { .register(addon, ConfigPackPreLoadEvent.class) .priority(500) .then(event -> { - CheckedRegistry>>> biomeColorConverterRegistry = event.getPack().getOrCreateRegistry( - PIPELINE_BIOME_COLOR_CONVERTER_REGISTRY_KEY); + CheckedRegistry>>> biomeColorConverterRegistry = + event.getPack().getOrCreateRegistry( + PIPELINE_BIOME_COLOR_CONVERTER_REGISTRY_KEY); biomeColorConverterRegistry.register(addon.key("EXACT"), ExactPipelineBiomeColorConverterTemplate::new); biomeColorConverterRegistry.register(addon.key("CLOSEST"), ClosestPipelineBiomeColorConverterTemplate::new); }) .then(event -> { - CheckedRegistry>> sourceRegistry = event.getPack().getOrCreateRegistry(BiomePipelineAddon.SOURCE_REGISTRY_KEY); + CheckedRegistry>> sourceRegistry = event.getPack().getOrCreateRegistry( + BiomePipelineAddon.SOURCE_REGISTRY_KEY); sourceRegistry.register(addon.key("IMAGE"), ImageSourceTemplate::new); }) .then(event -> { - CheckedRegistry>>> biomeColorMappingRegistry = event.getPack().getOrCreateRegistry( - PIPELINE_BIOME_COLOR_MAPPING_REGISTRY_KEY); - biomeColorMappingRegistry.register(addon.key("USE_BIOME_COLORS"), () -> () -> new BiomeDefinedColorMapping<>(event.getPack().getRegistry(Biome.class), DelegatedPipelineBiome::new)); + CheckedRegistry>>> biomeColorMappingRegistry = + event.getPack().getOrCreateRegistry( + PIPELINE_BIOME_COLOR_MAPPING_REGISTRY_KEY); + biomeColorMappingRegistry.register(addon.key("USE_BIOME_COLORS"), + () -> () -> new BiomeDefinedColorMapping<>(event.getPack().getRegistry(Biome.class), + DelegatedPipelineBiome::new)); biomeColorMappingRegistry.register(addon.key("MAP"), DefinedPipelineBiomeColorMappingTemplate::new); }) .failThrough(); diff --git a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ClosestPipelineBiomeColorConverterTemplate.java b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ClosestPipelineBiomeColorConverterTemplate.java index a695398dc..df5fb3471 100644 --- a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ClosestPipelineBiomeColorConverterTemplate.java +++ b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ClosestPipelineBiomeColorConverterTemplate.java @@ -8,7 +8,7 @@ import com.dfsek.terra.addons.image.converter.mapping.ColorMapping; public class ClosestPipelineBiomeColorConverterTemplate extends ClosestColorConverterTemplate { - + @Value("match") private ColorMapping match; diff --git a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ExactPipelineBiomeColorConverterTemplate.java b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ExactPipelineBiomeColorConverterTemplate.java index 305a03e31..ac94d2bd9 100644 --- a/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ExactPipelineBiomeColorConverterTemplate.java +++ b/common/addons/pipeline-image/src/main/java/com/dfsek/terra/addons/biome/pipeline/image/config/converter/ExactPipelineBiomeColorConverterTemplate.java @@ -12,19 +12,19 @@ public class ExactPipelineBiomeColorConverterTemplate extends ExactColorConverte @Value("match") private ColorMapping match; - + @Value("else") private PipelineBiome fallback; @Value("ignore-alpha") @Default private boolean ignoreAlpha = true; - + @Override protected ColorMapping getMapping() { return match; } - + @Override protected PipelineBiome getFallback() { return fallback; diff --git a/common/addons/pipeline-image/src/main/resources/terra.addon.yml b/common/addons/pipeline-image/src/main/resources/terra.addon.yml index 09adeb933..0da6c930c 100644 --- a/common/addons/pipeline-image/src/main/resources/terra.addon.yml +++ b/common/addons/pipeline-image/src/main/resources/terra.addon.yml @@ -1,14 +1,14 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: pipeline-image version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.biome.pipeline.image.PipelineImageAddon" + - "com.dfsek.terra.addons.biome.pipeline.image.PipelineImageAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: library-image: "1.+" diff --git a/common/addons/structure-block-shortcut/src/main/resources/terra.addon.yml b/common/addons/structure-block-shortcut/src/main/resources/terra.addon.yml index d653e2d9c..62a2e875d 100644 --- a/common/addons/structure-block-shortcut/src/main/resources/terra.addon.yml +++ b/common/addons/structure-block-shortcut/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: structure-block-shortcut version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.palette.shortcut.block.StructureBlockShortcutAddon" + - "com.dfsek.terra.addons.palette.shortcut.block.StructureBlockShortcutAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/structure-mutator/src/main/resources/terra.addon.yml b/common/addons/structure-mutator/src/main/resources/terra.addon.yml index 29df5332d..328b8d54d 100644 --- a/common/addons/structure-mutator/src/main/resources/terra.addon.yml +++ b/common/addons/structure-mutator/src/main/resources/terra.addon.yml @@ -1,11 +1,11 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: structure-mutator version: @VERSION@ entrypoints: [ ] website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeSchematicAddon.java b/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeSchematicAddon.java index ce5a02453..4ed00cf8e 100644 --- a/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeSchematicAddon.java +++ b/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeSchematicAddon.java @@ -76,7 +76,7 @@ public class SpongeSchematicAddon implements AddonInitializer { int wid = baseTag.getShort("Width"); int len = baseTag.getShort("Length"); int hei = baseTag.getShort("Height"); - + CompoundTag metadata = baseTag.getCompoundTag("Metadata"); Vector3Int offset = switch(ver) { diff --git a/common/addons/structure-sponge-loader/src/main/resources/terra.addon.yml b/common/addons/structure-sponge-loader/src/main/resources/terra.addon.yml index d5635f09b..a3c6a8ecf 100644 --- a/common/addons/structure-sponge-loader/src/main/resources/terra.addon.yml +++ b/common/addons/structure-sponge-loader/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: structure-sponge-loader version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.sponge.SpongeSchematicAddon" + - "com.dfsek.terra.addons.sponge.SpongeSchematicAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/Parser.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/Parser.java index 7c4a47639..82da454dd 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/Parser.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/Parser.java @@ -338,9 +338,9 @@ public class Parser { Returnable value = parseExpression(tokens, true, scopeBuilder); ParserUtil.checkReturnType(value, returnType); - + String id = identifier.getContent(); - + return switch(value.returnType()) { case NUMBER -> new NumAssignmentNode((Returnable) value, identifier.getPosition(), scopeBuilder.num(id)); case STRING -> new StrAssignmentNode((Returnable) value, identifier.getPosition(), scopeBuilder.str(id)); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Executable.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Executable.java index 6f9c026a0..09c11f2dc 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Executable.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Executable.java @@ -7,12 +7,12 @@ import com.dfsek.terra.addons.terrascript.parser.lang.Scope.ScopeBuilder; public class Executable { private final Block script; private final ThreadLocal scope; - + public Executable(Block script, ScopeBuilder scopeBuilder) { this.script = script; this.scope = ThreadLocal.withInitial(scopeBuilder::build); } - + public boolean execute(ImplementationArguments arguments) { return script.apply(arguments, scope.get()).getLevel() != Block.ReturnLevel.FAIL; } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java index 951bb261c..cd2de2393 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java @@ -74,7 +74,7 @@ public class Scope { } return id; } - + public int num(String id) { int num = numSize; indices.put(check(id), Pair.of(num, ReturnType.NUMBER)); @@ -105,14 +105,14 @@ public class Scope { parent.updateBoolSize(size); } } - + private void updateNumSize(int size) { this.numSize = Math.max(numSize, size); if(parent != null) { parent.updateNumSize(size); } } - + private void updateStrSize(int size) { this.strSize = Math.max(strSize, size); if(parent != null) { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/BooleanConstant.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/BooleanConstant.java index c51bf5870..cdf1bcb1c 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/BooleanConstant.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/BooleanConstant.java @@ -14,7 +14,7 @@ import com.dfsek.terra.addons.terrascript.tokenizer.Position; public class BooleanConstant extends ConstantExpression { private final boolean constant; - + public BooleanConstant(Boolean constant, Position position) { super(constant, position); this.constant = constant; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/NumericConstant.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/NumericConstant.java index 721ecd560..ad1cb1ad1 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/NumericConstant.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/constants/NumericConstant.java @@ -15,7 +15,7 @@ import com.dfsek.terra.addons.terrascript.tokenizer.Position; public class NumericConstant extends ConstantExpression { private final double constant; - + public NumericConstant(Number constant, Position position) { super(constant, position); this.constant = constant.doubleValue(); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/functions/Function.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/functions/Function.java index 004c66f1b..87c16e700 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/functions/Function.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/functions/Function.java @@ -19,12 +19,12 @@ public interface Function extends Returnable { public ReturnType returnType() { return null; } - + @Override public Object apply(ImplementationArguments implementationArguments, Scope scope) { return null; } - + @Override public Position getPosition() { return null; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java index 85fecf29f..fa7231221 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java @@ -27,7 +27,7 @@ public class BooleanOrOperation extends BinaryOperation { public boolean applyBoolean(ImplementationArguments implementationArguments, Scope scope) { return left.applyBoolean(implementationArguments, scope) || right.applyBoolean(implementationArguments, scope); } - + @Override public ReturnType returnType() { return ReturnType.BOOLEAN; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java index 71225b1e4..fcc5023fa 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java @@ -27,7 +27,7 @@ public class ModuloOperation extends BinaryOperation { public double applyDouble(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) % right.applyDouble(implementationArguments, scope); } - + @Override public ReturnType returnType() { return ReturnType.NUMBER; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java index 40480d113..bd0acd8c5 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java @@ -27,7 +27,7 @@ public class MultiplicationOperation extends BinaryOperation { public double applyDouble(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) * right.applyDouble(implementationArguments, scope); } - + @Override public ReturnType returnType() { return ReturnType.NUMBER; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java index fb4af8020..32c649247 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java @@ -27,7 +27,7 @@ public class NumberAdditionOperation extends BinaryOperation { public double applyDouble(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) + right.applyDouble(implementationArguments, scope); } - + @Override public ReturnType returnType() { return ReturnType.NUMBER; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java index f2905ae88..427756171 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java @@ -27,7 +27,7 @@ public class SubtractionOperation extends BinaryOperation { public double applyDouble(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) - right.applyDouble(implementationArguments, scope); } - + @Override public ReturnType returnType() { return ReturnType.NUMBER; 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 61d96d36a..746fbd14e 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 @@ -40,7 +40,7 @@ public class EqualsStatement extends BinaryOperation { if(leftValue instanceof Number l && rightValue instanceof Number r) { return Math.abs(l.doubleValue() - r.doubleValue()) <= EPSILON; } - + return leftValue.equals(rightValue); } } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java index ad03a9793..6453e8d62 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java @@ -29,7 +29,7 @@ public class LessThanOrEqualsStatement extends BinaryOperation public boolean applyBoolean(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) <= right.applyDouble(implementationArguments, scope); } - + @Override public Returnable.ReturnType returnType() { return Returnable.ReturnType.BOOLEAN; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java index 39941c6c4..f710e3630 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java @@ -29,7 +29,7 @@ public class LessThanStatement extends BinaryOperation { public boolean applyBoolean(ImplementationArguments implementationArguments, Scope scope) { return left.applyDouble(implementationArguments, scope) < right.applyDouble(implementationArguments, scope); } - + @Override public Returnable.ReturnType returnType() { return Returnable.ReturnType.BOOLEAN; 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 032108784..d06152ec0 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 @@ -7,36 +7,11 @@ package com.dfsek.terra.addons.terrascript.script; -import org.apache.commons.io.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.Charset; -import java.util.Random; - import com.dfsek.terra.addons.terrascript.parser.Parser; import com.dfsek.terra.addons.terrascript.parser.lang.Executable; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.BinaryNumberFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.BiomeFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.BlockFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.CheckBlockFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.EntityFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.GetMarkFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.LootFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.PullFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.RandomFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.RecursionsFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.SetMarkFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.StateFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.StructureFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.UnaryBooleanFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.UnaryNumberFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.UnaryStringFunctionBuilder; -import com.dfsek.terra.addons.terrascript.script.builders.ZeroArgFunctionBuilder; +import com.dfsek.terra.addons.terrascript.script.builders.*; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.registry.key.Keyed; @@ -48,6 +23,15 @@ import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; +import org.apache.commons.io.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.Random; + public class StructureScript implements Structure, Keyed { private static final Logger LOGGER = LoggerFactory.getLogger(StructureScript.class); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/LootFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/LootFunction.java index 446466c8e..aa9f7c21e 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/LootFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/LootFunction.java @@ -69,7 +69,7 @@ public class LootFunction implements Function { y.apply(implementationArguments, scope) .intValue(), (int) Math.round(xz.getZ())).mutable().add(arguments.getOrigin()).immutable(); - + try { BlockEntity data = arguments.getWorld().getBlockEntity(apply); if(!(data instanceof Container container)) { @@ -77,12 +77,12 @@ public class LootFunction implements Function { apply, data); return; } - + LootPopulateEvent event = new LootPopulateEvent(container, table, arguments.getWorld().getPack(), script); platform.getEventManager().callEvent(event); if(event.isCancelled()) return; - + event.getTable().fillInventory(container.getInventory(), new Random(apply.hashCode())); data.update(false); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StateFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StateFunction.java index 640d52ecc..516c5fd07 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StateFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StateFunction.java @@ -7,9 +7,6 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; @@ -21,6 +18,9 @@ import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.util.vector.Vector2; import com.dfsek.terra.api.util.vector.Vector3; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class StateFunction implements Function { private static final Logger LOGGER = LoggerFactory.getLogger(StateFunction.class); diff --git a/common/addons/structure-terrascript-loader/src/main/resources/terra.addon.yml b/common/addons/structure-terrascript-loader/src/main/resources/terra.addon.yml index 0850687c9..20352eb7e 100644 --- a/common/addons/structure-terrascript-loader/src/main/resources/terra.addon.yml +++ b/common/addons/structure-terrascript-loader/src/main/resources/terra.addon.yml @@ -1,12 +1,12 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: structure-terrascript-loader version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.terrascript.TerraScriptAddon" + - "com.dfsek.terra.addons.terrascript.TerraScriptAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License \ No newline at end of file diff --git a/common/addons/terrascript-function-check-noise-3d/src/main/resources/terra.addon.yml b/common/addons/terrascript-function-check-noise-3d/src/main/resources/terra.addon.yml index 028db2274..1ab94f379 100644 --- a/common/addons/terrascript-function-check-noise-3d/src/main/resources/terra.addon.yml +++ b/common/addons/terrascript-function-check-noise-3d/src/main/resources/terra.addon.yml @@ -1,15 +1,15 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: structure-function-check-noise-3d version: @VERSION@ entrypoints: - - "com.dfsek.terra.addon.terrascript.check.TerraScriptCheckFunctionAddon" + - "com.dfsek.terra.addon.terrascript.check.TerraScriptCheckFunctionAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - structure-terrascript-loader: "1.+" - chunk-generator-noise-3d: "1.+" \ No newline at end of file + structure-terrascript-loader: "1.+" + chunk-generator-noise-3d: "1.+" \ No newline at end of file diff --git a/common/addons/terrascript-function-sampler/src/main/resources/terra.addon.yml b/common/addons/terrascript-function-sampler/src/main/resources/terra.addon.yml index 635814c2c..31bb39127 100644 --- a/common/addons/terrascript-function-sampler/src/main/resources/terra.addon.yml +++ b/common/addons/terrascript-function-sampler/src/main/resources/terra.addon.yml @@ -1,15 +1,15 @@ schema-version: 1 contributors: - - Terra contributors + - Terra contributors id: terrascript-function-sampler version: @VERSION@ entrypoints: - - "com.dfsek.terra.addons.terrascript.sampler.TerraScriptSamplerFunctionAddon" + - "com.dfsek.terra.addons.terrascript.sampler.TerraScriptSamplerFunctionAddon" website: - issues: https://github.com/PolyhedralDev/Terra/issues - source: https://github.com/PolyhedralDev/Terra - docs: https://terra.polydev.org + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://terra.polydev.org license: MIT License depends: - structure-terrascript-loader: "1.+" - config-noise-function: "1.+" \ No newline at end of file + structure-terrascript-loader: "1.+" + config-noise-function: "1.+" \ No newline at end of file diff --git a/common/api/build.gradle.kts b/common/api/build.gradle.kts index bdcdd3901..68a2f0d75 100644 --- a/common/api/build.gradle.kts +++ b/common/api/build.gradle.kts @@ -3,9 +3,9 @@ dependencies { compileOnlyApi("org.slf4j", "slf4j-api", Versions.Libraries.slf4j) testImplementation("org.slf4j", "slf4j-api", Versions.Libraries.slf4j) api("cloud.commandframework", "cloud-core", Versions.Libraries.cloud) - + api("com.dfsek.tectonic", "common", Versions.Libraries.tectonic) - + api("com.github.ben-manes.caffeine:caffeine:3.1.0") } \ No newline at end of file diff --git a/common/api/src/main/java/com/dfsek/terra/api/Platform.java b/common/api/src/main/java/com/dfsek/terra/api/Platform.java index a6ed29a54..744d7f716 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/Platform.java +++ b/common/api/src/main/java/com/dfsek/terra/api/Platform.java @@ -7,11 +7,6 @@ package com.dfsek.terra.api; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; - -import java.io.File; - import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.PluginConfig; @@ -23,6 +18,11 @@ import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.tectonic.LoaderRegistrar; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; + +import java.io.File; + /** * Represents a Terra mod/plugin instance. diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/GeometryUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/GeometryUtil.java index 25984257f..6bb21b3df 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/GeometryUtil.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/GeometryUtil.java @@ -7,7 +7,7 @@ import com.dfsek.terra.api.util.vector.Vector3Int; public final class GeometryUtil { private GeometryUtil() { - + } public static void sphere(Vector3Int origin, int radius, Consumer action) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java index 36bf0472e..716b879af 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java @@ -14,11 +14,14 @@ import java.util.List; * Utility class for mathematical functions. */ public final class MathUtil { + /** + * Epsilon for fuzzy floating point comparisons. + */ + public static final double EPSILON = 1.0E-5; private static final int SIN_BITS, SIN_MASK, SIN_COUNT; private static final double radFull, radToIndex; private static final double degFull, degToIndex; private static final double[] sin, cos; - static { SIN_BITS = 12; SIN_MASK = ~(-1 << SIN_BITS); @@ -32,23 +35,18 @@ public final class MathUtil { sin = new double[SIN_COUNT]; cos = new double[SIN_COUNT]; - for (int i = 0; i < SIN_COUNT; i++) { + for(int i = 0; i < SIN_COUNT; i++) { sin[i] = Math.sin((i + 0.5f) / SIN_COUNT * radFull); cos[i] = Math.cos((i + 0.5f) / SIN_COUNT * radFull); } // Four cardinal directions (credits: Nate) - for (int i = 0; i < 360; i += 90) { + for(int i = 0; i < 360; i += 90) { sin[(int) (i * degToIndex) & SIN_MASK] = Math.sin(i * Math.PI / 180.0); cos[(int) (i * degToIndex) & SIN_MASK] = Math.cos(i * Math.PI / 180.0); } } - /** - * Epsilon for fuzzy floating point comparisons. - */ - public static final double EPSILON = 1.0E-5; - public static double sin(double rad) { return sin[(int) (rad * radToIndex) & SIN_MASK]; } @@ -114,7 +112,7 @@ public final class MathUtil { } public static int normalizeIndex(double val, int size) { - return Math.max(Math.min((int)Math.floor(((val + 1D) / 2D) * size), size - 1), 0); + return Math.max(Math.min((int) Math.floor(((val + 1D) / 2D) * size), size - 1), 0); } public static long squash(int first, int last) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/collection/ProbabilityCollection.java b/common/api/src/main/java/com/dfsek/terra/api/util/collection/ProbabilityCollection.java index dd202560d..84c9041e5 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/collection/ProbabilityCollection.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/collection/ProbabilityCollection.java @@ -57,13 +57,15 @@ public class ProbabilityCollection implements Collection { @SuppressWarnings("unchecked") public E get(NoiseSampler n, Vector3Int vector3Int, long seed) { if(array.length == 0) return null; - return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)]; + return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), + array.length)]; } @SuppressWarnings("unchecked") public E get(NoiseSampler n, Vector3 vector3Int, long seed) { if(array.length == 0) return null; - return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)]; + return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), + array.length)]; } @SuppressWarnings("unchecked") diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java index 25022cf18..56fdec9d7 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/either/Either.java @@ -80,7 +80,7 @@ public final class Either { @Override public boolean equals(Object obj) { if(!(obj instanceof Either that)) return false; - + return (this.leftPresent && that.leftPresent && Objects.equals(this.left, that.left)) || (!this.leftPresent && !that.leftPresent && Objects.equals(this.right, that.right)); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java index 51e72ab80..1eef92360 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java @@ -106,52 +106,52 @@ public final class Pair { return String.format("{%s,%s}", left, right); } - + public static class Mutable { private L left; private R right; - + private Mutable(L left, R right) { this.left = left; this.right = right; } - + @NotNull @Contract("_, _ -> new") public static Pair.Mutable of(L1 left, R1 right) { return new Mutable<>(left, right); } - + @Contract("-> new") public Pair immutable() { return Pair.of(left, right); } - + public L getLeft() { return left; } - + public void setLeft(L left) { this.left = left; } - + public R getRight() { return right; } - + public void setRight(R right) { this.right = right; } - + @Override public int hashCode() { return Objects.hash(left, right); } - + @Override public boolean equals(Object obj) { if(!(obj instanceof Mutable that)) return false; - + return Objects.equals(this.left, that.left) && Objects.equals(this.right, that.right); } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/reflection/ReflectionUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/reflection/ReflectionUtil.java index a79a4cefa..795ba8936 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/reflection/ReflectionUtil.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/reflection/ReflectionUtil.java @@ -73,7 +73,7 @@ public final class ReflectionUtil { public static String typeToString(Type type) { return type instanceof Class ? ((Class) type).getName() : type.toString(); } - + public static boolean equals(Type a, Type b) { if(a == b) { return true; diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2.java b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2.java index 0a139478a..7d8e45665 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2.java @@ -28,6 +28,7 @@ public class Vector2 { this.x = x; this.z = z; } + public static Vector2 zero() { return ZERO; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2Int.java b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2Int.java index 1a64414c8..48e71562b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2Int.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector2Int.java @@ -66,29 +66,29 @@ public class Vector2Int { return false; } - + public static class Mutable extends Vector2Int { - + protected Mutable(int x, int z) { super(x, z); } - + public int getZ() { return z; } - + public void setZ(int z) { this.z = z; } - + public int getX() { return x; } - + public void setX(int x) { this.x = x; } - + public Vector2Int immutable() { return new Vector2Int(x, z); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3.java b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3.java index f346fb433..2f649b3d6 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3.java @@ -22,6 +22,7 @@ public class Vector3 { this.y = y; this.z = z; } + public static Vector3 zero() { return ZERO; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java index fff67f75a..37aeed63b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java @@ -30,12 +30,12 @@ public class CachingBiomeProvider implements BiomeProvider, Handle { .initialCapacity(98304) .maximumSize(98304) // 1 full chunk (high res) .build(vec -> delegate.getBiome(vec.x * res, vec.y * res, vec.z * res, vec.seed)); - + this.baseCache = Caffeine .newBuilder() .maximumSize(256) // 1 full chunk (high res) .build(vec -> delegate.getBaseBiome(vec.x * res, vec.z * res, vec.seed)); - + } @Override @@ -80,8 +80,8 @@ public class CachingBiomeProvider implements BiomeProvider, Handle { return 31 * code + ((int) (seed ^ (seed >>> 32))); } } - - + + private record SeededVector2(int x, int z, long seed) { @Override public boolean equals(Object obj) { diff --git a/common/api/src/test/java/util/ColumnTest.java b/common/api/src/test/java/util/ColumnTest.java index 06f4a03e4..c6bff5035 100644 --- a/common/api/src/test/java/util/ColumnTest.java +++ b/common/api/src/test/java/util/ColumnTest.java @@ -86,17 +86,17 @@ public class ColumnTest { public int getMaxY() { return max; } - + @Override public int getX() { return 0; } - + @Override public int getZ() { return 0; } - + @Override public T get(int y) { return p.apply(y); diff --git a/common/implementation/base/build.gradle.kts b/common/implementation/base/build.gradle.kts index 75ebf671e..aa7626f3f 100644 --- a/common/implementation/base/build.gradle.kts +++ b/common/implementation/base/build.gradle.kts @@ -1,15 +1,15 @@ dependencies { api(project(":common:api")) api(project(":common:implementation:bootstrap-addon-loader")) - + testImplementation("org.slf4j", "slf4j-api", Versions.Libraries.slf4j) - + implementation("commons-io", "commons-io", Versions.Libraries.Internal.apacheIO) - + implementation("org.apache.commons", "commons-text", Versions.Libraries.Internal.apacheText) implementation("com.dfsek.tectonic", "yaml", Versions.Libraries.tectonic) - - + + implementation("com.dfsek", "paralithic", Versions.Libraries.paralithic) } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java index 4ea9466ec..84ef39437 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java @@ -180,7 +180,7 @@ public abstract class AbstractPlatform implements Platform { bootstrapAddonLoader.loadAddons(addonsFolder, bootstrapAddonClassLoader) .forEach(bootstrapAddon -> { platformInjector.inject(bootstrapAddon); - + bootstrapAddon.loadAddons(addonsFolder, bootstrapAddonClassLoader) .forEach(addonList::add); }); diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/config/BufferedImageLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/config/BufferedImageLoader.java index b6f50dd78..057eba98e 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/config/BufferedImageLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/config/BufferedImageLoader.java @@ -33,6 +33,7 @@ import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.Loader; import com.dfsek.terra.api.properties.Properties; + /* * @deprecated Use the Image and ImageLoader class provided by the library-image addon instead. This is subject to removal in v7. */ @@ -45,7 +46,7 @@ public class BufferedImageLoader implements TypeLoader { public BufferedImageLoader(Loader files, ConfigPack pack) { this.files = files; this.pack = pack; - if (!pack.getContext().has(ImageCache.class)) + if(!pack.getContext().has(ImageCache.class)) pack.getContext().put(new ImageCache(new ConcurrentHashMap<>())); } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaListLikePreprocessor.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaListLikePreprocessor.java index 59e335ab4..db868690b 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaListLikePreprocessor.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaListLikePreprocessor.java @@ -68,7 +68,8 @@ public class MetaListLikePreprocessor extends MetaPreprocessor { if(!(metaValue instanceof List)) { throw new LoadException( - "Meta list / set injection (via <<) must point to a list. '" + meta + "' points to type " + metaValue.getClass().getCanonicalName(), + "Meta list / set injection (via <<) must point to a list. '" + meta + "' points to type " + + metaValue.getClass().getCanonicalName(), depthTracker); } diff --git a/common/implementation/base/src/main/resources/config.yml b/common/implementation/base/src/main/resources/config.yml index 72dd67061..6d120ef58 100644 --- a/common/implementation/base/src/main/resources/config.yml +++ b/common/implementation/base/src/main/resources/config.yml @@ -6,15 +6,15 @@ # wiki for information regarding config pack development. debug: - commands: false - log: false - profiler: false - script: false + commands: false + log: false + profiler: false + script: false dump-default: true biome-search-resolution: 4 cache: - structure: 32 - sampler: 128 - biome-provider: 32 + structure: 32 + sampler: 128 + biome-provider: 32 script: - max-recursion: 1000 \ No newline at end of file + max-recursion: 1000 \ No newline at end of file diff --git a/common/implementation/base/src/test/java/registry/RegistryTest.java b/common/implementation/base/src/test/java/registry/RegistryTest.java index 3f17a1776..b11e123b6 100644 --- a/common/implementation/base/src/test/java/registry/RegistryTest.java +++ b/common/implementation/base/src/test/java/registry/RegistryTest.java @@ -50,7 +50,7 @@ public class RegistryTest { test.registerChecked(RegistryKey.parse("test:test"), "bazinga2"); fail("Shouldn't be able to re-register with #registerChecked!"); } catch(DuplicateEntryException ignore) { - + } } @@ -66,7 +66,7 @@ public class RegistryTest { test.register(RegistryKey.parse("test:test"), "bazinga2"); fail("Shouldn't be able to re-register in CheckedRegistry!"); } catch(DuplicateEntryException ignore) { - + } } @@ -90,7 +90,7 @@ public class RegistryTest { test.getByID("test"); fail("Shouldn't be able to get with ambiguous ID!"); } catch(IllegalArgumentException ignore) { - + } } } diff --git a/common/implementation/base/src/test/resources/config.yml b/common/implementation/base/src/test/resources/config.yml index d2a7fb934..49f6def92 100644 --- a/common/implementation/base/src/test/resources/config.yml +++ b/common/implementation/base/src/test/resources/config.yml @@ -2,9 +2,9 @@ dimensions: 2 type: Cellular frequency: 0.01 cellular: - return: Distance3Div + return: Distance3Div normalize: - type: LINEAR - linear: - min: -1 - max: 0 \ No newline at end of file + type: LINEAR + linear: + min: -1 + max: 0 \ No newline at end of file diff --git a/common/implementation/base/src/test/resources/meta.yml b/common/implementation/base/src/test/resources/meta.yml index 116b32b89..5762716a6 100644 --- a/common/implementation/base/src/test/resources/meta.yml +++ b/common/implementation/base/src/test/resources/meta.yml @@ -1,18 +1,18 @@ list: - - ONE - - "<< metaTarget.yml:list" - - FOUR - - FIVE - - SIX - - "<< metaTarget.yml:list2" - - NINE - - TEN + - ONE + - "<< metaTarget.yml:list" + - FOUR + - FIVE + - SIX + - "<< metaTarget.yml:list2" + - NINE + - TEN map: - "<<": - - metaTarget.yml:map1 - - metaTarget.yml:map2 - one: ONE - two: TWO + "<<": + - metaTarget.yml:map1 + - metaTarget.yml:map2 + one: ONE + two: TWO string: "one-${metaTarget.yml:string.two}-${metaTarget.yml:string.three}-four-five-${metaTarget.yml:string.six}" int: 2 + 4 double: ${metaTarget.yml:double} + 5.6 \ No newline at end of file diff --git a/common/implementation/base/src/test/resources/metaTarget.yml b/common/implementation/base/src/test/resources/metaTarget.yml index 338930b52..17e3c41d0 100644 --- a/common/implementation/base/src/test/resources/metaTarget.yml +++ b/common/implementation/base/src/test/resources/metaTarget.yml @@ -1,17 +1,17 @@ list: - - TWO - - THREE + - TWO + - THREE list2: - - SEVEN - - EIGHT + - SEVEN + - EIGHT map1: - three: THREE - four: FOUR - five: FIVE + three: THREE + four: FOUR + five: FIVE map2: - six: SIX + six: SIX string: - two: two - three: three - six: six + two: two + three: three + six: six double: 1 \ No newline at end of file diff --git a/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java b/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java index 301f276fa..874e8047c 100644 --- a/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java +++ b/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java @@ -84,7 +84,7 @@ public class BootstrapAddonLoader implements BootstrapBaseAddon bootstrapAddons = Files.walk(bootstrapFolder, 1, FileVisitOption.FOLLOW_LINKS)) { return bootstrapAddons.filter(path -> path.toFile().isFile()) .filter(path -> path.toFile().canRead()) @@ -96,7 +96,7 @@ public class BootstrapAddonLoader implements BootstrapBaseAddon event.getPack().getContext().put(event.loadTemplate(new PreLoadCompatibilityOptions()))) - .global(); + .getHandler(FunctionalEventHandler.class) + .register(this, ConfigPackPreLoadEvent.class) + .then(event -> event.getPack().getContext().put(event.loadTemplate(new PreLoadCompatibilityOptions()))) + .global(); terraBukkitPlugin.getEventManager() .getHandler(FunctionalEventHandler.class) diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index 1ab9731ac..a33393cfd 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -94,7 +94,7 @@ public class TerraBukkitPlugin extends JavaPlugin { Bukkit.getPluginManager().registerEvents(new CommonListener(), this); // Register master event listener PaperUtil.checkPaper(this); - + Initializer.init(platform); } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitBlockPopulator.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitBlockPopulator.java index 1a1cb3b13..51dc63300 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitBlockPopulator.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitBlockPopulator.java @@ -13,8 +13,8 @@ import com.dfsek.terra.bukkit.world.BukkitProtoWorld; public class BukkitBlockPopulator extends BlockPopulator { - private ConfigPack pack; private final BlockState air; + private ConfigPack pack; public BukkitBlockPopulator(ConfigPack pack, BlockState air) { this.pack = pack; @@ -28,6 +28,7 @@ public class BukkitBlockPopulator extends BlockPopulator { @Override public void populate(@NotNull WorldInfo worldInfo, @NotNull Random random, int chunkX, int chunkZ, @NotNull LimitedRegion limitedRegion) { - pack.getStages().forEach(generationStage -> generationStage.populate(new BukkitProtoWorld(limitedRegion, air, pack.getBiomeProvider()))); + pack.getStages().forEach( + generationStage -> generationStage.populate(new BukkitProtoWorld(limitedRegion, air, pack.getBiomeProvider()))); } } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java index f3235d65a..171b9e9eb 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java @@ -40,11 +40,11 @@ import com.dfsek.terra.bukkit.world.BukkitWorldProperties; public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper { private static final Logger LOGGER = LoggerFactory.getLogger(BukkitChunkGeneratorWrapper.class); private final BlockState air; + private final BukkitBlockPopulator blockPopulator; private ChunkGenerator delegate; private ConfigPack pack; - private final BukkitBlockPopulator blockPopulator; - + public BukkitChunkGeneratorWrapper(ChunkGenerator delegate, ConfigPack pack, BlockState air) { this.delegate = delegate; this.pack = pack; @@ -87,7 +87,7 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener public boolean shouldGenerateMobs() { return true; } - + @Override public boolean shouldGenerateStructures() { return true; @@ -107,7 +107,7 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener return delegate; } - + private record SeededVector(int x, int z, WorldProperties worldProperties) { @Override public boolean equals(Object obj) { @@ -116,7 +116,7 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener } return false; } - + @Override public int hashCode() { int code = x; diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java index 563a3b66e..e292fb0f2 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java @@ -56,7 +56,8 @@ public class BukkitWorldHandle implements WorldHandle { return new BukkitEntityType(switch(entityID) { case "END_CRYSTAL" -> org.bukkit.entity.EntityType.ENDER_CRYSTAL; - case "ENDER_CRYSTAL" -> throw new IllegalArgumentException("Invalid entity identifier " + id); // make sure this issue can't happen the other way around. + case "ENDER_CRYSTAL" -> throw new IllegalArgumentException( + "Invalid entity identifier " + id); // make sure this issue can't happen the other way around. default -> org.bukkit.entity.EntityType.valueOf(entityID); }); } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java index d634eedba..dfe81ca06 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java @@ -52,7 +52,7 @@ public class BukkitProtoWorld implements ProtoWorld { BlockData bukkitData = BukkitAdapter.adapt(data); delegate.setBlockData(x, y, z, bukkitData); if(physics) { - if (BukkitUtils.isLiquid(bukkitData)) { + if(BukkitUtils.isLiquid(bukkitData)) { delegate.scheduleFluidUpdate(x, y, z); } else { delegate.scheduleBlockUpdate(x, y, z); diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/AwfulBukkitHacks.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/AwfulBukkitHacks.java index e125ffb68..02ac1b5c8 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/AwfulBukkitHacks.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/AwfulBukkitHacks.java @@ -91,7 +91,7 @@ public class AwfulBukkitHacks { ": " + vanilla.tags() .toList()); - + vanilla.tags() .forEach( tag -> collect diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeInjector.java index 6271e4632..1e8245b4c 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeInjector.java @@ -33,28 +33,28 @@ public class NMSBiomeInjector { .generationSettings(vanilla.getGenerationSettings()) .temperature(vanilla.getBaseTemperature()) .downfall(vanilla.getDownfall()); - + BiomeSpecialEffects.Builder effects = new BiomeSpecialEffects.Builder(); - + effects.grassColorModifier(vanilla.getSpecialEffects().getGrassColorModifier()); - + VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); - + effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); - + if(vanillaBiomeProperties.getFoliageColor() == null) { vanilla.getSpecialEffects().getFoliageColorOverride().ifPresent(effects::foliageColorOverride); } else { effects.foliageColorOverride(vanillaBiomeProperties.getFoliageColor()); } - + if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); } else { @@ -66,7 +66,7 @@ public class NMSBiomeInjector { vanilla.getAmbientMood().ifPresent(effects::ambientMoodSound); vanilla.getBackgroundMusic().ifPresent(effects::backgroundMusic); vanilla.getAmbientParticle().ifPresent(effects::ambientParticle); - + builder.specialEffects(effects.build()); return builder.build(); // build() diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/Reflection.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/Reflection.java index 9e226cb8d..793637395 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/Reflection.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/Reflection.java @@ -22,14 +22,14 @@ public class Reflection { BIOME = reflectionProxyFactory.reflectionProxy(BiomeProxy.class); } - + @Proxies(MappedRegistry.class) public interface MappedRegistryProxy { @FieldSetter("frozen") void setFrozen(MappedRegistry instance, boolean frozen); } - + @Proxies(Biome.class) public interface BiomeProxy { @FieldGetter("biomeCategory") diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/AwfulBukkitHacks.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/AwfulBukkitHacks.java index 3bce51cdd..d4f934f36 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/AwfulBukkitHacks.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/AwfulBukkitHacks.java @@ -92,7 +92,7 @@ public class AwfulBukkitHacks { ": " + vanilla.tags() .toList()); - + vanilla.tags() .forEach( tag -> collect diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java index 8a5d56c35..61acffc74 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java @@ -15,7 +15,7 @@ import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; public class NMSBiomeInjector { - + public static Optional> getEntry(Registry registry, ResourceLocation identifier) { return registry.getOptional(identifier) .flatMap(registry::getResourceKey) @@ -41,11 +41,11 @@ public class NMSBiomeInjector { VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); if(vanillaBiomeProperties.getFoliageColor() == null) { diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java index ea8b2267d..5eecb9325 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java @@ -112,15 +112,16 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @NotNull RandomState noiseConfig, @NotNull StructureManager structureAccessor, @NotNull ChunkAccess chunk) { return vanilla.fillFromNoise(executor, blender, noiseConfig, structureAccessor, chunk) - .thenApply(c -> { - LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); - BiomeProvider biomeProvider = pack.getBiomeProvider(); - PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); - if(compatibilityOptions.isBeard()) { - beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), biomeProvider, compatibilityOptions); - } - return c; - }); + .thenApply(c -> { + LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); + BiomeProvider biomeProvider = pack.getBiomeProvider(); + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); + if(compatibilityOptions.isBeard()) { + beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), + biomeProvider, compatibilityOptions); + } + return c; + }); } private void beard(StructureManager structureAccessor, ChunkAccess chunk, WorldProperties world, BiomeProvider biomeProvider, @@ -187,10 +188,10 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { */ return vanilla.getBaseColumn(x, z, world, noiseConfig); } - + @Override public void addDebugScreenInfo(@NotNull List text, @NotNull RandomState noiseConfig, @NotNull BlockPos pos) { - + } @Override @@ -231,7 +232,7 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { } }); } - + private List generateRingPositions(StructureSet holder, RandomState randomstate, ConcentricRingsStructurePlacement concentricringsstructureplacement) { // Spigot if(concentricringsstructureplacement.count() == 0) { diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/Reflection.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/Reflection.java index b704952d5..58062c5a5 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/Reflection.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/Reflection.java @@ -30,6 +30,7 @@ public class Reflection { void setFrozen(MappedRegistry instance, boolean frozen); } + @Proxies(StructureManager.class) public interface StructureManagerProxy { @FieldGetter("level") diff --git a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeInjector.java index efcdf004a..7067437dd 100644 --- a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeInjector.java @@ -15,7 +15,7 @@ import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; public class NMSBiomeInjector { - + public static Optional> getEntry(Registry registry, ResourceLocation identifier) { return registry.getOptional(identifier) .flatMap(registry::getResourceKey) @@ -41,11 +41,11 @@ public class NMSBiomeInjector { VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); if(vanillaBiomeProperties.getFoliageColor() == null) { diff --git a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeProvider.java index e7b09426d..7c3820aad 100644 --- a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSBiomeProvider.java @@ -21,8 +21,8 @@ public class NMSBiomeProvider extends BiomeSource { super(delegate.stream() .map(biome -> RegistryFetcher.biomeRegistry() .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() - .get(NMSBiomeInfo.class) - .biomeKey()))); + .get(NMSBiomeInfo.class) + .biomeKey()))); this.delegate = delegate; this.seed = seed; } diff --git a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSChunkGeneratorDelegate.java index 5faa4ba4b..b057b808a 100644 --- a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSChunkGeneratorDelegate.java @@ -90,15 +90,16 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @NotNull RandomState noiseConfig, @NotNull StructureManager structureAccessor, @NotNull ChunkAccess chunk) { return vanilla.fillFromNoise(executor, blender, noiseConfig, structureAccessor, chunk) - .thenApply(c -> { - LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); - BiomeProvider biomeProvider = pack.getBiomeProvider(); - PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); - if(compatibilityOptions.isBeard()) { - beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), biomeProvider, compatibilityOptions); - } - return c; - }); + .thenApply(c -> { + LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); + BiomeProvider biomeProvider = pack.getBiomeProvider(); + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); + if(compatibilityOptions.isBeard()) { + beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), + biomeProvider, compatibilityOptions); + } + return c; + }); } private void beard(StructureManager structureAccessor, ChunkAccess chunk, WorldProperties world, BiomeProvider biomeProvider, @@ -165,9 +166,9 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { */ return vanilla.getBaseColumn(x, z, world, noiseConfig); } - + @Override public void addDebugScreenInfo(@NotNull List text, @NotNull RandomState noiseConfig, @NotNull BlockPos pos) { - + } } diff --git a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSInjectListener.java b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSInjectListener.java index 015de732e..b805bfd61 100644 --- a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/NMSInjectListener.java @@ -37,7 +37,7 @@ public class NMSInjectListener implements Listener { ChunkGenerator vanilla = serverWorld.getChunkSource().getGenerator(); NMSBiomeProvider provider = new NMSBiomeProvider(pack.getBiomeProvider(), craftWorld.getSeed()); - + serverWorld.getChunkSource().chunkMap.generator = new NMSChunkGeneratorDelegate(vanilla, pack, provider, craftWorld.getSeed()); LOGGER.info("Successfully injected into world."); diff --git a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/Reflection.java b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/Reflection.java index 11236d132..fd602468e 100644 --- a/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/Reflection.java +++ b/platforms/bukkit/nms/v1_19_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R2/Reflection.java @@ -36,12 +36,14 @@ public class Reflection { void setFrozen(MappedRegistry instance, boolean frozen); } + @Proxies(StructureManager.class) public interface StructureManagerProxy { @FieldGetter("level") LevelAccessor getLevel(StructureManager instance); } + @Proxies(Holder.Reference.class) public interface ReferenceProxy { @MethodName("bindValue") diff --git a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeInjector.java index 2c328f26d..71c81d511 100644 --- a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeInjector.java @@ -13,63 +13,64 @@ import java.util.Optional; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; -public class NMSBiomeInjector { +public class NMSBiomeInjector { + public static Optional> getEntry(Registry registry, ResourceLocation identifier) { return registry.getOptional(identifier) .flatMap(registry::getResourceKey) .flatMap(registry::getHolder); } - + public static Biome createBiome(com.dfsek.terra.api.world.biome.Biome biome, Biome vanilla) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { Biome.BiomeBuilder builder = new Biome.BiomeBuilder(); - + builder .downfall(vanilla.climateSettings.downfall()) .temperature(vanilla.getBaseTemperature()) .mobSpawnSettings(vanilla.getMobSettings()) .generationSettings(vanilla.getGenerationSettings()); - - + + BiomeSpecialEffects.Builder effects = new BiomeSpecialEffects.Builder(); - + effects.grassColorModifier(vanilla.getSpecialEffects().getGrassColorModifier()); - + VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); - + effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); - + if(vanillaBiomeProperties.getFoliageColor() == null) { vanilla.getSpecialEffects().getFoliageColorOverride().ifPresent(effects::foliageColorOverride); } else { effects.foliageColorOverride(vanillaBiomeProperties.getFoliageColor()); } - + if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); } else { // grass effects.grassColorOverride(vanillaBiomeProperties.getGrassColor()); } - + vanilla.getAmbientLoop().ifPresent(effects::ambientLoopSound); vanilla.getAmbientAdditions().ifPresent(effects::ambientAdditionsSound); vanilla.getAmbientMood().ifPresent(effects::ambientMoodSound); vanilla.getBackgroundMusic().ifPresent(effects::backgroundMusic); vanilla.getAmbientParticle().ifPresent(effects::ambientParticle); - + builder.specialEffects(effects.build()); - + return builder.build(); } - + public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) { return pack.getID() .toLowerCase() + "/" + biomeID.getNamespace().toLowerCase(Locale.ROOT) + "/" + biomeID.getID().toLowerCase(Locale.ROOT); diff --git a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeProvider.java index 3040d1956..60a82f58e 100644 --- a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSBiomeProvider.java @@ -18,26 +18,27 @@ public class NMSBiomeProvider extends BiomeSource { private final BiomeProvider delegate; private final long seed; private final Registry biomeRegistry = RegistryFetcher.biomeRegistry(); - + public NMSBiomeProvider(BiomeProvider delegate, long seed) { super(); this.delegate = delegate; this.seed = seed; } + @Override protected Stream> collectPossibleBiomes() { - return delegate.stream() - .map(biome -> RegistryFetcher.biomeRegistry() - .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() - .get(NMSBiomeInfo.class) - .biomeKey())); + return delegate.stream() + .map(biome -> RegistryFetcher.biomeRegistry() + .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() + .get(NMSBiomeInfo.class) + .biomeKey())); } - + @Override protected @NotNull Codec codec() { return BiomeSource.CODEC; } - + @Override public @NotNull Holder getNoiseBiome(int x, int y, int z, @NotNull Sampler sampler) { return biomeRegistry.getHolderOrThrow(((BukkitPlatformBiome) delegate.getBiome(x << 2, y << 2, z << 2, seed) diff --git a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSChunkGeneratorDelegate.java index e977a2855..97eba7114 100644 --- a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSChunkGeneratorDelegate.java @@ -91,15 +91,16 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @NotNull RandomState noiseConfig, @NotNull StructureManager structureAccessor, @NotNull ChunkAccess chunk) { return vanilla.fillFromNoise(executor, blender, noiseConfig, structureAccessor, chunk) - .thenApply(c -> { - LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); - BiomeProvider biomeProvider = pack.getBiomeProvider(); - PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); - if(compatibilityOptions.isBeard()) { - beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), biomeProvider, compatibilityOptions); - } - return c; - }); + .thenApply(c -> { + LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); + BiomeProvider biomeProvider = pack.getBiomeProvider(); + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); + if(compatibilityOptions.isBeard()) { + beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), + biomeProvider, compatibilityOptions); + } + return c; + }); } private void beard(StructureManager structureAccessor, ChunkAccess chunk, WorldProperties world, BiomeProvider biomeProvider, @@ -162,9 +163,9 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { } return new NoiseColumn(getMinY(), array); } - + @Override public void addDebugScreenInfo(@NotNull List text, @NotNull RandomState noiseConfig, @NotNull BlockPos pos) { - + } } diff --git a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSInjectListener.java b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSInjectListener.java index 46b479860..2b8383b3d 100644 --- a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/NMSInjectListener.java @@ -37,7 +37,7 @@ public class NMSInjectListener implements Listener { ChunkGenerator vanilla = serverWorld.getChunkSource().getGenerator(); NMSBiomeProvider provider = new NMSBiomeProvider(pack.getBiomeProvider(), craftWorld.getSeed()); - + serverWorld.getChunkSource().chunkMap.generator = new NMSChunkGeneratorDelegate(vanilla, pack, provider, craftWorld.getSeed()); LOGGER.info("Successfully injected into world."); diff --git a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/Reflection.java b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/Reflection.java index beb2c1e75..c0c9136ae 100644 --- a/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/Reflection.java +++ b/platforms/bukkit/nms/v1_19_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R3/Reflection.java @@ -36,12 +36,14 @@ public class Reflection { void setFrozen(MappedRegistry instance, boolean frozen); } + @Proxies(StructureManager.class) public interface StructureManagerProxy { @FieldGetter("level") LevelAccessor getLevel(StructureManager instance); } + @Proxies(Holder.Reference.class) public interface ReferenceProxy { @MethodName("bindValue") diff --git a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeInjector.java index 36d43b0ec..a0245f021 100644 --- a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeInjector.java @@ -13,63 +13,64 @@ import java.util.Optional; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; -public class NMSBiomeInjector { +public class NMSBiomeInjector { + public static Optional> getEntry(Registry registry, ResourceLocation identifier) { return registry.getOptional(identifier) .flatMap(registry::getResourceKey) .flatMap(registry::getHolder); } - + public static Biome createBiome(com.dfsek.terra.api.world.biome.Biome biome, Biome vanilla) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { Biome.BiomeBuilder builder = new Biome.BiomeBuilder(); - + builder .downfall(vanilla.climateSettings.downfall()) .temperature(vanilla.getBaseTemperature()) .mobSpawnSettings(vanilla.getMobSettings()) .generationSettings(vanilla.getGenerationSettings()); - - + + BiomeSpecialEffects.Builder effects = new BiomeSpecialEffects.Builder(); - + effects.grassColorModifier(vanilla.getSpecialEffects().getGrassColorModifier()); - + VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); - + effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); - + if(vanillaBiomeProperties.getFoliageColor() == null) { vanilla.getSpecialEffects().getFoliageColorOverride().ifPresent(effects::foliageColorOverride); } else { effects.foliageColorOverride(vanillaBiomeProperties.getFoliageColor()); } - + if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); } else { // grass effects.grassColorOverride(vanillaBiomeProperties.getGrassColor()); } - + vanilla.getAmbientLoop().ifPresent(effects::ambientLoopSound); vanilla.getAmbientAdditions().ifPresent(effects::ambientAdditionsSound); vanilla.getAmbientMood().ifPresent(effects::ambientMoodSound); vanilla.getBackgroundMusic().ifPresent(effects::backgroundMusic); vanilla.getAmbientParticle().ifPresent(effects::ambientParticle); - + builder.specialEffects(effects.build()); - + return builder.build(); } - + public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) { return pack.getID() .toLowerCase() + "/" + biomeID.getNamespace().toLowerCase(Locale.ROOT) + "/" + biomeID.getID().toLowerCase(Locale.ROOT); diff --git a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeProvider.java index 4f0cbea1a..17902f30c 100644 --- a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSBiomeProvider.java @@ -18,26 +18,27 @@ public class NMSBiomeProvider extends BiomeSource { private final BiomeProvider delegate; private final long seed; private final Registry biomeRegistry = RegistryFetcher.biomeRegistry(); - + public NMSBiomeProvider(BiomeProvider delegate, long seed) { super(); this.delegate = delegate; this.seed = seed; } + @Override protected Stream> collectPossibleBiomes() { - return delegate.stream() - .map(biome -> RegistryFetcher.biomeRegistry() - .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() - .get(NMSBiomeInfo.class) - .biomeKey())); + return delegate.stream() + .map(biome -> RegistryFetcher.biomeRegistry() + .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() + .get(NMSBiomeInfo.class) + .biomeKey())); } - + @Override protected @NotNull Codec codec() { return BiomeSource.CODEC; } - + @Override public @NotNull Holder getNoiseBiome(int x, int y, int z, @NotNull Sampler sampler) { return biomeRegistry.getHolderOrThrow(((BukkitPlatformBiome) delegate.getBiome(x << 2, y << 2, z << 2, seed) diff --git a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSChunkGeneratorDelegate.java index f0e929a5b..f140e2528 100644 --- a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSChunkGeneratorDelegate.java @@ -91,15 +91,16 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @NotNull RandomState noiseConfig, @NotNull StructureManager structureAccessor, @NotNull ChunkAccess chunk) { return vanilla.fillFromNoise(executor, blender, noiseConfig, structureAccessor, chunk) - .thenApply(c -> { - LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); - BiomeProvider biomeProvider = pack.getBiomeProvider(); - PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); - if(compatibilityOptions.isBeard()) { - beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), biomeProvider, compatibilityOptions); - } - return c; - }); + .thenApply(c -> { + LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); + BiomeProvider biomeProvider = pack.getBiomeProvider(); + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); + if(compatibilityOptions.isBeard()) { + beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), + biomeProvider, compatibilityOptions); + } + return c; + }); } private void beard(StructureManager structureAccessor, ChunkAccess chunk, WorldProperties world, BiomeProvider biomeProvider, @@ -162,9 +163,9 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { } return new NoiseColumn(getMinY(), array); } - + @Override public void addDebugScreenInfo(@NotNull List text, @NotNull RandomState noiseConfig, @NotNull BlockPos pos) { - + } } diff --git a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSInjectListener.java b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSInjectListener.java index 3b2fbb0f8..2d83d6c1b 100644 --- a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/NMSInjectListener.java @@ -37,7 +37,7 @@ public class NMSInjectListener implements Listener { ChunkGenerator vanilla = serverWorld.getChunkSource().getGenerator(); NMSBiomeProvider provider = new NMSBiomeProvider(pack.getBiomeProvider(), craftWorld.getSeed()); - + serverWorld.getChunkSource().chunkMap.generator = new NMSChunkGeneratorDelegate(vanilla, pack, provider, craftWorld.getSeed()); LOGGER.info("Successfully injected into world."); diff --git a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/Reflection.java b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/Reflection.java index 6197e6e01..f3f17b085 100644 --- a/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/Reflection.java +++ b/platforms/bukkit/nms/v1_20_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R1/Reflection.java @@ -36,12 +36,14 @@ public class Reflection { void setFrozen(MappedRegistry instance, boolean frozen); } + @Proxies(StructureManager.class) public interface StructureManagerProxy { @FieldGetter("level") LevelAccessor getLevel(StructureManager instance); } + @Proxies(Holder.Reference.class) public interface ReferenceProxy { @MethodName("bindValue") diff --git a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeInjector.java index 3db3fcd25..a4972ce3f 100644 --- a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeInjector.java @@ -15,62 +15,62 @@ import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; public class NMSBiomeInjector { - + public static Optional> getEntry(Registry registry, ResourceLocation identifier) { return registry.getOptional(identifier) .flatMap(registry::getResourceKey) .flatMap(registry::getHolder); } - + public static Biome createBiome(com.dfsek.terra.api.world.biome.Biome biome, Biome vanilla) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { Biome.BiomeBuilder builder = new Biome.BiomeBuilder(); - + builder .downfall(vanilla.climateSettings.downfall()) .temperature(vanilla.getBaseTemperature()) .mobSpawnSettings(vanilla.getMobSettings()) .generationSettings(vanilla.getGenerationSettings()); - - + + BiomeSpecialEffects.Builder effects = new BiomeSpecialEffects.Builder(); - + effects.grassColorModifier(vanilla.getSpecialEffects().getGrassColorModifier()); - + VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); - + effects.fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - + .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())); - + if(vanillaBiomeProperties.getFoliageColor() == null) { vanilla.getSpecialEffects().getFoliageColorOverride().ifPresent(effects::foliageColorOverride); } else { effects.foliageColorOverride(vanillaBiomeProperties.getFoliageColor()); } - + if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); } else { // grass effects.grassColorOverride(vanillaBiomeProperties.getGrassColor()); } - + vanilla.getAmbientLoop().ifPresent(effects::ambientLoopSound); vanilla.getAmbientAdditions().ifPresent(effects::ambientAdditionsSound); vanilla.getAmbientMood().ifPresent(effects::ambientMoodSound); vanilla.getBackgroundMusic().ifPresent(effects::backgroundMusic); vanilla.getAmbientParticle().ifPresent(effects::ambientParticle); - + builder.specialEffects(effects.build()); - + return builder.build(); } - + public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) { return pack.getID() .toLowerCase() + "/" + biomeID.getNamespace().toLowerCase(Locale.ROOT) + "/" + biomeID.getID().toLowerCase(Locale.ROOT); diff --git a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeProvider.java index bba17a5f8..baac766e4 100644 --- a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSBiomeProvider.java @@ -18,26 +18,27 @@ public class NMSBiomeProvider extends BiomeSource { private final BiomeProvider delegate; private final long seed; private final Registry biomeRegistry = RegistryFetcher.biomeRegistry(); - + public NMSBiomeProvider(BiomeProvider delegate, long seed) { super(); this.delegate = delegate; this.seed = seed; } + @Override protected Stream> collectPossibleBiomes() { - return delegate.stream() - .map(biome -> RegistryFetcher.biomeRegistry() - .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() - .get(NMSBiomeInfo.class) - .biomeKey())); + return delegate.stream() + .map(biome -> RegistryFetcher.biomeRegistry() + .getHolderOrThrow(((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() + .get(NMSBiomeInfo.class) + .biomeKey())); } - + @Override protected @NotNull Codec codec() { return BiomeSource.CODEC; } - + @Override public @NotNull Holder getNoiseBiome(int x, int y, int z, @NotNull Sampler sampler) { return biomeRegistry.getHolderOrThrow(((BukkitPlatformBiome) delegate.getBiome(x << 2, y << 2, z << 2, seed) diff --git a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSChunkGeneratorDelegate.java index 7b10e9418..a10376900 100644 --- a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSChunkGeneratorDelegate.java @@ -91,15 +91,16 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { @NotNull RandomState noiseConfig, @NotNull StructureManager structureAccessor, @NotNull ChunkAccess chunk) { return vanilla.fillFromNoise(executor, blender, noiseConfig, structureAccessor, chunk) - .thenApply(c -> { - LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); - BiomeProvider biomeProvider = pack.getBiomeProvider(); - PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); - if(compatibilityOptions.isBeard()) { - beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), biomeProvider, compatibilityOptions); - } - return c; - }); + .thenApply(c -> { + LevelAccessor level = Reflection.STRUCTURE_MANAGER.getLevel(structureAccessor); + BiomeProvider biomeProvider = pack.getBiomeProvider(); + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); + if(compatibilityOptions.isBeard()) { + beard(structureAccessor, chunk, new BukkitWorldProperties(level.getMinecraftWorld().getWorld()), + biomeProvider, compatibilityOptions); + } + return c; + }); } private void beard(StructureManager structureAccessor, ChunkAccess chunk, WorldProperties world, BiomeProvider biomeProvider, @@ -162,9 +163,9 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { } return new NoiseColumn(getMinY(), array); } - + @Override public void addDebugScreenInfo(@NotNull List text, @NotNull RandomState noiseConfig, @NotNull BlockPos pos) { - + } } diff --git a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSInjectListener.java b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSInjectListener.java index 7fd566251..b3dd2c7d4 100644 --- a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/NMSInjectListener.java @@ -37,7 +37,7 @@ public class NMSInjectListener implements Listener { ChunkGenerator vanilla = serverWorld.getChunkSource().getGenerator(); NMSBiomeProvider provider = new NMSBiomeProvider(pack.getBiomeProvider(), craftWorld.getSeed()); - + serverWorld.getChunkSource().chunkMap.generator = new NMSChunkGeneratorDelegate(vanilla, pack, provider, craftWorld.getSeed()); LOGGER.info("Successfully injected into world."); diff --git a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/Reflection.java b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/Reflection.java index 15511b989..3432482d5 100644 --- a/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/Reflection.java +++ b/platforms/bukkit/nms/v1_20_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R2/Reflection.java @@ -36,12 +36,14 @@ public class Reflection { void setFrozen(MappedRegistry instance, boolean frozen); } + @Proxies(StructureManager.class) public interface StructureManagerProxy { @FieldGetter("level") LevelAccessor getLevel(StructureManager instance); } + @Proxies(Holder.Reference.class) public interface ReferenceProxy { @MethodName("bindValue") diff --git a/platforms/cli/build.gradle.kts b/platforms/cli/build.gradle.kts index 7e35aa714..9edd40c66 100644 --- a/platforms/cli/build.gradle.kts +++ b/platforms/cli/build.gradle.kts @@ -6,14 +6,14 @@ val javaMainClass = "com.dfsek.terra.cli.TerraCLI" dependencies { shadedApi(project(":common:implementation:base")) - + shadedApi("commons-io:commons-io:${Versions.Libraries.Internal.apacheIO}") shadedApi("com.github.Querz:NBT:${Versions.CLI.nbt}") - + shadedImplementation("com.google.guava:guava:${Versions.Libraries.Internal.guava}") - + shadedImplementation("ch.qos.logback:logback-classic:${Versions.CLI.logback}") - + } @@ -22,7 +22,7 @@ tasks.withType { manifest { attributes( "Main-Class" to javaMainClass, - ) + ) } } diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockState.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockState.java index 026f3dfc5..53cbc5e90 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockState.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockState.java @@ -16,9 +16,9 @@ public class CLIBlockState implements BlockState { public CLIBlockState(String value) { this.value = value; if(value.contains("[")) { - + } else { - + } this.isAir = value.startsWith("minecraft:air"); this.nbt = new CompoundTag(); diff --git a/platforms/fabric/build.gradle.kts b/platforms/fabric/build.gradle.kts index ef49ab714..b10031f49 100644 --- a/platforms/fabric/build.gradle.kts +++ b/platforms/fabric/build.gradle.kts @@ -11,39 +11,39 @@ architectury { dependencies { shadedApi(project(":common:implementation:base")) - + implementation(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } "developmentFabric"(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } shaded(project(path = ":platforms:mixin-common", configuration = "transformProductionFabric")) { isTransitive = false } implementation(project(path = ":platforms:mixin-lifecycle", configuration = "namedElements")) { isTransitive = false } "developmentFabric"(project(path = ":platforms:mixin-lifecycle", configuration = "namedElements")) { isTransitive = false } shaded(project(path = ":platforms:mixin-lifecycle", configuration = "transformProductionFabric")) { isTransitive = false } - - + + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") - + modImplementation("net.fabricmc:fabric-loader:${Versions.Mod.fabricLoader}") - + setOf( "fabric-lifecycle-events-v1", "fabric-resource-loader-v0", "fabric-api-base", "fabric-command-api-v2", "fabric-networking-api-v1" - ).forEach { apiModule -> + ).forEach { apiModule -> val module = fabricApi.module(apiModule, Versions.Fabric.fabricAPI) modImplementation(module) include(module) } - + modImplementation("cloud.commandframework", "cloud-fabric", Versions.Libraries.cloud) include("cloud.commandframework", "cloud-fabric", Versions.Libraries.cloud) } loom { accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) - + mixin { defaultRefmapName.set("terra.fabric.refmap.json") } @@ -57,7 +57,7 @@ tasks { compileJava { options.release.set(17) } - + remapJar { injectAccessWidener.set(true) inputFile.set(shadowJar.get().archiveFile) diff --git a/platforms/forge/build.gradle.kts b/platforms/forge/build.gradle.kts index 947879bb1..09d2dd73f 100644 --- a/platforms/forge/build.gradle.kts +++ b/platforms/forge/build.gradle.kts @@ -12,19 +12,19 @@ architectury { dependencies { annotationProcessor("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("dev.architectury:architectury-loom:${Versions.Mod.architecuryLoom}") - + shadedApi(project(":common:implementation:base")) "forgeRuntimeLibrary"(project(":common:implementation:base")) - + implementation(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } "developmentForge"(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } shaded(project(path = ":platforms:mixin-common", configuration = "transformProductionForge")) { isTransitive = false } - + forge(group = "net.minecraftforge", name = "forge", version = Versions.Forge.forge) - + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") - + //forge is not ok. compileOnly("org.burningwave:core:${Versions.Forge.burningwave}") "forgeRuntimeLibrary"("org.burningwave:core:${Versions.Forge.burningwave}") @@ -32,11 +32,11 @@ dependencies { loom { accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) - + mixin { defaultRefmapName.set("terra.forge.refmap.json") } - + // launches { // named("client") { // property("fabric.log.level", "info") @@ -47,7 +47,7 @@ loom { // property("mixin.env.disableRefMap", "true") // } // } - + forge { convertAccessWideners.set(true) mixinConfig("terra.common.mixins.json") @@ -66,11 +66,11 @@ tasks { mapOf( "Implementation-Title" to rootProject.name, "Implementation-Version" to project.version, - ) - ) + ) + ) } } - + remapJar { inputFile.set(shadowJar.get().archiveFile) archiveFileName.set("${rootProject.name.capitalize()}-forge-${project.version}.jar") diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java index 07f4dafc9..f37e5b1ee 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java @@ -122,14 +122,14 @@ public final class AwfulForgeHacks { .getLocation() .toURI() .getPath(); - + cl.addURL(new URL("jar:file:" + pathToJar + "!/")); Class newClassLoad = Class.forName(name, true, cl); omegaCL.loadOrDefine(newClassLoad, AbstractPlatform.class.getClassLoader()); } catch(ClassNotFoundException | URISyntaxException | IOException ex) { throw new RuntimeException(ex); } - + } }); } catch(IOException e) { diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/mixin/lifecycle/NoiseConfigMixin.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/mixin/lifecycle/NoiseConfigMixin.java index 8fe83f721..c18791cb8 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/mixin/lifecycle/NoiseConfigMixin.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/mixin/lifecycle/NoiseConfigMixin.java @@ -26,7 +26,8 @@ public class NoiseConfigMixin { @Inject(method = "(Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;Lnet/minecraft/registry/RegistryEntryLookup;J)V", at = @At("TAIL")) - private void mapMultiNoise(ChunkGeneratorSettings chunkGeneratorSettings, RegistryEntryLookup noiseParametersLookup, long seed, + private void mapMultiNoise(ChunkGeneratorSettings chunkGeneratorSettings, RegistryEntryLookup noiseParametersLookup, + long seed, CallbackInfo ci) { SeedHack.register(multiNoiseSampler, seed); } diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/BiomeUtil.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/util/BiomeUtil.java index 9c14f7d1a..6114714b9 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/util/BiomeUtil.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/util/BiomeUtil.java @@ -61,7 +61,8 @@ public final class BiomeUtil { VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); net.minecraft.world.biome.Biome minecraftBiome = MinecraftUtil.createBiome(biome, - ForgeRegistries.BIOMES.getDelegateOrThrow(vanilla.getKey().orElseThrow()) + ForgeRegistries.BIOMES.getDelegateOrThrow( + vanilla.getKey().orElseThrow()) .value(), vanillaBiomeProperties); @@ -82,7 +83,8 @@ public final class BiomeUtil { Objects.requireNonNullElse(vanillaBiomeProperties.getVillagerType(), villagerMap.getOrDefault(vanilla.getKey().orElseThrow(), VillagerType.PLAINS))); - MinecraftUtil.TERRA_BIOME_MAP.computeIfAbsent(vanilla.getKey().orElseThrow().getValue(), i -> new ArrayList<>()).add(identifier); + MinecraftUtil.TERRA_BIOME_MAP.computeIfAbsent(vanilla.getKey().orElseThrow().getValue(), i -> new ArrayList<>()).add( + identifier); } } } diff --git a/platforms/merged/build.gradle.kts b/platforms/merged/build.gradle.kts index 2683bd74d..ec9e56f87 100644 --- a/platforms/merged/build.gradle.kts +++ b/platforms/merged/build.gradle.kts @@ -1,6 +1,6 @@ val platformOverrides = mapOf( "fabric" to "remapJar" - ) +) dependencies { api(project(":common:implementation:base")) @@ -24,7 +24,7 @@ tasks["processResources"].dependsOn(dump) afterEvaluate { project(":platforms").subprojects.forEach { if (it == this@afterEvaluate) return@forEach - + val taskName = platformOverrides.getOrDefault(it.name, "jar") val task = it.tasks.named(taskName).get() if (task !is AbstractArchiveTask) { diff --git a/platforms/mixin-common/build.gradle.kts b/platforms/mixin-common/build.gradle.kts index fb73717b1..e8ff5dc7f 100644 --- a/platforms/mixin-common/build.gradle.kts +++ b/platforms/mixin-common/build.gradle.kts @@ -6,7 +6,7 @@ plugins { loom { accessWidenerPath.set(file("src/main/resources/terra.accesswidener")) - + mixin { defaultRefmapName.set("terra.common.refmap.json") } @@ -14,11 +14,11 @@ loom { dependencies { shadedApi(project(":common:implementation:base")) - + compileOnly("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("dev.architectury:architectury-loom:${Versions.Mod.architecuryLoom}") - + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 760277606..29cc8fed6 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -56,7 +56,7 @@ import com.dfsek.terra.mod.util.PresetUtil; public abstract class ModPlatform extends AbstractPlatform { private final ItemHandle itemHandle = new MinecraftItemHandle(); private final WorldHandle worldHandle = new MinecraftWorldHandle(); - + public abstract MinecraftServer getServer(); public void registerWorldTypes(BiConsumer registerFunction) { @@ -110,8 +110,11 @@ public abstract class ModPlatform extends AbstractPlatform { protected abstract BaseAddon getPlatformAddon(); public abstract Registry dimensionTypeRegistry(); + public abstract Registry biomeRegistry(); + public abstract Registry chunkGeneratorSettingsRegistry(); + public abstract Registry multiNoiseBiomeSourceParameterListRegistry(); @Override diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeParticleConfigTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeParticleConfigTemplate.java index a48ec5c54..7139031d2 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeParticleConfigTemplate.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeParticleConfigTemplate.java @@ -26,7 +26,9 @@ public class BiomeParticleConfigTemplate implements ObjectTemplate TERRA_BIOME_SOURCE = RecordCodecBuilder .create(instance -> instance.group( - CONFIG_PACK.fieldOf("pack") - .stable() - .forGetter(TerraBiomeSource::getPack)) + CONFIG_PACK.fieldOf("pack") + .stable() + .forGetter(TerraBiomeSource::getPack)) .apply(instance, instance.stable(TerraBiomeSource::new))); public static final Codec MINECRAFT_CHUNK_GENERATOR_WRAPPER = RecordCodecBuilder diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java index fd1ee7cf9..fc1e0f54c 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java @@ -129,7 +129,8 @@ public class MinecraftChunkGeneratorWrapper extends net.minecraft.world.gen.chun private void beard(StructureAccessor structureAccessor, Chunk chunk, WorldProperties world, BiomeProvider biomeProvider, PreLoadCompatibilityOptions compatibilityOptions) { - StructureWeightSampler structureWeightSampler = StructureWeightSampler.createStructureWeightSampler(structureAccessor, chunk.getPos()); + StructureWeightSampler structureWeightSampler = StructureWeightSampler.createStructureWeightSampler(structureAccessor, + chunk.getPos()); double threshold = compatibilityOptions.getBeardThreshold(); double airThreshold = compatibilityOptions.getAirThreshold(); int xi = chunk.getPos().x << 4; diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java index 4bd2866ae..3e5404776 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java @@ -63,9 +63,9 @@ public class TerraBiomeSource extends BiomeSource { @Override public RegistryEntry getBiome(int biomeX, int biomeY, int biomeZ, MultiNoiseSampler noiseSampler) { return ((ProtoPlatformBiome) pack - .getBiomeProvider() - .getBiome(biomeX << 2, biomeY << 2, biomeZ << 2, SeedHack.getSeed(noiseSampler)) - .getPlatformBiome()).getDelegate(); + .getBiomeProvider() + .getBiome(biomeX << 2, biomeY << 2, biomeZ << 2, SeedHack.getSeed(noiseSampler)) + .getPlatformBiome()).getDelegate(); } public BiomeProvider getProvider() { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/handle/MinecraftWorldHandle.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/handle/MinecraftWorldHandle.java index ba84f3129..c48ab6244 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/handle/MinecraftWorldHandle.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/handle/MinecraftWorldHandle.java @@ -36,7 +36,8 @@ public class MinecraftWorldHandle implements WorldHandle { @Override public @NotNull BlockState createBlockState(@NotNull String data) { try { - net.minecraft.block.BlockState state = BlockArgumentParser.block(Registries.BLOCK.getReadOnlyWrapper(), data, true).blockState(); + net.minecraft.block.BlockState state = BlockArgumentParser.block(Registries.BLOCK.getReadOnlyWrapper(), data, true) + .blockState(); if(state == null) throw new IllegalArgumentException("Invalid data: " + data); return (BlockState) state; } catch(CommandSyntaxException e) { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/entity/MobSpawnerBlockEntityMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/entity/MobSpawnerBlockEntityMixin.java index 7f8a6850b..43a0d8a39 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/entity/MobSpawnerBlockEntityMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/entity/MobSpawnerBlockEntityMixin.java @@ -66,7 +66,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setDelay(int delay) { - + } public int terra$getMinSpawnDelay() { @@ -74,7 +74,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMinSpawnDelay(int delay) { - + } public int terra$getMaxSpawnDelay() { @@ -82,7 +82,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMaxSpawnDelay(int delay) { - + } public int terra$getSpawnCount() { @@ -90,7 +90,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setSpawnCount(int spawnCount) { - + } public int terra$getMaxNearbyEntities() { @@ -98,7 +98,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMaxNearbyEntities(int maxNearbyEntities) { - + } public int terra$getRequiredPlayerRange() { @@ -106,7 +106,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setRequiredPlayerRange(int requiredPlayerRange) { - + } public int terra$getSpawnRange() { @@ -114,7 +114,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setSpawnRange(int spawnRange) { - + } public void terra$applyState(String state) { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/WorldChunkMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/WorldChunkMixin.java index 0cc130471..54c89c1ec 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/WorldChunkMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/WorldChunkMixin.java @@ -55,9 +55,9 @@ public abstract class WorldChunkMixin { public void terra$setBlock(int x, int y, int z, BlockState data, boolean physics) { BlockPos blockPos = new BlockPos(x, y, z); setBlockState(blockPos, (net.minecraft.block.BlockState) data, false); - if (physics) { + if(physics) { net.minecraft.block.BlockState state = ((net.minecraft.block.BlockState) data); - if (state.isLiquid()) { + if(state.isLiquid()) { world.getFluidTickScheduler().scheduleTick(OrderedTick.create(state.getFluidState().getFluid(), blockPos)); } else { world.getBlockTickScheduler().scheduleTick(OrderedTick.create(state.getBlock(), blockPos)); diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java index 2470f139f..de0b9b841 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java @@ -158,7 +158,8 @@ public final class MinecraftUtil { builder.temperature(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperature(), vanilla.getTemperature())); - builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), ((BiomeAccessor) ((Object) vanilla)).getWeather().downfall())); + builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), + ((BiomeAccessor) ((Object) vanilla)).getWeather().downfall())); builder.temperatureModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperatureModifier(), ((BiomeAccessor) ((Object) vanilla)).getWeather().temperatureModifier())); diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java index fb061b67d..006fbc004 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java @@ -51,27 +51,35 @@ public class PresetUtil { PRESETS.add(generatorID); RegistryEntry registryEntry = dimensionTypeRegistry.getEntry(DimensionTypes.THE_NETHER).orElseThrow(); - RegistryEntry.Reference reference = multiNoiseBiomeSourceParameterLists.getEntry(MultiNoiseBiomeSourceParameterLists.NETHER).orElseThrow(); - RegistryEntry registryEntry2 = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.NETHER).orElseThrow(); + RegistryEntry.Reference reference = multiNoiseBiomeSourceParameterLists.getEntry( + MultiNoiseBiomeSourceParameterLists.NETHER).orElseThrow(); + RegistryEntry registryEntry2 = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.NETHER) + .orElseThrow(); RegistryEntry registryEntry3 = dimensionTypeRegistry.getEntry(DimensionTypes.THE_END).orElseThrow(); - RegistryEntry registryEntry4 = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.END).orElseThrow(); + RegistryEntry registryEntry4 = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.END) + .orElseThrow(); TerraBiomeSource biomeSource = new TerraBiomeSource(pack); ChunkGenerator generator = new MinecraftChunkGeneratorWrapper(biomeSource, pack, overworld); DimensionOptions dimensionOptions = new DimensionOptions(overworldDimensionType, generator); - DimensionOptions netherDimensionOptions = new DimensionOptions(registryEntry, new NoiseChunkGenerator(MultiNoiseBiomeSource.create(reference), registryEntry2)); - DimensionOptions endDimensionOptions = new DimensionOptions(registryEntry3, new NoiseChunkGenerator(TheEndBiomeSource.createVanilla(platform.biomeRegistry().getReadOnlyWrapper()), registryEntry4)); + DimensionOptions netherDimensionOptions = new DimensionOptions(registryEntry, + new NoiseChunkGenerator(MultiNoiseBiomeSource.create(reference), + registryEntry2)); + DimensionOptions endDimensionOptions = new DimensionOptions(registryEntry3, new NoiseChunkGenerator( + TheEndBiomeSource.createVanilla(platform.biomeRegistry().getReadOnlyWrapper()), registryEntry4)); WorldPreset preset = createPreset(dimensionOptions, netherDimensionOptions, endDimensionOptions); LOGGER.info("Created world type \"{}\"", generatorID); return Pair.of(generatorID, preset); } - private static WorldPreset createPreset(DimensionOptions dimensionOptions, DimensionOptions netherDimensionOptions, DimensionOptions endDimensionOptions) { + private static WorldPreset createPreset(DimensionOptions dimensionOptions, DimensionOptions netherDimensionOptions, + DimensionOptions endDimensionOptions) { return new WorldPreset( - Map.of(DimensionOptions.OVERWORLD, dimensionOptions, DimensionOptions.NETHER, netherDimensionOptions, DimensionOptions.END, endDimensionOptions) + Map.of(DimensionOptions.OVERWORLD, dimensionOptions, DimensionOptions.NETHER, netherDimensionOptions, DimensionOptions.END, + endDimensionOptions) ); } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java index feb3826f1..3520c4718 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/TagUtil.java @@ -76,7 +76,7 @@ public final class TagUtil { ": " + vanilla.streamTags() .toList()); - + vanilla.streamTags() .forEach( tag -> collect diff --git a/platforms/mixin-lifecycle/build.gradle.kts b/platforms/mixin-lifecycle/build.gradle.kts index 142d6868b..a4568c2e3 100644 --- a/platforms/mixin-lifecycle/build.gradle.kts +++ b/platforms/mixin-lifecycle/build.gradle.kts @@ -6,16 +6,16 @@ plugins { dependencies { shadedApi(project(":common:implementation:base")) - + compileOnly("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("dev.architectury:architectury-loom:${Versions.Mod.architecuryLoom}") - + implementation(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } - + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") - + modImplementation("cloud.commandframework", "cloud-fabric", Versions.Libraries.cloud) { exclude("net.fabricmc") exclude("net.fabricmc.fabric-api") @@ -24,7 +24,7 @@ dependencies { loom { accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) - + mixin { defaultRefmapName.set("terra.lifecycle.refmap.json") } @@ -34,7 +34,7 @@ tasks { compileJava { options.release.set(17) } - + remapJar { inputFile.set(shadowJar.get().archiveFile) } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java index bc481f560..3f53bfdfb 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecycleEntryPoint.java @@ -15,16 +15,16 @@ public class LifecycleEntryPoint { protected static void initialize(String modName, LifecyclePlatform platform) { logger.info("Initializing Terra {} mod...", modName); - + FabricServerCommandManager manager = new FabricServerCommandManager<>( CommandExecutionCoordinator.simpleCoordinator(), serverCommandSource -> (CommandSender) serverCommandSource, commandSender -> (ServerCommandSource) commandSender ); - - + + manager.brigadierManager().setNativeNumberSuggestions(false); - + platform.getEventManager().callEvent(new CommandRegistrationEvent(manager)); } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java index 4bf538144..2008b1266 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java @@ -30,18 +30,27 @@ import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; public abstract class LifecyclePlatform extends ModPlatform { private static final Logger LOGGER = LoggerFactory.getLogger(LifecyclePlatform.class); - private static MinecraftServer server; - private static final AtomicReference> BIOMES = new AtomicReference<>(); private static final AtomicReference> DIMENSIONS = new AtomicReference<>(); private static final AtomicReference> SETTINGS = new AtomicReference<>(); private static final AtomicReference> NOISE = new AtomicReference<>(); + private static MinecraftServer server; public LifecyclePlatform() { CommonPlatform.initialize(this); load(); } + public static void setRegistries(Registry biomeRegistry, + Registry dimensionTypeRegistry, + Registry chunkGeneratorSettingsRegistry, + Registry multiNoiseBiomeSourceParameterListRegistry) { + BIOMES.set(biomeRegistry); + DIMENSIONS.set(dimensionTypeRegistry); + SETTINGS.set(chunkGeneratorSettingsRegistry); + NOISE.set(multiNoiseBiomeSourceParameterListRegistry); + } + @Override public MinecraftServer getServer() { return server; @@ -76,16 +85,6 @@ public abstract class LifecyclePlatform extends ModPlatform { return succeed; } - public static void setRegistries(Registry biomeRegistry, - Registry dimensionTypeRegistry, - Registry chunkGeneratorSettingsRegistry, - Registry multiNoiseBiomeSourceParameterListRegistry) { - BIOMES.set(biomeRegistry); - DIMENSIONS.set(dimensionTypeRegistry); - SETTINGS.set(chunkGeneratorSettingsRegistry); - NOISE.set(multiNoiseBiomeSourceParameterListRegistry); - } - @Override protected Iterable platformAddon() { List addons = new ArrayList<>(); @@ -102,9 +101,9 @@ public abstract class LifecyclePlatform extends ModPlatform { LOGGER.warn("Failed to parse Minecraft version", e); } } - + addons.addAll(getPlatformMods()); - + return addons; } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/NoiseConfigMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/NoiseConfigMixin.java index 714fa7246..8363e4c00 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/NoiseConfigMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/NoiseConfigMixin.java @@ -26,7 +26,8 @@ public class NoiseConfigMixin { @Inject(method = "(Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;Lnet/minecraft/registry/RegistryEntryLookup;J)V", at = @At("TAIL")) - private void mapMultiNoise(ChunkGeneratorSettings chunkGeneratorSettings, RegistryEntryLookup noiseParametersLookup, long seed, + private void mapMultiNoise(ChunkGeneratorSettings chunkGeneratorSettings, + RegistryEntryLookup noiseParametersLookup, long seed, CallbackInfo ci) { SeedHack.register(multiNoiseSampler, seed); } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java index 8193a3224..6e4cfefc4 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java @@ -52,7 +52,8 @@ public class RegistryLoaderMixin { MutableRegistry worldPresets = extractRegistry(instance, RegistryKeys.WORLD_PRESET).orElseThrow(); MutableRegistry chunkGeneratorSettings = extractRegistry(instance, RegistryKeys.CHUNK_GENERATOR_SETTINGS).orElseThrow(); - MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(instance, RegistryKeys.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST).orElseThrow(); + MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(instance, + RegistryKeys.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST).orElseThrow(); LifecyclePlatform.setRegistries(biomes, dimensionTypes, chunkGeneratorSettings, multiNoiseBiomeSourceParameterLists); LifecycleUtil.initialize(biomes, worldPresets); diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/BiomeUtil.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/BiomeUtil.java index 20ad6a17d..d3078b71a 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/BiomeUtil.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/BiomeUtil.java @@ -65,9 +65,9 @@ public final class BiomeUtil { .orElseThrow()); } else { ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(Registry.registerReference(registry, - MinecraftUtil.registerKey(identifier) - .getValue(), - minecraftBiome)); + MinecraftUtil.registerKey(identifier) + .getValue(), + minecraftBiome)); } Map, VillagerType> villagerMap = VillagerTypeAccessor.getBiomeTypeToIdMap(); diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/LifecycleUtil.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/LifecycleUtil.java index 6b4516c5f..6b4f36eeb 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/LifecycleUtil.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/LifecycleUtil.java @@ -13,12 +13,13 @@ import com.dfsek.terra.mod.CommonPlatform; public final class LifecycleUtil { private LifecycleUtil() { - + } public static void initialize(MutableRegistry biomeMutableRegistry, MutableRegistry worldPresetMutableRegistry) { CommonPlatform.get().getEventManager().callEvent(new PlatformInitializationEvent()); BiomeUtil.registerBiomes(biomeMutableRegistry); - CommonPlatform.get().registerWorldTypes((id, preset) -> Registry.register(worldPresetMutableRegistry, RegistryKey.of(RegistryKeys.WORLD_PRESET, id), preset)); + CommonPlatform.get().registerWorldTypes( + (id, preset) -> Registry.register(worldPresetMutableRegistry, RegistryKey.of(RegistryKeys.WORLD_PRESET, id), preset)); } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/RegistryUtil.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/RegistryUtil.java index a22e449b5..aeffe254e 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/RegistryUtil.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/util/RegistryUtil.java @@ -9,7 +9,7 @@ import com.dfsek.terra.mod.data.Codecs; public final class RegistryUtil { private RegistryUtil() { - + } public static void register() { diff --git a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json index bf42757a4..33695db0e 100644 --- a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json +++ b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json @@ -1,23 +1,23 @@ { - "required": true, - "minVersion": "0.8", - "package": "com.dfsek.terra.lifecycle.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [ - "NoiseConfigMixin", - "RegistryEntryReferenceInvoker", - "RegistryMixin", - "SimpleRegistryMixin", - "lifecycle.MinecraftServerMixin", - "lifecycle.RegistryLoaderMixin", - "lifecycle.SaveLoadingMixin" - ], - "client": [ - ], - "server": [ - ], - "injectors": { - "defaultRequire": 1 - }, - "refmap": "terra.lifecycle.refmap.json" + "required": true, + "minVersion": "0.8", + "package": "com.dfsek.terra.lifecycle.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + "NoiseConfigMixin", + "RegistryEntryReferenceInvoker", + "RegistryMixin", + "SimpleRegistryMixin", + "lifecycle.MinecraftServerMixin", + "lifecycle.RegistryLoaderMixin", + "lifecycle.SaveLoadingMixin" + ], + "client": [ + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + }, + "refmap": "terra.lifecycle.refmap.json" } \ No newline at end of file diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/AwfulQuiltHacks.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/AwfulQuiltHacks.java index 6dbcbaff4..e702a5e4c 100644 --- a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/AwfulQuiltHacks.java +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/AwfulQuiltHacks.java @@ -23,12 +23,12 @@ public final class AwfulQuiltHacks { } catch(ReflectiveOperationException e) { throw new RuntimeException("Failed to load Classloader fields", e); } - + ADD_URL_METHOD = tempAddUrlMethod; } - + private AwfulQuiltHacks() { } - + /** * Hackily load the package which a mixin may exist within. *

diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java index f0767fdcf..6c3419a26 100644 --- a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java @@ -5,11 +5,11 @@ import com.dfsek.terra.mod.ModPlatform; public class QuiltAddon extends MinecraftAddon { - + public QuiltAddon(ModPlatform modPlatform) { super(modPlatform); } - + @Override public String getID() { return "terra-quilt"; diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltPlatform.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltPlatform.java index 32772b349..021f7b2ce 100644 --- a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltPlatform.java +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltPlatform.java @@ -32,8 +32,11 @@ public class QuiltPlatform extends LifecyclePlatform { @Override protected Collection getPlatformMods() { - return QuiltLoader.getAllMods().stream().flatMap(mod -> parseModData(mod.metadata().id(), mod.metadata().version().raw(), "quilt")).collect( - Collectors.toList()); + return QuiltLoader.getAllMods() + .stream() + .flatMap(mod -> parseModData(mod.metadata().id(), mod.metadata().version().raw(), "quilt")) + .collect( + Collectors.toList()); } @Override