diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md index c498f6f5e..3cac07ccf 100644 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -37,9 +37,12 @@ assignees: "" --> - [ ] I have checked that I am on the latest version of Terra. -- [ ] I have searched the github issue tracker for similar issues, including closed ones. -- [ ] I have made sure that this is not a bug with another mod or plugin, and it is Terra that is causing the issue. -- [ ] I have checked that this is an issue with Terra and not an issue with the pack I am using. +- [ ] I have searched the github issue tracker for similar issues, including + closed ones. +- [ ] I have made sure that this is not a bug with another mod or plugin, and it + is Terra that is causing the issue. +- [ ] I have checked that this is an issue with Terra and not an issue with the + pack I am using. - [ ] I have attached a copy of the `latest.log` file - [ ] I have filled out and provided all the appropriate information. diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md index 090354420..c247ba306 100644 --- a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -31,9 +31,11 @@ assignees: "" --> - [ ] I have checked that I am on the latest version of Terra. -- [ ] I have searched github for similar features requests, including closed ones, and found none. +- [ ] I have searched github for similar features requests, including closed + ones, and found none. - [ ] I believe this is within the scope of Terra. -- [ ] This feature request is for *all* of Terra, and isn't something that should be implemented by a pack or addon. +- [ ] This feature request is for *all* of Terra, and isn't something that + should be implemented by a pack or addon. ## Feature Description diff --git a/.github/ISSUE_TEMPLATE/OTHER_ISSUES.md b/.github/ISSUE_TEMPLATE/OTHER_ISSUES.md index 75a5c71fa..a28780af8 100644 --- a/.github/ISSUE_TEMPLATE/OTHER_ISSUES.md +++ b/.github/ISSUE_TEMPLATE/OTHER_ISSUES.md @@ -1,6 +1,7 @@ --- name: "Other Issue" -about: "Use this template if your issue doesn't accurately fit into any of the other categories." +about: "Use this template if your issue doesn't accurately fit into any of the +other categories." title: "" labels: "Type: Question, Status: Pending" assignees: "" diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 9db773e99..6d34c7720 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -33,9 +33,11 @@ -- [ ] I am the original author of this code, and I am willing to release it under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html). -- [ ] I am not the original author of this code, but it is in public domain or released - under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html) or a compatible license. +- [ ] I am the original author of this code, and I am willing to release it + under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html). +- [ ] I am not the original author of this code, but it is in public domain or + released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html) or a + compatible license. - [ ] Build system -- [ ] Documentation +- [ ] + Documentation - [ ] New Feature - [ ] Performance -- [ ] Refactoring -- [ ] Repository +- [ ] + Refactoring +- [ ] + Repository - [ ] Revert - [ ] Style - [ ] Tests -- [ ] Translation +- [ ] + Translation #### Compatiblity -- [ ] Breaking change +- [ ] Breaking + change - [ ] Non-Breaking change. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index a7f6f8ba9..d0f7e32c0 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -27,8 +27,8 @@ for everyone. We do not tolerate harassment of participants in any form. ## When and How to Use These Guidelines This code of conduct applies to all Terra community spaces, both online and off. -This applies to the github discussion tab, the -[Polyhedral Development community discord server](https://discord.gg/PXUEbbF), +This applies to the github discussion tab, the +[Polyhedral Development community discord server](https://discord.gg/PXUEbbF), and any other Terra community. In addition, we may choose to invoke them in instances of harassment outside the Terra communities, and we will punish the responsible individuals appropriately. We will not tolerate harassment in any @@ -58,8 +58,8 @@ listen carefully, apologize sincerely, and correct the behavior going forward. Any member of the Terra community should always be open to new ideas and must always be open to the possibility of being wrong. Nobody can always be right, and we are only human; we are -[fallible](https://www.merriam-webster.com/dictionary/fallible) by nature. -It is okay to make mistakes, but we must be willing to admit when we make one. +[fallible](https://www.merriam-webster.com/dictionary/fallible) by nature. It is +okay to make mistakes, but we must be willing to admit when we make one. ### Be Direct but Professional diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ddcac2710..bbb72ecad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -77,9 +77,9 @@ Unsure where to begin contributing to Terra? You can start by looking through " beginner" and "help wanted" issues: - [Beginner issues](https://github.com/PolyhedralDev/Terra/labels/Note%3A%20Good%20First%20Issue) - - issues which should be friendly to anyone new to terra. + - issues which should be friendly to anyone new to terra. - [Help wanted issues](https://github.com/PolyhedralDev/Terra/labels/Note%3A%20Help%20Wanted) - - issues which should be a bit more involved than "beginner" issues. + - issues which should be a bit more involved than "beginner" issues. New to github? Working on your first Pull Request? Check out [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github) @@ -365,8 +365,9 @@ into packs) is acceptable in the platform project. #### Specific Compatibility -Specific compatibility should *not* be put in the platform project. (Example: Adding -the ability to generate TechCraft v7's doo-dads with a TerraScript function) +Specific compatibility should *not* be put in the platform project. (Example: +Adding the ability to generate TechCraft v7's doo-dads with a TerraScript +function) Having specific compatibilities leads to tons of extra dependencies to keep track of, as well as adding lots of additional stuff to maintain. It quickly diff --git a/README.md b/README.md index 8dba6cb58..77e2e511e 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,6 @@ If you're not sure which license a particular file is under, check: Terra is still in beta! While it is stable, it is not feature-complete. There is a lot to be added! - ## Special Thanks [![YourKit-Logo](https://www.yourkit.com/images/yklogo.png)](https://www.yourkit.com/) @@ -100,9 +99,9 @@ YourKit has granted Polyhedral Development an open-source license to their outstanding Java profiler, allowing us to make our software as performant as it can be! -YourKit supports open source projects with innovative and intelligent tools -for monitoring and profiling Java and .NET applications. -YourKit is the creator of the +YourKit supports open source projects with innovative and intelligent tools for +monitoring and profiling Java and .NET applications. YourKit is the creator of +the [YourKit Java Profiler](https://www.yourkit.com/java/profiler/), [YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/), and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/). diff --git a/build.gradle.kts b/build.gradle.kts index 49abd6a90..c477b95b4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,3 @@ - preRelease(true) versionProjects(":common:api", version("6.0.0")) diff --git a/buildSrc/src/main/kotlin/AddonConfig.kt b/buildSrc/src/main/kotlin/AddonConfig.kt index 6132f0116..f190a0a87 100644 --- a/buildSrc/src/main/kotlin/AddonConfig.kt +++ b/buildSrc/src/main/kotlin/AddonConfig.kt @@ -21,7 +21,7 @@ fun Project.addonDir(dir: File, task: Task) { it.delete() } forSubProjects(":common:addons") { - val jar = if(tasks.findByName("shadowJar") != null) { + val jar = if (tasks.findByName("shadowJar") != null) { (tasks.named("shadowJar").get() as ShadowJar) } else { (tasks.named("jar").get() as Jar) diff --git a/buildSrc/src/main/kotlin/CompilationConfig.kt b/buildSrc/src/main/kotlin/CompilationConfig.kt index a8116b0a8..952b91091 100644 --- a/buildSrc/src/main/kotlin/CompilationConfig.kt +++ b/buildSrc/src/main/kotlin/CompilationConfig.kt @@ -1,3 +1,4 @@ +import com.dfsek.terra.tectonicdoc.TectonicDocPlugin import org.apache.tools.ant.filters.ReplaceTokens import org.gradle.api.JavaVersion import org.gradle.api.Project @@ -12,7 +13,6 @@ import org.gradle.kotlin.dsl.getByName import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.withType import org.gradle.language.jvm.tasks.ProcessResources -import com.dfsek.terra.tectonicdoc.TectonicDocPlugin fun Project.configureCompilation() { apply(plugin = "maven-publish") diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index adfd8110e..0bcb9b985 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -149,7 +149,7 @@ fun downloadPack(packUrl: URL, project: Project) { } fun Project.getJarTask(): Jar { - return if(tasks.findByName("shadowJar") != null) { + return if (tasks.findByName("shadowJar") != null) { (tasks.named("shadowJar").get() as ShadowJar) } else { (tasks.named("jar").get() as Jar) diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/GenerateDocsTask.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/GenerateDocsTask.kt index e11477598..30f515355 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/GenerateDocsTask.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/GenerateDocsTask.kt @@ -36,7 +36,7 @@ abstract class GenerateDocsTask : DefaultTask() { .relativize(file.toPath()) .toString() .substringBeforeLast('.') - if(name.endsWith("Template")) { + if (name.endsWith("Template")) { name = name.substringBeforeLast("Template") } classes[name] = node @@ -98,7 +98,7 @@ abstract class GenerateDocsTask : DefaultTask() { } private fun getType(node: FieldNode): String { - if(node.signature != null) { + if (node.signature != null) { return generic(node.signature) } return descriptorToHumanReadable(node.desc).substringAfterLast('.') @@ -107,9 +107,9 @@ abstract class GenerateDocsTask : DefaultTask() { private fun generic(type: String): String { val clean = descriptorToHumanReadable(type) - if(clean.contains('<')) { + if (clean.contains('<')) { val typeIndex = clean.indexOf('<') - return clean.substring(0, typeIndex+1).substringAfterLast('.') + generic(clean.substring(typeIndex+1)) + "\\>" + return clean.substring(0, typeIndex + 1).substringAfterLast('.') + generic(clean.substring(typeIndex + 1)) + "\\>" } return clean.substringAfterLast('.') @@ -127,21 +127,21 @@ abstract class GenerateDocsTask : DefaultTask() { } private fun descriptorToHumanReadable(descriptor: String): String { - if(descriptor.startsWith('L')) { + if (descriptor.startsWith('L')) { return descriptor.substring(1).substringBeforeLast(';').replace('/', '.') } - if(descriptor.startsWith("[")) { + if (descriptor.startsWith("[")) { return "${descriptorToHumanReadable(descriptor.substring(1))}[]" } - return when(descriptor) { - "B" -> "byte" - "C" -> "char" - "I" -> "int" - "D" -> "double" - "F" -> "float" - "J" -> "long" - "S" -> "short" - "Z" -> "boolean" + return when (descriptor) { + "B" -> "byte" + "C" -> "char" + "I" -> "int" + "D" -> "double" + "F" -> "float" + "J" -> "long" + "S" -> "short" + "Z" -> "boolean" else -> descriptor } } diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/TectonicDocPlugin.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/TectonicDocPlugin.kt index eb13e9bf7..2fbd0f8fd 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/TectonicDocPlugin.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/tectonicdoc/TectonicDocPlugin.kt @@ -3,7 +3,7 @@ package com.dfsek.terra.tectonicdoc import org.gradle.api.Plugin import org.gradle.api.Project -class TectonicDocPlugin: Plugin { +class TectonicDocPlugin : Plugin { override fun apply(project: Project) { project.tasks.create("generateDocs", GenerateDocsTask::class.java) } diff --git a/common/addons/api-addon-loader/src/main/java/com/dfsek/terra/addon/loader/ApiAddonLoader.java b/common/addons/api-addon-loader/src/main/java/com/dfsek/terra/addon/loader/ApiAddonLoader.java index 6d65ec9ec..f6f3317fc 100644 --- a/common/addons/api-addon-loader/src/main/java/com/dfsek/terra/addon/loader/ApiAddonLoader.java +++ b/common/addons/api-addon-loader/src/main/java/com/dfsek/terra/addon/loader/ApiAddonLoader.java @@ -19,7 +19,7 @@ import com.dfsek.terra.api.addon.bootstrap.BootstrapBaseAddon; public class ApiAddonLoader implements BootstrapBaseAddon { private static final Version VERSION = Versions.getVersion(1, 0, 0); - + @Override public Iterable loadAddons(Path addonsFolder, ClassLoader parent) { return Collections.emptySet(); 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 684e2af84..5db8dd51f 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 @@ -41,7 +41,8 @@ public class ImageBiomeProviderAddon implements AddonInitializer { .then(event -> { CheckedRegistry>> providerRegistry = event.getPack().getOrCreateRegistry( PROVIDER_REGISTRY_KEY); - providerRegistry.register(addon.key("IMAGE"), () -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class))); + providerRegistry.register(addon.key("IMAGE"), + () -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class))); }) .failThrough(); } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java index b4170d9b1..d02221f1b 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java @@ -1,6 +1,5 @@ package com.dfsek.terra.addons.biome.pipeline.api.delegate; -import java.util.Collections; import java.util.HashSet; import java.util.Set; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeDelegateLoader.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeDelegateLoader.java index 4b46b2f0c..c416e4804 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeDelegateLoader.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeDelegateLoader.java @@ -4,7 +4,6 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; @@ -22,7 +21,8 @@ public class BiomeDelegateLoader implements TypeLoader { } @Override - public BiomeDelegate load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public BiomeDelegate load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { if(c.equals("SELF")) return BiomeDelegate.self(); return biomeRegistry .getByID((String) c) diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java index b169fbf24..a6df1f200 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java @@ -21,10 +21,10 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate 0) { if(carver.sample(x, y, z) <= 0) { data = PaletteUtil.getPalette(x, y, z, sampler, paletteInfo, paletteLevel).get(paletteLevel, cx, y, cz, - seed); + seed); chunk.setBlock(x, y, z, data); } 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 7f122b5b3..4ed7cad37 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 @@ -56,8 +56,8 @@ public class ChunkInterpolator { for(int x = 0; x < 5; x++) { for(int z = 0; z < 5; z++) { BiomeNoiseProperties generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed) - .getContext() - .get(BiomeNoiseProperties.class); + .getContext() + .get(BiomeNoiseProperties.class); Map genMap = new HashMap<>(); int step = generationSettings.blendStep(); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java index 31cbc2d53..36ceb6810 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java @@ -8,12 +8,8 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties; -import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import java.util.HashSet; -import java.util.Set; - public class ElevationInterpolator { private final double[][] values = new double[18][18]; @@ -39,10 +35,11 @@ public class ElevationInterpolator { BiomeNoiseProperties center = gens[x + 1 + smooth][z + 1 + smooth]; boolean same = true; - + for(int xi = -smooth; xi <= smooth; xi++) { for(int zi = -smooth; zi <= smooth; zi++) { - if(gens[x + 1 + smooth + xi][z + 1 + smooth + zi] != center) { // test referential equality because thats all we need to know + if(gens[x + 1 + smooth + xi][z + 1 + smooth + zi] != + center) { // test referential equality because thats all we need to know same = false; break; } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/SamplerProvider.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/SamplerProvider.java index 42316935c..30fcb016a 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/SamplerProvider.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/samplers/SamplerProvider.java @@ -17,23 +17,16 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.samplers; -import com.dfsek.terra.api.world.info.WorldProperties; - import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; import net.jafama.FastMath; -import org.jetbrains.annotations.NotNull; - -import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import java.util.concurrent.ExecutionException; +import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; + public class SamplerProvider { private final Cache cache; @@ -53,8 +46,9 @@ public class SamplerProvider { public Sampler3D getChunk(int cx, int cz, WorldProperties world, BiomeProvider provider) { WorldContext context = new WorldContext(cx, cz, world.getSeed(), world.getMinHeight(), world.getMaxHeight()); try { - return cache.get(context, () -> new Sampler3D(context.cx, context.cz, context.seed, context.minHeight, context.maxHeight, provider, - elevationSmooth)); + return cache.get(context, + () -> new Sampler3D(context.cx, context.cz, context.seed, context.minHeight, context.maxHeight, provider, + elevationSmooth)); } catch(ExecutionException e) { throw new RuntimeException(e); } 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 ed601e923..289ed09e9 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 @@ -6,16 +6,12 @@ import cloud.commandframework.CommandManager; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.command.CommandSender; -import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.inject.annotations.Inject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class AddonsCommandAddon implements AddonInitializer { @Inject @@ -32,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") @@ -55,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-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 2c98cf4f5..7a5326552 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 @@ -2,30 +2,18 @@ package com.dfsek.terra.addons.commands.packs; import cloud.commandframework.ArgumentDescription; import cloud.commandframework.CommandManager; - -import cloud.commandframework.arguments.standard.EnumArgument; -import cloud.commandframework.arguments.standard.LongArgument; -import cloud.commandframework.context.CommandContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.inject.annotations.Inject; -import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.structure.Structure; -import com.dfsek.terra.api.util.Rotation; -import com.dfsek.terra.api.util.reflection.TypeKey; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Random; public class PacksCommandAddon implements AddonInitializer { @@ -45,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") @@ -66,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-profiler/src/main/java/com/dfsek/terra/addons/commands/profiler/ProfilerCommandAddon.java b/common/addons/command-profiler/src/main/java/com/dfsek/terra/addons/commands/profiler/ProfilerCommandAddon.java index 821a96020..adf966845 100644 --- a/common/addons/command-profiler/src/main/java/com/dfsek/terra/addons/commands/profiler/ProfilerCommandAddon.java +++ b/common/addons/command-profiler/src/main/java/com/dfsek/terra/addons/commands/profiler/ProfilerCommandAddon.java @@ -2,19 +2,17 @@ package com.dfsek.terra.addons.commands.profiler; import cloud.commandframework.ArgumentDescription; import cloud.commandframework.CommandManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.command.CommandSender; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.inject.annotations.Inject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class ProfilerCommandAddon implements AddonInitializer { private static final Logger logger = LoggerFactory.getLogger(ProfilerCommandAddon.class); 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 ccfe426c7..ce98abfce 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 @@ -2,16 +2,17 @@ package com.dfsek.terra.addons.commands.structure; import cloud.commandframework.ArgumentDescription; import cloud.commandframework.CommandManager; - import cloud.commandframework.arguments.standard.EnumArgument; import cloud.commandframework.arguments.standard.LongArgument; import cloud.commandframework.context.CommandContext; +import java.util.Random; + import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.command.arguments.RegistryArgument; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; @@ -21,8 +22,6 @@ import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.reflection.TypeKey; -import java.util.Random; - public class StructureCommandAddon implements AddonInitializer { @Inject @@ -31,6 +30,9 @@ public class StructureCommandAddon implements AddonInitializer { @Inject private BaseAddon addon; + private static Registry getStructureRegistry(CommandContext sender) { + return sender.getSender().getEntity().orElseThrow().world().getPack().getRegistry(Structure.class); + } @Override public void initialize() { @@ -39,31 +41,27 @@ 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") - .argument(RegistryArgument.builder("structure", - StructureCommandAddon::getStructureRegistry, - TypeKey.of(Structure.class))) - .argument(LongArgument.optional("seed", 0)) - .argument(EnumArgument.optional(Rotation.class, "rotation", Rotation.NONE)) - .handler(context -> { - Structure structure = context.get("structure"); - Entity sender = context.getSender().getEntity().orElseThrow(); - structure.generate( - sender.position().toInt(), - sender.world(), - ((Long) context.get("seed") == 0) ? new Random() : new Random(context.get("seed")), - context.get("rotation") - ); - }) - .permission("terra.structures.generate") + .literal("generate") + .argument(RegistryArgument.builder("structure", + StructureCommandAddon::getStructureRegistry, + TypeKey.of(Structure.class))) + .argument(LongArgument.optional("seed", 0)) + .argument(EnumArgument.optional(Rotation.class, "rotation", Rotation.NONE)) + .handler(context -> { + Structure structure = context.get("structure"); + Entity sender = context.getSender().getEntity().orElseThrow(); + structure.generate( + sender.position().toInt(), + sender.world(), + ((Long) context.get("seed") == 0) ? new Random() : new Random(context.get("seed")), + context.get("rotation") + ); + }) + .permission("terra.structures.generate") ); }); } - - private static Registry getStructureRegistry(CommandContext sender) { - return sender.getSender().getEntity().orElseThrow().world().getPack().getRegistry(Structure.class); - } } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java index ee95cfb0e..656a3949a 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java @@ -13,10 +13,8 @@ import com.dfsek.tectonic.api.config.template.annotations.Final; import com.dfsek.tectonic.api.config.template.annotations.Value; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import com.dfsek.terra.api.Platform; diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/holder/PaletteHolderLoader.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/holder/PaletteHolderLoader.java index 124410dec..005f0152b 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/holder/PaletteHolderLoader.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/holder/PaletteHolderLoader.java @@ -11,6 +11,7 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.List; @@ -18,13 +19,12 @@ import java.util.Map; import com.dfsek.terra.api.world.chunk.generation.util.Palette; -import org.jetbrains.annotations.NotNull; - public class PaletteHolderLoader implements TypeLoader { @SuppressWarnings("unchecked") @Override - public PaletteHolder load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { + public PaletteHolder load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) + throws LoadException { List> palette = (List>) o; PaletteHolderBuilder builder = new PaletteHolderBuilder(); for(Map layer : palette) { 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 30f724f69..2227a499d 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 @@ -13,10 +13,10 @@ import java.util.function.Supplier; import com.dfsek.terra.addons.feature.distributor.config.AndDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.config.NoDistributorTemplate; -import com.dfsek.terra.addons.feature.distributor.config.PaddedGridDistributorTemplate; -import com.dfsek.terra.addons.feature.distributor.config.SamplerDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.config.OrDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.PaddedGridDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.config.PointSetDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.SamplerDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.config.XorDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.config.YesDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.util.Point; @@ -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); diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/XorDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/XorDistributorTemplate.java index 8fb0e1e10..663d1ce7e 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/XorDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/XorDistributorTemplate.java @@ -12,11 +12,11 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.tectonic.api.exception.ValidationException; +import java.util.List; + import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.structure.feature.Distributor; -import java.util.List; - public class XorDistributorTemplate implements ObjectTemplate, ValidatedConfigTemplate { @Value("distributors") diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PaddedGridDistributor.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PaddedGridDistributor.java index b0285ecc3..0197a79a9 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PaddedGridDistributor.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PaddedGridDistributor.java @@ -1,13 +1,12 @@ package com.dfsek.terra.addons.feature.distributor.distributors; -import com.dfsek.terra.api.structure.feature.Distributor; - -import com.dfsek.terra.api.util.MathUtil; - import net.jafama.FastMath; import java.util.Random; +import com.dfsek.terra.api.structure.feature.Distributor; +import com.dfsek.terra.api.util.MathUtil; + public class PaddedGridDistributor implements Distributor { private final int width; @@ -22,19 +21,6 @@ public class PaddedGridDistributor implements Distributor { this.cellWidth = width + padding; } - @Override - public boolean matches(int x, int z, long seed) { - int cellX = FastMath.floorDiv(x, cellWidth); - int cellZ = FastMath.floorDiv(z, cellWidth); - - Random random = new Random((murmur64(MathUtil.squash(cellX, cellZ)) ^ seed) + salt); - - int pointX = random.nextInt(width) + cellX * cellWidth; - int pointZ = random.nextInt(width) + cellZ * cellWidth; - - return x == pointX && z == pointZ; - } - private static long murmur64(long h) { h ^= h >>> 33; h *= 0xff51afd7ed558ccdL; @@ -43,4 +29,17 @@ public class PaddedGridDistributor implements Distributor { h ^= h >>> 33; return h; } + + @Override + public boolean matches(int x, int z, long seed) { + int cellX = FastMath.floorDiv(x, cellWidth); + int cellZ = FastMath.floorDiv(z, cellWidth); + + Random random = new Random((murmur64(MathUtil.squash(cellX, cellZ)) ^ seed) + salt); + + int pointX = random.nextInt(width) + cellX * cellWidth; + int pointZ = random.nextInt(width) + cellZ * cellWidth; + + return x == pointX && z == pointZ; + } } diff --git a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java index 966bccba4..99acf5fcb 100644 --- a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java +++ b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.flora.flora.gen; -import com.dfsek.terra.api.util.vector.Vector3Int; - import net.jafama.FastMath; import java.util.ArrayList; @@ -24,6 +22,7 @@ import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.ProbabilityCollection; +import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; 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 e9ff963f4..a0166076e 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 @@ -14,11 +14,11 @@ import java.util.function.Supplier; import com.dfsek.terra.addons.feature.locator.config.AdjacentPatternLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.AndLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.GaussianRandomLocatorTemplate; -import com.dfsek.terra.addons.feature.locator.config.Sampler3DLocatorTemplate; -import com.dfsek.terra.addons.feature.locator.config.SamplerLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.OrLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.PatternLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.RandomLocatorTemplate; +import com.dfsek.terra.addons.feature.locator.config.Sampler3DLocatorTemplate; +import com.dfsek.terra.addons.feature.locator.config.SamplerLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.SurfaceLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.TopLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.XorLocatorTemplate; @@ -63,13 +63,13 @@ 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); diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java index 75dc861fa..991bdb050 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java @@ -11,7 +11,6 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator; -import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/TopLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/TopLocatorTemplate.java index b3a4a8e7d..9b2e82f06 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/TopLocatorTemplate.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/TopLocatorTemplate.java @@ -10,9 +10,7 @@ package com.dfsek.terra.addons.feature.locator.config; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; -import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator; import com.dfsek.terra.addons.feature.locator.locators.TopLocator; -import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/XorLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/XorLocatorTemplate.java index b419aa76b..d8c400660 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/XorLocatorTemplate.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/XorLocatorTemplate.java @@ -12,11 +12,11 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.tectonic.api.exception.ValidationException; +import java.util.List; + import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.structure.feature.Locator; -import java.util.List; - public class XorLocatorTemplate implements ObjectTemplate, ValidatedConfigTemplate { @Value("locators") diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/XorPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/XorPatternTemplate.java index bb5453beb..16479a279 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/XorPatternTemplate.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/XorPatternTemplate.java @@ -12,11 +12,11 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.tectonic.api.exception.ValidationException; +import java.util.List; + import com.dfsek.terra.addons.feature.locator.patterns.Pattern; import com.dfsek.terra.api.config.meta.Meta; -import java.util.List; - public class XorPatternTemplate implements ObjectTemplate, ValidatedConfigTemplate { @Value("patterns") diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/GaussianRandomLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/GaussianRandomLocator.java index 91a08f830..16fb827e5 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/GaussianRandomLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/GaussianRandomLocator.java @@ -7,14 +7,14 @@ package com.dfsek.terra.addons.feature.locator.locators; +import java.util.Random; + import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.world.chunk.generation.util.Column; import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder; -import java.util.Random; - public class GaussianRandomLocator implements Locator { private final double mean; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SamplerLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SamplerLocator.java index b77ffb692..31f730d0e 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SamplerLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SamplerLocator.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.feature.locator.locators; -import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder; - import net.jafama.FastMath; import java.util.List; @@ -17,6 +15,7 @@ import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.world.chunk.generation.util.Column; +import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder; public class SamplerLocator implements Locator { diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/TopLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/TopLocator.java index 9eed8f602..f9e8e0ea6 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/TopLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/TopLocator.java @@ -24,7 +24,7 @@ public class TopLocator implements Locator { public BinaryColumn getSuitableCoordinates(Column column) { for(int y : search) { if(column.getBlock(y).isAir() && !column.getBlock(y - 1).isAir()) { - return new BinaryColumn(y, y+1, yi -> true); + return new BinaryColumn(y, y + 1, yi -> true); } } return BinaryColumn.getNull(); diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/BinaryArithmeticTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/BinaryArithmeticTemplate.java index f4ae8bd3a..2f05af842 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/BinaryArithmeticTemplate.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/BinaryArithmeticTemplate.java @@ -2,12 +2,12 @@ package com.dfsek.terra.addons.noise.config.templates; import com.dfsek.tectonic.api.config.template.annotations.Value; +import java.util.function.BiFunction; + import com.dfsek.terra.addons.noise.samplers.arithmetic.BinaryArithmeticSampler; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; -import java.util.function.BiFunction; - public class BinaryArithmeticTemplate extends SamplerTemplate { private final BiFunction function; diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/AdditionSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/AdditionSampler.java index f6f0fae4f..65835b4ae 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/AdditionSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/AdditionSampler.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; import com.dfsek.terra.api.noise.NoiseSampler; -public class AdditionSampler extends BinaryArithmeticSampler{ +public class AdditionSampler extends BinaryArithmeticSampler { public AdditionSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java index 3f6b02bd0..eb18a60a0 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java @@ -14,7 +14,7 @@ public abstract class BinaryArithmeticSampler implements NoiseSampler { @Override public double noise(long seed, double x, double y) { - return operate(left.noise(seed, x, y),right.noise(seed, x, y)); + return operate(left.noise(seed, x, y), right.noise(seed, x, y)); } @Override diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/DivisionSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/DivisionSampler.java index c0be4d6a1..c1b22231f 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/DivisionSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/DivisionSampler.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; import com.dfsek.terra.api.noise.NoiseSampler; -public class DivisionSampler extends BinaryArithmeticSampler{ +public class DivisionSampler extends BinaryArithmeticSampler { public DivisionSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MaxSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MaxSampler.java index 14e8b5ae8..4a6521dd3 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MaxSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MaxSampler.java @@ -1,11 +1,11 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; -import com.dfsek.terra.api.noise.NoiseSampler; - import net.jafama.FastMath; +import com.dfsek.terra.api.noise.NoiseSampler; -public class MaxSampler extends BinaryArithmeticSampler{ + +public class MaxSampler extends BinaryArithmeticSampler { public MaxSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MinSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MinSampler.java index b27915e86..7e7ee7087 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MinSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MinSampler.java @@ -1,11 +1,11 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; -import com.dfsek.terra.api.noise.NoiseSampler; - import net.jafama.FastMath; +import com.dfsek.terra.api.noise.NoiseSampler; -public class MinSampler extends BinaryArithmeticSampler{ + +public class MinSampler extends BinaryArithmeticSampler { public MinSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MultiplicationSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MultiplicationSampler.java index 53af7980a..235e433ec 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MultiplicationSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/MultiplicationSampler.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; import com.dfsek.terra.api.noise.NoiseSampler; -public class MultiplicationSampler extends BinaryArithmeticSampler{ +public class MultiplicationSampler extends BinaryArithmeticSampler { public MultiplicationSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/SubtractionSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/SubtractionSampler.java index d75c99ece..6136682d9 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/SubtractionSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/SubtractionSampler.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.noise.samplers.arithmetic; import com.dfsek.terra.api.noise.NoiseSampler; -public class SubtractionSampler extends BinaryArithmeticSampler{ +public class SubtractionSampler extends BinaryArithmeticSampler { public SubtractionSampler(NoiseSampler left, NoiseSampler right) { super(left, right); } 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 94c936ff0..e5bef5022 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 @@ -18,10 +18,10 @@ public class GaborNoiseSampler extends NoiseFunction { private double a = 0.1; private double f0 = 0.625; private double kernelRadius = (FastMath.sqrt(-FastMath.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 = FastMath.exp(-impulsesPerCell); + private double impulsesPerKernel = 64d; private double omega0 = Math.PI * 0.25; private boolean isotropic = true; diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/random/PositiveWhiteNoiseSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/random/PositiveWhiteNoiseSampler.java index abac480cf..4046cdef4 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/random/PositiveWhiteNoiseSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/noise/random/PositiveWhiteNoiseSampler.java @@ -7,9 +7,6 @@ package com.dfsek.terra.addons.noise.samplers.noise.random; -import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction; - - /** * NoiseSampler implementation to produce random, uniformly distributed (white) noise. */ diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreFactory.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreFactory.java index af3955db1..9d8b1055a 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreFactory.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreFactory.java @@ -18,6 +18,7 @@ public class OreFactory implements ConfigFactory { @Override public VanillaOre build(OreTemplate config, Platform platform) { BlockState m = config.getMaterial(); - return new VanillaOre(m, config.getSize(), config.getReplaceable(), config.doPhysics(), config.isExposed(), config.getMaterialOverrides()); + return new VanillaOre(m, config.getSize(), config.getReplaceable(), config.doPhysics(), config.isExposed(), + config.getMaterialOverrides()); } } 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 c609a65b8..a1046aea9 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 @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.ore.ores; -import com.dfsek.terra.api.util.vector.Vector3Int; - import net.jafama.FastMath; import java.util.Map; @@ -19,6 +17,7 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.collection.MaterialSet; +import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; @@ -47,36 +46,36 @@ public class VanillaOre implements Structure { int centerX = location.getX(); int centerZ = location.getZ(); int centerY = location.getY(); - - + + float f = random.nextFloat() * (float) Math.PI; - + double d1 = centerX + 8 + FastMath.sin(f) * size / 8.0F; double d2 = centerX + 8 - FastMath.sin(f) * size / 8.0F; double d3 = centerZ + 8 + FastMath.cos(f) * size / 8.0F; double d4 = centerZ + 8 - FastMath.cos(f) * size / 8.0F; - + double d5 = centerY + random.nextInt(3) - 2D; double d6 = centerY + random.nextInt(3) - 2D; - + for(int i = 0; i < size; i++) { float iFactor = (float) i / (float) size; - + double d10 = random.nextDouble() * size / 16.0D; double d11 = (FastMath.sin(Math.PI * iFactor) + 1.0) * d10 + 1.0; double d12 = (FastMath.sin(Math.PI * iFactor) + 1.0) * d10 + 1.0; - + int xStart = FastMath.roundToInt(FastMath.floor(d1 + (d2 - d1) * iFactor - d11 / 2.0D)); int yStart = FastMath.roundToInt(FastMath.floor(d5 + (d6 - d5) * iFactor - d12 / 2.0D)); int zStart = FastMath.roundToInt(FastMath.floor(d3 + (d4 - d3) * iFactor - d11 / 2.0D)); - + int xEnd = FastMath.roundToInt(FastMath.floor(d1 + (d2 - d1) * iFactor + d11 / 2.0D)); int yEnd = FastMath.roundToInt(FastMath.floor(d5 + (d6 - d5) * iFactor + d12 / 2.0D)); int zEnd = FastMath.roundToInt(FastMath.floor(d3 + (d4 - d3) * iFactor + d11 / 2.0D)); - + for(int x = xStart; x <= xEnd; x++) { double d13 = (x + 0.5D - (d1 + (d2 - d1) * iFactor)) / (d11 / 2.0D); - + if(d13 * d13 < 1.0D) { for(int y = yStart; y <= yEnd; y++) { double d14 = (y + 0.5D - (d5 + (d6 - d5) * iFactor)) / (d12 / 2.0D); @@ -87,11 +86,11 @@ public class VanillaOre implements Structure { BlockType block = world.getBlockState(x, y, z).getBlockType(); if((d13 * d13 + d14 * d14 + d15 * d15 < 1.0D) && getReplaceable().contains(block)) { if(exposed > random.nextDouble() || !(world.getBlockState(x, y, z - 1).isAir() || - world.getBlockState(x, y, z + 1).isAir() || - world.getBlockState(x, y - 1, z).isAir() || - world.getBlockState(x, y + 1, z).isAir() || - world.getBlockState(x - 1, y, z).isAir() || - world.getBlockState(x + 1, y, z).isAir())) { + world.getBlockState(x, y, z + 1).isAir() || + world.getBlockState(x, y - 1, z).isAir() || + world.getBlockState(x, y + 1, z).isAir() || + world.getBlockState(x - 1, y, z).isAir() || + world.getBlockState(x + 1, y, z).isAir())) { world.setBlockState(x, y, z, getMaterial(block), isApplyGravity()); } } diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java index b8e9f3217..9df70cb97 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java @@ -7,17 +7,10 @@ package com.dfsek.terra.addons.palette; -import com.dfsek.tectonic.api.exception.LoadException; -import com.dfsek.tectonic.api.loader.type.TypeLoader; - -import java.util.function.Supplier; - -import com.dfsek.terra.addons.palette.palette.PaletteImpl; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; -import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.chunk.generation.util.Palette; diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteImpl.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteImpl.java index ecba13e9f..ede31d7ea 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteImpl.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteImpl.java @@ -7,14 +7,14 @@ package com.dfsek.terra.addons.palette.palette; +import java.util.ArrayList; +import java.util.List; + import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.chunk.generation.util.Palette; -import java.util.ArrayList; -import java.util.List; - /** * A class representation of a "slice" of the world. diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteLayerLoader.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteLayerLoader.java index 542176cfe..f0ad5cbd1 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteLayerLoader.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/palette/PaletteLayerLoader.java @@ -10,20 +10,11 @@ package com.dfsek.terra.addons.palette.palette; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; -import com.dfsek.tectonic.api.depth.DepthTracker; -import com.dfsek.tectonic.api.exception.LoadException; -import com.dfsek.tectonic.api.loader.ConfigLoader; -import com.dfsek.tectonic.api.loader.type.TypeLoader; - -import java.lang.reflect.AnnotatedType; -import java.util.Map; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import org.jetbrains.annotations.NotNull; - public class PaletteLayerLoader implements ObjectTemplate { @Value("materials") diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 299222fe8..e2b6e25f3 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -13,8 +13,8 @@ import java.util.Random; import com.dfsek.terra.addons.generation.feature.config.BiomeFeatures; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.profiler.ProfileFrame; -import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.registry.key.StringIdentifiable; +import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; diff --git a/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationAddon.java b/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationAddon.java index 1837bc3e3..3bf03ec6f 100644 --- a/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationAddon.java +++ b/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationAddon.java @@ -38,6 +38,6 @@ public class StructureGenerationAddon implements AddonInitializer { } }) .failThrough(); - + } } diff --git a/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationStage.java b/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationStage.java index 9c2ac99ab..07d9e7128 100644 --- a/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationStage.java +++ b/common/addons/generation-stage-structure/src/main/java/com/dfsek/terra/addons/generation/structure/StructureGenerationStage.java @@ -12,6 +12,6 @@ public class StructureGenerationStage implements GenerationStage { @Override public void populate(ProtoWorld world) { - + } } diff --git a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/ManifestAddon.java b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/ManifestAddon.java index df9ab332a..a0c23f284 100644 --- a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/ManifestAddon.java +++ b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/ManifestAddon.java @@ -9,9 +9,6 @@ package com.dfsek.terra.addons.manifest.impl; import ca.solostudios.strata.version.Version; import ca.solostudios.strata.version.VersionRange; - -import com.dfsek.terra.api.inject.impl.InjectorImpl; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionLoader.java b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionLoader.java index 8dc0754b8..23e6bc1ce 100644 --- a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionLoader.java +++ b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionLoader.java @@ -21,7 +21,8 @@ import java.lang.reflect.AnnotatedType; public class VersionLoader implements TypeLoader { @Override - public Version load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public Version load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { try { return Versions.parseVersion((String) c); } catch(ParseException e) { diff --git a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionRangeLoader.java b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionRangeLoader.java index ede47d3d8..5adaf3663 100644 --- a/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionRangeLoader.java +++ b/common/addons/manifest-addon-loader/src/main/java/com/dfsek/terra/addons/manifest/impl/config/loaders/VersionRangeLoader.java @@ -21,7 +21,8 @@ import java.lang.reflect.AnnotatedType; public class VersionRangeLoader implements TypeLoader { @Override - public VersionRange load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public VersionRange load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { try { return Versions.parseVersionRange((String) c); } catch(ParseException e) { diff --git a/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java index e75845b08..c3a2f3ea4 100644 --- a/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java +++ b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java @@ -22,8 +22,9 @@ public class PaletteBlockShortcutAddon implements AddonInitializer { .getHandler(FunctionalEventHandler.class) .register(addon, ConfigPackPreLoadEvent.class) .then(event -> event.getPack() - .registerShortcut(Palette.class, "BLOCK", - (configLoader, input, tracker) -> new SingletonPalette(configLoader.loadType(BlockState.class, input, tracker)))) + .registerShortcut(Palette.class, "BLOCK", + (configLoader, input, tracker) -> new SingletonPalette( + configLoader.loadType(BlockState.class, input, tracker)))) .failThrough(); } } diff --git a/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonStructure.java b/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonStructure.java index f3f168c5c..7d14c6ee7 100644 --- a/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonStructure.java +++ b/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonStructure.java @@ -1,14 +1,13 @@ package com.dfsek.terra.addons.palette.shortcut.block; +import java.util.Random; + import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; -import java.util.Random; - public class SingletonStructure implements Structure { private final BlockState blockState; diff --git a/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/StructureBlockShortcutAddon.java b/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/StructureBlockShortcutAddon.java index 8b20ff21e..210ab98d1 100644 --- a/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/StructureBlockShortcutAddon.java +++ b/common/addons/structure-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/StructureBlockShortcutAddon.java @@ -22,9 +22,10 @@ public class StructureBlockShortcutAddon implements AddonInitializer { .getHandler(FunctionalEventHandler.class) .register(addon, ConfigPackPreLoadEvent.class) .then(event -> event.getPack() - .registerShortcut(Structure.class, "BLOCK", - (configLoader, input, tracker) -> new SingletonStructure(configLoader.loadType(BlockState.class, input, tracker) - ))) + .registerShortcut(Structure.class, "BLOCK", + (configLoader, input, tracker) -> new SingletonStructure( + configLoader.loadType(BlockState.class, input, tracker) + ))) .failThrough(); } } diff --git a/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/MutatedStructure.java b/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/MutatedStructure.java index 1fa01f06e..a5aafdd1e 100644 --- a/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/MutatedStructure.java +++ b/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/MutatedStructure.java @@ -1,5 +1,7 @@ package com.dfsek.terra.addons.structure.mutator; +import java.util.Random; + import com.dfsek.terra.api.registry.key.Keyed; import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.structure.Structure; @@ -9,8 +11,6 @@ import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.util.ReadInterceptor; import com.dfsek.terra.api.world.util.WriteInterceptor; -import java.util.Random; - public class MutatedStructure implements Structure, Keyed { private final RegistryKey key; diff --git a/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/config/MutatedStructureTemplate.java b/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/config/MutatedStructureTemplate.java index 3f0ec33d2..1b8d473d1 100644 --- a/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/config/MutatedStructureTemplate.java +++ b/common/addons/structure-mutator/src/main/java/com/dfsek/terra/addons/structure/mutator/config/MutatedStructureTemplate.java @@ -1,7 +1,5 @@ package com.dfsek.terra.addons.structure.mutator.config; -import com.dfsek.tectonic.api.config.template.ConfigTemplate; - import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.api.config.AbstractableTemplate; 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 50d66e1cb..bce66ad9f 100644 --- a/common/addons/structure-mutator/src/main/resources/terra.addon.yml +++ b/common/addons/structure-mutator/src/main/resources/terra.addon.yml @@ -3,7 +3,7 @@ contributors: - Terra contributors id: structure-mutator version: @VERSION@ -entrypoints: [] +entrypoints: [ ] website: issues: https://github.com/PolyhedralDev/Terra/issues source: https://github.com/PolyhedralDev/Terra diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java index bf4f32d25..f2e1d0055 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript; -import com.dfsek.tectonic.api.exception.LoadException; - import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException; import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder; 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 85e680549..c496b0fcf 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 @@ -1,10 +1,10 @@ package com.dfsek.terra.addons.terrascript.parser.lang; -import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable; - import java.util.HashMap; import java.util.Map; +import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable; + public class Scope { private static final Scope NULL = new Scope() { @@ -12,7 +12,7 @@ public class Scope { public Variable get(String id) { throw new IllegalStateException("Cannot get variable from null scope: " + id); } - + @Override public void put(String id, Variable variable) { throw new IllegalStateException("Cannot set variable in null scope: " + id); @@ -38,7 +38,7 @@ public class Scope { public void put(String id, Variable variable) { variableMap.put(id, variable); } - + public Scope sub() { return new Scope(this); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java index 0a48a6301..c3737433e 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java @@ -7,11 +7,15 @@ package com.dfsek.terra.addons.terrascript.parser.lang.keywords.looplike; -import com.dfsek.terra.addons.terrascript.parser.lang.*; import org.jetbrains.annotations.Nullable; import java.util.List; +import com.dfsek.terra.addons.terrascript.parser.lang.Block; +import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; +import com.dfsek.terra.addons.terrascript.parser.lang.Keyword; +import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; +import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/WhileKeyword.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/WhileKeyword.java index dda59a64a..d5126e7db 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/WhileKeyword.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/WhileKeyword.java @@ -7,7 +7,11 @@ package com.dfsek.terra.addons.terrascript.parser.lang.keywords.looplike; -import com.dfsek.terra.addons.terrascript.parser.lang.*; +import com.dfsek.terra.addons.terrascript.parser.lang.Block; +import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; +import com.dfsek.terra.addons.terrascript.parser.lang.Keyword; +import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; +import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.tokenizer.Position; 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 f288b37f3..3a98b0b2f 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,10 +7,6 @@ package com.dfsek.terra.addons.terrascript.script; -import com.dfsek.terra.api.registry.key.Keyed; -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.vector.Vector3Int; - import net.jafama.FastMath; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; @@ -45,9 +41,12 @@ import com.dfsek.terra.addons.terrascript.script.builders.ZeroArgFunctionBuilder import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.registry.key.Keyed; +import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Rotation; +import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; @@ -68,7 +67,7 @@ public class StructureScript implements Structure, Keyed { throw new RuntimeException(e); } this.id = id; - + //noinspection unchecked functionRegistry.forEach((key, function) -> parser.registerFunction(key.getID(), function)); // Register registry functions. diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java index 7adae14fd..b9b9af058 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java @@ -24,8 +24,8 @@ public class TerraImplementationArguments implements ImplementationArguments { private final WritableWorld world; private final Map marks = new HashMap<>(); private final int recursions; - private boolean waterlog = false; private final Vector3Int origin; + private boolean waterlog = false; public TerraImplementationArguments(Vector3Int origin, Rotation rotation, Random random, WritableWorld world, int recursions) { this.rotation = rotation; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java index a73357c39..452b9f43b 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java @@ -7,11 +7,11 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BlockFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BlockFunction.java index eefbe8898..1e9fc6711 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BlockFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BlockFunction.java @@ -7,30 +7,27 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; -import com.dfsek.terra.api.block.state.properties.base.Properties; - import net.jafama.FastMath; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; 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; import com.dfsek.terra.addons.terrascript.parser.lang.constants.StringConstant; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; -import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.block.state.properties.base.Properties; 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 BlockFunction implements Function { private static final Logger logger = LoggerFactory.getLogger(BlockFunction.class); @@ -74,13 +71,13 @@ public class BlockFunction implements Function { TerraImplementationArguments arguments, BlockState rot) { Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - - + + rot = RotationUtil.rotateBlockData(rot, arguments.getRotation().inverse()); try { Vector3.Mutable set = Vector3.of(FastMath.roundToInt(xz.getX()), - y.apply(implementationArguments, scope).doubleValue(), - FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()); + y.apply(implementationArguments, scope).doubleValue(), + FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()); BlockState current = arguments.getWorld().getBlockState(set); if(overwrite.apply(implementationArguments, scope) || current.isAir()) { if(arguments.isWaterlog() && current.has(Properties.WATERLOGGED) && current.getBlockType().isWater()) { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckBlockFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckBlockFunction.java index 441ebcc9b..d2fddf169 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckBlockFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckBlockFunction.java @@ -7,11 +7,11 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/EntityFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/EntityFunction.java index bb374e41c..3d5007a00 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/EntityFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/EntityFunction.java @@ -47,8 +47,13 @@ public class EntityFunction implements Function { TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments; Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - - Entity entity = arguments.getWorld().spawnEntity(Vector3.of(xz.getX(), y.apply(implementationArguments, scope).doubleValue(), xz.getZ()).mutable().add(arguments.getOrigin()).add(0.5, 0, 0.5).immutable(), data); + + Entity entity = arguments.getWorld().spawnEntity(Vector3.of(xz.getX(), y.apply(implementationArguments, scope).doubleValue(), + xz.getZ()) + .mutable() + .add(arguments.getOrigin()) + .add(0.5, 0, 0.5) + .immutable(), data); platform.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getPack(), entity)); return null; } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/GetMarkFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/GetMarkFunction.java index fbcccee88..00e1f2ab7 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/GetMarkFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/GetMarkFunction.java @@ -7,11 +7,11 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; @@ -36,9 +36,13 @@ public class GetMarkFunction implements Function { TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments; Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - + String mark = arguments.getMark(Vector3.of(FastMath.floorToInt(xz.getX()), FastMath.floorToInt( - y.apply(implementationArguments, scope).doubleValue()), FastMath.floorToInt(xz.getZ())).mutable().add(arguments.getOrigin()).immutable()); + y.apply(implementationArguments, scope).doubleValue()), + FastMath.floorToInt(xz.getZ())) + .mutable() + .add(arguments.getOrigin()) + .immutable()); return mark == null ? "" : mark; } 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 83e5ed1cc..ebadb9288 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 @@ -7,14 +7,6 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; -import com.dfsek.terra.api.block.entity.BlockEntity; -import com.dfsek.terra.api.block.entity.Container; -import com.dfsek.terra.api.event.events.world.generation.LootPopulateEvent; - -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.vector.Vector3; - import net.jafama.FastMath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,15 +15,21 @@ import java.util.Random; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.StructureScript; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.block.entity.BlockEntity; +import com.dfsek.terra.api.block.entity.Container; +import com.dfsek.terra.api.event.events.world.generation.LootPopulateEvent; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.util.vector.Vector2; +import com.dfsek.terra.api.util.vector.Vector3; public class LootFunction implements Function { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/PullFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/PullFunction.java index 60daf8049..076793735 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/PullFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/PullFunction.java @@ -7,12 +7,12 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException; 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; import com.dfsek.terra.addons.terrascript.parser.lang.constants.ConstantExpression; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; @@ -45,11 +45,11 @@ public class PullFunction implements Function { TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments; Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - + BlockState rot = RotationUtil.rotateBlockData(data, arguments.getRotation().inverse()); Vector3.Mutable mutable = Vector3.of(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, scope).intValue(), - FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()); + FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()); while(mutable.getY() > arguments.getWorld().getMinHeight()) { if(!arguments.getWorld().getBlockState(mutable).isAir()) { arguments.getWorld().setBlockState(mutable, rot); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/SetMarkFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/SetMarkFunction.java index 7dcc3b13c..98e4a90d0 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/SetMarkFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/SetMarkFunction.java @@ -7,11 +7,11 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; @@ -38,12 +38,13 @@ public class SetMarkFunction implements Function { TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments; Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - - + + arguments.setMark(Vector3.of(FastMath.floorToInt(xz.getX()), - FastMath.floorToInt( - y.apply(implementationArguments, scope).doubleValue()), - FastMath.floorToInt(xz.getZ())).mutable().add(arguments.getOrigin()).immutable(), mark.apply(implementationArguments, scope)); + FastMath.floorToInt( + y.apply(implementationArguments, scope).doubleValue()), + FastMath.floorToInt(xz.getZ())).mutable().add(arguments.getOrigin()).immutable(), + mark.apply(implementationArguments, scope)); return null; } 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 f2705072e..9cd8ed577 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,23 +7,21 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; -import com.dfsek.terra.api.block.entity.BlockEntity; - import net.jafama.FastMath; +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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; +import com.dfsek.terra.api.block.entity.BlockEntity; 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); @@ -45,10 +43,10 @@ public class StateFunction implements Function { TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments; Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - - + + Vector3 origin = Vector3.of(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, scope).intValue(), - FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()).immutable(); + FastMath.roundToInt(xz.getZ())).mutable().add(arguments.getOrigin()).immutable(); try { BlockEntity state = arguments.getWorld().getBlockEntity(origin); state.applyState(data.apply(implementationArguments, scope)); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StructureFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StructureFunction.java index 02008f8da..3a02761ab 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StructureFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StructureFunction.java @@ -7,9 +7,6 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; -import com.dfsek.terra.addons.terrascript.script.StructureScript; - import net.jafama.FastMath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,7 +15,9 @@ import java.util.List; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; +import com.dfsek.terra.addons.terrascript.script.StructureScript; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.api.Platform; @@ -61,11 +60,11 @@ public class StructureFunction implements Function { if(arguments.getRecursions() > platform.getTerraConfig().getMaxRecursion()) throw new RuntimeException("Structure recursion too deep: " + arguments.getRecursions()); - + Vector2 xz = RotationUtil.rotateVector(Vector2.of(x.apply(implementationArguments, scope).doubleValue(), z.apply(implementationArguments, scope).doubleValue()), arguments.getRotation()); - - + + String app = id.apply(implementationArguments, scope); return registry.getByID(app).map(script -> { Rotation rotation1; diff --git a/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java b/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java index de6365034..b502a3563 100644 --- a/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java +++ b/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java @@ -8,13 +8,11 @@ package structure; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.charset.Charset; -import java.util.HashMap; import java.util.List; import com.dfsek.terra.addons.terrascript.parser.Parser; @@ -22,6 +20,7 @@ import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException; import com.dfsek.terra.addons.terrascript.parser.lang.Block; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/test/java/structure/PerformanceTest.java b/common/addons/structure-terrascript-loader/src/test/java/structure/PerformanceTest.java index 0bd159f8a..cc2ed4372 100644 --- a/common/addons/structure-terrascript-loader/src/test/java/structure/PerformanceTest.java +++ b/common/addons/structure-terrascript-loader/src/test/java/structure/PerformanceTest.java @@ -1,5 +1,12 @@ package structure; +import net.jafama.FastMath; +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.List; + import com.dfsek.terra.addons.terrascript.parser.Parser; import com.dfsek.terra.addons.terrascript.parser.lang.Block; import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; @@ -12,13 +19,6 @@ import com.dfsek.terra.addons.terrascript.script.builders.UnaryNumberFunctionBui import com.dfsek.terra.addons.terrascript.script.builders.UnaryStringFunctionBuilder; import com.dfsek.terra.addons.terrascript.tokenizer.Position; -import net.jafama.FastMath; -import org.apache.commons.io.IOUtils; - -import java.io.IOException; -import java.nio.charset.Charset; -import java.util.List; - public class PerformanceTest { public static void main(String... args) throws IOException { diff --git a/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/CheckFunction.java b/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/CheckFunction.java index 0d75a0a3b..1dfb1d293 100644 --- a/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/CheckFunction.java +++ b/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/CheckFunction.java @@ -7,13 +7,13 @@ package com.dfsek.terra.addon.terrascript.check; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import net.jafama.FastMath; import com.dfsek.terra.addons.chunkgenerator.generation.NoiseChunkGenerator3D; import com.dfsek.terra.addons.chunkgenerator.generation.math.samplers.SamplerProvider; 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; import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function; import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; @@ -44,13 +44,13 @@ public class CheckFunction implements Function { Vector2 xz = Vector2.of(x.apply(implementationArguments, scope).doubleValue(), - z.apply(implementationArguments, scope).doubleValue()); + z.apply(implementationArguments, scope).doubleValue()); RotationUtil.rotateVector(xz, arguments.getRotation()); Vector3 location = arguments.getOrigin().toVector3Mutable().add( Vector3.of(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, scope).doubleValue(), - FastMath.roundToInt(xz.getZ()))).immutable(); + FastMath.roundToInt(xz.getZ()))).immutable(); return apply(location, arguments.getWorld()); } diff --git a/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/TerraScriptCheckFunctionAddon.java b/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/TerraScriptCheckFunctionAddon.java index 27d4d4d57..26a1ca358 100644 --- a/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/TerraScriptCheckFunctionAddon.java +++ b/common/addons/terrascript-function-check-noise-3d/src/main/java/com/dfsek/terra/addon/terrascript/check/TerraScriptCheckFunctionAddon.java @@ -23,7 +23,8 @@ public class TerraScriptCheckFunctionAddon implements AddonInitializer { .register(addon, ConfigPackPreLoadEvent.class) .priority(1) .then(event -> { - event.getPack().getOrCreateRegistry(FunctionBuilder.class).register(addon.key("check"), new CheckFunctionBuilder(platform)); + event.getPack().getOrCreateRegistry(FunctionBuilder.class).register(addon.key("check"), + new CheckFunctionBuilder(platform)); }) .failThrough(); } diff --git a/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunction.java b/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunction.java index eb3ecf477..abaafecab 100644 --- a/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunction.java +++ b/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunction.java @@ -1,5 +1,7 @@ package com.dfsek.terra.addons.terrascript.sampler; +import java.util.function.Supplier; + import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; @@ -8,8 +10,6 @@ import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments; import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.api.noise.NoiseSampler; -import java.util.function.Supplier; - public class SamplerFunction implements Function { private final Returnable x, y, z; diff --git a/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunctionBuilder.java b/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunctionBuilder.java index 2c95c7bd4..edd4e2327 100644 --- a/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunctionBuilder.java +++ b/common/addons/terrascript-function-sampler/src/main/java/com/dfsek/terra/addons/terrascript/sampler/SamplerFunctionBuilder.java @@ -1,5 +1,12 @@ package com.dfsek.terra.addons.terrascript.sampler; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.function.Supplier; + import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable.ReturnType; @@ -9,13 +16,6 @@ import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.addons.terrascript.tokenizer.Position; import com.dfsek.terra.api.noise.NoiseSampler; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.Function; -import java.util.function.Supplier; - public class SamplerFunctionBuilder implements FunctionBuilder { private final Map samplers2d; diff --git a/common/api/src/main/java/com/dfsek/terra/api/addon/BaseAddon.java b/common/api/src/main/java/com/dfsek/terra/api/addon/BaseAddon.java index d2fb0c475..0672261ca 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/addon/BaseAddon.java +++ b/common/api/src/main/java/com/dfsek/terra/api/addon/BaseAddon.java @@ -28,6 +28,7 @@ public interface BaseAddon extends StringIdentifiable, Namespaced { /** * Gets the dependencies of this addon. + * * @return Map of dependency ID to {@link VersionRange} of dependency */ default Map getDependencies() { @@ -36,6 +37,7 @@ public interface BaseAddon extends StringIdentifiable, Namespaced { /** * Get the version of the addon + * * @return Version of addon */ Version getVersion(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/addon/bootstrap/BootstrapBaseAddon.java b/common/api/src/main/java/com/dfsek/terra/api/addon/bootstrap/BootstrapBaseAddon.java index 87645eb31..a71506a39 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/addon/bootstrap/BootstrapBaseAddon.java +++ b/common/api/src/main/java/com/dfsek/terra/api/addon/bootstrap/BootstrapBaseAddon.java @@ -14,12 +14,13 @@ import com.dfsek.terra.api.addon.BaseAddon; /** * Interface representing a bootstrap addon. - * + *

* A bootstrap addon is the only type of addon Terra implements a loader for. * It is a minimal base for addon loaders to be implemented on top of. - * + *

* Unless you are writing your own addon loader, you will want to depend on the * {@code manifest-addon-loader} addon, and implement its AddonInitializer. + * * @param Type of addon this bootstrap addon loads */ public interface BootstrapBaseAddon extends BaseAddon { diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/BlockType.java b/common/api/src/main/java/com/dfsek/terra/api/block/BlockType.java index 2ff7e9849..78c20cd5e 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/BlockType.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/BlockType.java @@ -17,18 +17,21 @@ import com.dfsek.terra.api.block.state.BlockState; public interface BlockType extends Handle { /** * Get the default {@link BlockState} of this block + * * @return Default block state */ BlockState getDefaultState(); /** * Get whether this block is solid. + * * @return Whether this block is solid. */ boolean isSolid(); /** * Get whether this block is water. + * * @return Whether this block is water. */ boolean isWater(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/state/BlockState.java b/common/api/src/main/java/com/dfsek/terra/api/block/state/BlockState.java index 767ade006..039f078d0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/state/BlockState.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/state/BlockState.java @@ -21,39 +21,49 @@ public interface BlockState extends Handle { /** * Whether this {@link BlockState} matches another. - * + *

* "matches" is defined as this {@link BlockState} holding a matching {@link #getBlockType()}. + * * @param other Other {@link BlockState} + * * @return Whether this state matches the other */ boolean matches(BlockState other); /** * Check whether this {@link BlockState} has a {@link Property}. + * * @param property Property to check for + * * @return Whether this state has the property. */ > boolean has(Property property); /** * Get the value of a {@link Property} on this state. + * * @param property Property to get + * * @return Value of the property */ > T get(Property property); /** * Return a new {@link BlockState} with a {@link Property} set to a value. + * * @param property Property to set - * @param value Value of property + * @param value Value of property + * * @return New {@link BlockState} with property set. */ > BlockState set(Property property, T value); /** * Perform an action on this {@link BlockState} if it contains a {@link Property} + * * @param property Property to check for - * @param action Action to perform if property is present + * @param action Action to perform if property is present + * * @return This {@link BlockState} */ default > BlockState ifProperty(Property property, Consumer action) { @@ -63,8 +73,10 @@ public interface BlockState extends Handle { /** * Set the value of a {@link Property} on this {@link BlockState} if it is present. + * * @param property Property to check for/set. - * @param value Value to set if property is present. + * @param value Value to set if property is present. + * * @return Thie {@link BlockState} */ default > BlockState setIfPresent(Property property, T value) { @@ -74,12 +86,14 @@ public interface BlockState extends Handle { /** * Get the {@link BlockType} this state applies to. + * * @return Block type. */ BlockType getBlockType(); /** * Get this state and its properties as a String + * * @return String representation of this state */ default String getAsString() { @@ -88,13 +102,16 @@ public interface BlockState extends Handle { /** * Get this state and its properties as a String + * * @param properties Whether to include properties + * * @return String representation of this state */ String getAsString(boolean properties); /** * Get whether this BlockState is air + * * @return Whether this state is air */ boolean isAir(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/Property.java b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/Property.java index aa2b8f0e6..3bebb4771 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/Property.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/Property.java @@ -7,10 +7,10 @@ package com.dfsek.terra.api.block.state.properties; -import com.dfsek.terra.api.registry.key.StringIdentifiable; - import java.util.Collection; +import com.dfsek.terra.api.registry.key.StringIdentifiable; + /** * Represents a property a state holds @@ -18,12 +18,14 @@ import java.util.Collection; public interface Property extends StringIdentifiable { /** * Get all possible values of this property + * * @return All values of this property */ Collection values(); /** * Get the type of this property. + * * @return {@link Class} instance representing the type of this property */ Class getType(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/Properties.java b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/Properties.java index 1bbc7a6e9..c1f173d9e 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/Properties.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/Properties.java @@ -14,6 +14,7 @@ import com.dfsek.terra.api.block.state.properties.enums.RailShape; import com.dfsek.terra.api.block.state.properties.enums.RedstoneConnection; import com.dfsek.terra.api.block.state.properties.enums.WallHeight; + @Deprecated public final class Properties { public static final EnumProperty DIRECTION = EnumProperty.of("facing", Direction.class); diff --git a/common/api/src/main/java/com/dfsek/terra/api/command/CommandSender.java b/common/api/src/main/java/com/dfsek/terra/api/command/CommandSender.java index c2ca46127..8d0ff260a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/command/CommandSender.java +++ b/common/api/src/main/java/com/dfsek/terra/api/command/CommandSender.java @@ -7,12 +7,12 @@ package com.dfsek.terra.api.command; +import java.util.Optional; + import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.Player; -import java.util.Optional; - public interface CommandSender extends Handle { void sendMessage(String message); diff --git a/common/api/src/main/java/com/dfsek/terra/api/command/arguments/RegistryArgument.java b/common/api/src/main/java/com/dfsek/terra/api/command/arguments/RegistryArgument.java index c0f422644..7cb8f731f 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/command/arguments/RegistryArgument.java +++ b/common/api/src/main/java/com/dfsek/terra/api/command/arguments/RegistryArgument.java @@ -5,16 +5,6 @@ import cloud.commandframework.arguments.CommandArgument; import cloud.commandframework.arguments.parser.ArgumentParseResult; import cloud.commandframework.arguments.parser.ArgumentParser; import cloud.commandframework.context.CommandContext; - -import com.dfsek.terra.api.registry.Registry; - -import com.dfsek.terra.api.registry.exception.NoSuchEntryException; - -import com.dfsek.terra.api.registry.key.RegistryKey; - -import com.dfsek.terra.api.structure.Structure; -import com.dfsek.terra.api.util.reflection.TypeKey; - import io.leangen.geantyref.TypeToken; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -26,6 +16,11 @@ import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; +import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.registry.exception.NoSuchEntryException; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.reflection.TypeKey; + public class RegistryArgument extends CommandArgument { private RegistryArgument( @@ -63,19 +58,23 @@ public class RegistryArgument extends CommandArgument { } @SuppressWarnings("unchecked") - public static Builder builder(String name, Function, Registry> registryFunction, TypeKey registryType) { + public static Builder builder(String name, Function, Registry> registryFunction, + TypeKey registryType) { return new Builder<>(name, registryFunction, (TypeToken) TypeToken.get(registryType.getType())); } - public static CommandArgument of(String name, Function, Registry> registryFunction, TypeKey registryType) { + public static CommandArgument of(String name, Function, Registry> registryFunction, + TypeKey registryType) { return RegistryArgument.builder(name, registryFunction, registryType).build(); } - public static CommandArgument optional(String name, Function, Registry> registryFunction, TypeKey registryType) { + public static CommandArgument optional(String name, Function, Registry> registryFunction, + TypeKey registryType) { return RegistryArgument.builder(name, registryFunction, registryType).asOptional().build(); } - public static CommandArgument optional(String name, Function, Registry> registryFunction, TypeKey registryType, String defaultKey) { + public static CommandArgument optional(String name, Function, Registry> registryFunction, + TypeKey registryType, String defaultKey) { return RegistryArgument.builder(name, registryFunction, registryType).asOptionalWithDefault(defaultKey).build(); } @@ -89,7 +88,7 @@ public class RegistryArgument extends CommandArgument { this.registryFunction = commandContext -> registry; this.typeToken = (TypeToken) TypeToken.get(registry.getType().getType()); } - + private Builder(@NonNull String name, Function, Registry> registryFunction, TypeToken typeToken) { super(typeToken, name); this.typeToken = typeToken; diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index 1281b94aa..860a742be 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -15,11 +15,9 @@ import java.util.Map; import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.properties.PropertyHolder; -import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.key.Keyed; import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.registry.meta.CheckedRegistryHolder; -import com.dfsek.terra.api.registry.meta.RegistryHolder; import com.dfsek.terra.api.registry.meta.RegistryProvider; import com.dfsek.terra.api.tectonic.ConfigLoadingDelegate; import com.dfsek.terra.api.tectonic.LoaderRegistrar; diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java index 3fc82635b..7c3e604c1 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java @@ -7,10 +7,7 @@ package com.dfsek.terra.api.config; -import java.util.function.Supplier; - import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.util.reflection.TypeKey; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/NoiseSampler.java b/common/api/src/main/java/com/dfsek/terra/api/noise/NoiseSampler.java index a76383253..5e6a5df0b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/NoiseSampler.java +++ b/common/api/src/main/java/com/dfsek/terra/api/noise/NoiseSampler.java @@ -9,8 +9,8 @@ package com.dfsek.terra.api.noise; import com.dfsek.terra.api.util.vector.Vector2; -import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector2Int; +import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3Int; diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/CheckedRegistry.java b/common/api/src/main/java/com/dfsek/terra/api/registry/CheckedRegistry.java index e2056bcf1..dd79c7c4a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/CheckedRegistry.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/CheckedRegistry.java @@ -7,12 +7,11 @@ package com.dfsek.terra.api.registry; -import com.dfsek.terra.api.registry.key.Keyed; -import com.dfsek.terra.api.registry.key.RegistryKey; - import org.jetbrains.annotations.NotNull; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; +import com.dfsek.terra.api.registry.key.Keyed; +import com.dfsek.terra.api.registry.key.RegistryKey; public interface CheckedRegistry extends Registry { diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/OpenRegistry.java b/common/api/src/main/java/com/dfsek/terra/api/registry/OpenRegistry.java index b9488a11f..dcedae900 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/OpenRegistry.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/OpenRegistry.java @@ -7,12 +7,11 @@ package com.dfsek.terra.api.registry; -import com.dfsek.terra.api.registry.key.Keyed; -import com.dfsek.terra.api.registry.key.RegistryKey; - import org.jetbrains.annotations.NotNull; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; +import com.dfsek.terra.api.registry.key.Keyed; +import com.dfsek.terra.api.registry.key.RegistryKey; public interface OpenRegistry extends Registry { diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/Registry.java b/common/api/src/main/java/com/dfsek/terra/api/registry/Registry.java index e637b4201..7ebde15d2 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/Registry.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/Registry.java @@ -8,10 +8,6 @@ package com.dfsek.terra.api.registry; import com.dfsek.tectonic.api.loader.type.TypeLoader; - -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -23,6 +19,9 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.reflection.TypeKey; + public interface Registry extends TypeLoader { /** diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/key/RegistryKey.java b/common/api/src/main/java/com/dfsek/terra/api/registry/key/RegistryKey.java index f13a643d5..40398b81a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/key/RegistryKey.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/key/RegistryKey.java @@ -15,7 +15,7 @@ public final class RegistryKey implements StringIdentifiable, Namespaced { "Namespace must only contain alphanumeric characters, hyphens, and underscores. \"" + namespace + "\" is not a valid namespace."); } - + if(!ID_PATTERN.matcher(id).matches()) { throw new IllegalArgumentException( "ID must only contain alphanumeric characters, hyphens, and underscores. \"" + id + diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/meta/CheckedRegistryHolder.java b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/CheckedRegistryHolder.java index a8da7a9ae..57d35e043 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/meta/CheckedRegistryHolder.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/CheckedRegistryHolder.java @@ -1,10 +1,10 @@ package com.dfsek.terra.api.registry.meta; +import java.lang.reflect.Type; + import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.util.reflection.TypeKey; -import java.lang.reflect.Type; - public interface CheckedRegistryHolder extends RegistryHolder { default CheckedRegistry getCheckedRegistry(Class clazz) throws IllegalStateException { diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index 110f87dc8..479c77e38 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -9,9 +9,7 @@ package com.dfsek.terra.api.structure; import java.util.Random; -import com.dfsek.terra.api.registry.key.Keyed; import com.dfsek.terra.api.util.Rotation; -import com.dfsek.terra.api.registry.key.StringIdentifiable; import com.dfsek.terra.api.util.vector.Vector3Int; import com.dfsek.terra.api.world.WritableWorld; diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java index 0aae5d5b9..452d0a902 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java @@ -9,10 +9,10 @@ package com.dfsek.terra.api.structure.configured; import org.jetbrains.annotations.ApiStatus.Experimental; +import com.dfsek.terra.api.registry.key.StringIdentifiable; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.StructureSpawn; import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.registry.key.StringIdentifiable; import com.dfsek.terra.api.util.collection.ProbabilityCollection; diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/feature/BinaryColumn.java b/common/api/src/main/java/com/dfsek/terra/api/structure/feature/BinaryColumn.java index 25ff5c76b..3b26d68d7 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/feature/BinaryColumn.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/feature/BinaryColumn.java @@ -7,11 +7,8 @@ package com.dfsek.terra.api.structure.feature; -import java.util.ArrayList; import java.util.function.BooleanSupplier; -import java.util.function.Function; import java.util.function.IntConsumer; -import java.util.stream.IntStream; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.function.IntToBooleanFunction; @@ -22,16 +19,15 @@ import com.dfsek.terra.api.util.generic.Lazy; * A column of binary data */ public class BinaryColumn { + private static final BinaryColumn NULL = new BinaryColumn(0, 1, y -> false); private final IntToBooleanFunction data; private final int minY; private final int maxY; - private final Lazy results; - private static final BinaryColumn NULL = new BinaryColumn(0, 1, y -> false); - /** * Constructs a new {@link BinaryColumn} with all values initiated to {@code false} + * * @param minY Minimum Y value * @param maxY Maximum Y value */ @@ -57,17 +53,19 @@ public class BinaryColumn { this.data = y -> data[y - minY]; } - public static BinaryColumn getNull() { - return NULL; - } - public BinaryColumn(Range y, IntToBooleanFunction data) { this(y.getMin(), y.getMax(), data); } + public static BinaryColumn getNull() { + return NULL; + } + /** * Get the value at a height. + * * @param y Height of entry to get. + * * @return Whether height has been set. */ public boolean get(int y) { @@ -81,6 +79,7 @@ public class BinaryColumn { /** * Perform an action for all heights which have been set. + * * @param consumer Action to perform */ public void forEach(IntConsumer consumer) { @@ -94,7 +93,9 @@ public class BinaryColumn { /** * Return a {@link BinaryColumn} of equal height with a boolean AND operation applied to each height. + * * @param that Other binary column, must match this column's height. + * * @return Merged column. * * @throws IllegalArgumentException if column heights do not match @@ -105,7 +106,9 @@ public class BinaryColumn { /** * Return a {@link BinaryColumn} of equal height with a boolean OR operation applied to each height. + * * @param that Other binary column, must match this column's height. + * * @return Merged column. * * @throws IllegalArgumentException if column heights do not match @@ -121,7 +124,7 @@ public class BinaryColumn { private BinaryColumn bool(BinaryColumn that, BooleanBinaryOperator operator) { int smallMinY = Math.min(this.minY, that.minY); int bigMaxY = Math.max(this.maxY, that.maxY); - + return new BinaryColumn(smallMinY, bigMaxY, y -> operator.apply(() -> this.get(y), () -> that.get(y))); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java b/common/api/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java index 1a9f4e878..1cbc6f8ad 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java @@ -7,8 +7,8 @@ package com.dfsek.terra.api.structure.feature; -import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.registry.key.StringIdentifiable; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.world.WritableWorld; 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 8ac5c1054..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 @@ -1,9 +1,9 @@ package com.dfsek.terra.api.util; -import com.dfsek.terra.api.util.vector.Vector3Int; - import java.util.function.Consumer; +import com.dfsek.terra.api.util.vector.Vector3Int; + public final class GeometryUtil { private GeometryUtil() { diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/collection/MaterialSet.java b/common/api/src/main/java/com/dfsek/terra/api/util/collection/MaterialSet.java index a7f02a153..25cf98eb1 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/collection/MaterialSet.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/collection/MaterialSet.java @@ -9,7 +9,6 @@ package com.dfsek.terra.api.util.collection; import java.io.Serial; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.NoSuchElementException; 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 cf94c16e9..f5d5863c6 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 @@ -7,9 +7,6 @@ package com.dfsek.terra.api.util.collection; -import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.util.vector.Vector3Int; - import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -25,6 +22,8 @@ import java.util.function.Function; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.util.mutable.MutableInteger; +import com.dfsek.terra.api.util.vector.Vector3; +import com.dfsek.terra.api.util.vector.Vector3Int; public class ProbabilityCollection implements Collection { 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 3f3c0e50f..1ac2046f8 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 @@ -35,7 +35,6 @@ public class Vector2 { } - /** * Get the length of this Vector * @@ -127,34 +126,40 @@ public class Vector2 { return new Mutable(x, z); } + @Override + public String toString() { + return "(" + x + ", " + z + ")"; + } + + public static class Mutable extends Vector2 { - + private Mutable(double x, double z) { super(x, z); } - + public double getX() { return x; } - - public double getZ() { - return z; - } - - public Vector2 immutable() { - return Vector2.of(x, z); - } - + public Mutable setX(double x) { this.x = x; return this; } - + + public double getZ() { + return z; + } + public Mutable setZ(double z) { this.z = z; return this; } - + + public Vector2 immutable() { + return Vector2.of(x, z); + } + /** * Get the length of this Vector * @@ -163,7 +168,7 @@ public class Vector2 { public double length() { return FastMath.sqrt(lengthSquared()); } - + /** * Get the squared length of this Vector * @@ -172,13 +177,13 @@ public class Vector2 { public double lengthSquared() { return x * x + z * z; } - + public Mutable add(double x, double z) { this.x += x; this.z += z; return this; } - + /** * Multiply X and Z components by a value. * @@ -191,7 +196,7 @@ public class Vector2 { z *= m; return this; } - + /** * Add this vector to another. * @@ -204,7 +209,7 @@ public class Vector2 { z += other.getZ(); return this; } - + /** * Subtract a vector from this vector, * @@ -217,7 +222,7 @@ public class Vector2 { z -= other.getZ(); return this; } - + /** * Normalize this vector to length 1 * @@ -227,7 +232,7 @@ public class Vector2 { divide(length()); return this; } - + /** * Divide X and Z components by a value. * @@ -241,9 +246,4 @@ public class Vector2 { return this; } } - - @Override - public String toString() { - return "(" + x + ", " + z + ")"; - } } 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 00418245a..09ce8715d 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 @@ -54,33 +54,6 @@ public class Vector2Int { }; } - 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); - } - } - @Override public int hashCode() { return (31 * x) + z; @@ -93,4 +66,32 @@ 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 b95d03837..5b50cd52b 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 @@ -150,69 +150,75 @@ public class Vector3 { return new Mutable(x, y, z); } + @Override + public String toString() { + return "(" + getX() + ", " + getY() + ", " + getZ() + ")"; + } + + public static class Mutable extends Vector3 { private Mutable(double x, double y, double z) { super(x, y, z); } - + public static Mutable of(double x, double y, double z) { return new Mutable(x, y, z); } - + public Vector3 immutable() { return Vector3.of(x, y, z); } - + public double getZ() { return z; } - + public Mutable setZ(double z) { this.z = z; return this; } - + public double getX() { return x; } - + public Mutable setX(double x) { this.x = x; return this; } - + public double getY() { return y; } - + public Mutable setY(double y) { this.y = y; return this; } - + public double lengthSquared() { return x * x + y * y + z * z; } - + public double length() { return FastMath.sqrt(lengthSquared()); } - + public double inverseLength() { return FastMath.invSqrtQuick(lengthSquared()); } - + public Mutable normalize() { return this.multiply(this.inverseLength()); } - + public Mutable subtract(int x, int y, int z) { this.x -= x; this.y -= y; this.z -= z; return this; } - + /** * Calculates the dot product of this vector with another. The dot product * is defined as x1*x2+y1*y2+z1*z2. The returned value is a scalar. @@ -224,48 +230,48 @@ public class Vector3 { public double dot(@NotNull Vector3 other) { return x * other.getX() + y * other.getY() + z * other.getZ(); } - + public Mutable subtract(Vector3 end) { x -= end.getX(); y -= end.getY(); z -= end.getZ(); return this; } - + public Mutable multiply(double m) { x *= m; y *= m; z *= m; return this; } - + public Mutable add(double x, double y, double z) { this.x += x; this.y += y; this.z += z; return this; } - + public Mutable add(Vector3 other) { this.x += other.getX(); this.y += other.getY(); this.z += other.getZ(); return this; } - + public Mutable add(Vector3Int other) { this.x += other.getX(); this.y += other.getY(); this.z += other.getZ(); return this; } - + public Mutable add(Vector2 other) { this.x += other.getX(); this.z += other.getZ(); return this; } - + /** * Rotates the vector around a given arbitrary axis in 3 dimensional space. * @@ -291,7 +297,7 @@ public class Vector3 { public Mutable rotateAroundAxis(@NotNull Vector3 axis, double angle) throws IllegalArgumentException { return rotateAroundNonUnitAxis(axis.isNormalized() ? axis : axis.mutable().normalize().immutable(), angle); } - + /** * Rotates the vector around a given arbitrary axis in 3 dimensional space. * @@ -316,11 +322,11 @@ public class Vector3 { public Mutable rotateAroundNonUnitAxis(@NotNull Vector3 axis, double angle) throws IllegalArgumentException { double x = getX(), y = getY(), z = getZ(); double x2 = axis.getX(), y2 = axis.getY(), z2 = axis.getZ(); - + double cosTheta = Math.cos(angle); double sinTheta = Math.sin(angle); double dotProduct = this.dot(axis); - + double xPrime = x2 * dotProduct * (1d - cosTheta) + x * cosTheta + (-z2 * y + y2 * z) * sinTheta; @@ -330,10 +336,10 @@ public class Vector3 { double zPrime = z2 * dotProduct * (1d - cosTheta) + z * cosTheta + (-y2 * x + x2 * y) * sinTheta; - + return setX(xPrime).setY(yPrime).setZ(zPrime); } - + /** * Rotates the vector around the x axis. *

@@ -351,12 +357,12 @@ public class Vector3 { public Mutable rotateAroundX(double angle) { double angleCos = Math.cos(angle); double angleSin = Math.sin(angle); - + double y = angleCos * getY() - angleSin * getZ(); double z = angleSin * getY() + angleCos * getZ(); return setY(y).setZ(z); } - + /** * Rotates the vector around the y axis. *

@@ -374,12 +380,12 @@ public class Vector3 { public Mutable rotateAroundY(double angle) { double angleCos = Math.cos(angle); double angleSin = Math.sin(angle); - + double x = angleCos * getX() + angleSin * getZ(); double z = -angleSin * getX() + angleCos * getZ(); return setX(x).setZ(z); } - + /** * Rotates the vector around the z axis *

@@ -397,37 +403,32 @@ public class Vector3 { public Mutable rotateAroundZ(double angle) { double angleCos = Math.cos(angle); double angleSin = Math.sin(angle); - + double x = angleCos * getX() - angleSin * getY(); double y = angleSin * getX() + angleCos * getY(); return setX(x).setY(y); } - + @Override public int hashCode() { int hash = 13; - + hash = 79 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32)); hash = 79 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32)); hash = 79 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32)); return hash; } - + public int getBlockX() { return FastMath.floorToInt(x); } - + public int getBlockY() { return FastMath.floorToInt(y); } - + public int getBlockZ() { return FastMath.floorToInt(z); } } - - @Override - public String toString() { - return "(" + getX() + ", " + getY() + ", " + getZ() + ")"; - } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3Int.java b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3Int.java index 8a0efe36b..842b54950 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3Int.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/vector/Vector3Int.java @@ -91,7 +91,7 @@ public class Vector3Int { this.z += z; return this; } - + public Vector3 toVector3() { return Vector3.of(x, y, z); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/BufferedWorld.java b/common/api/src/main/java/com/dfsek/terra/api/world/BufferedWorld.java index 8eada3fee..b9fc16305 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/BufferedWorld.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/BufferedWorld.java @@ -37,6 +37,10 @@ public class BufferedWorld implements WritableWorld { this.writeInterceptor = writeInterceptor; } + protected static Builder builder(WritableWorld world) { + return new Builder(world); + } + @Override public Object getHandle() { return delegate.getHandle(); @@ -101,6 +105,7 @@ public class BufferedWorld implements WritableWorld { return delegate; } + public static final class Builder { private final WritableWorld delegate; private ReadInterceptor readInterceptor; @@ -155,8 +160,4 @@ public class BufferedWorld implements WritableWorld { Objects.requireNonNullElse(writeInterceptor, Interceptors.writeThrough())); } } - - protected static Builder builder(WritableWorld world) { - return new Builder(world); - } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/ReadableWorld.java b/common/api/src/main/java/com/dfsek/terra/api/world/ReadableWorld.java index 3be9517bd..931f599d2 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/ReadableWorld.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/ReadableWorld.java @@ -12,16 +12,20 @@ import com.dfsek.terra.api.util.vector.Vector3Int; public interface ReadableWorld extends World { /** * Get the {@link BlockState} at a location. + * * @param x X coordinate * @param y Y coordinate * @param z Z coordinate + * * @return {@link BlockState} at coordinates. */ BlockState getBlockState(int x, int y, int z); /** * Get the {@link BlockState} at a location. + * * @param position Location to get block. + * * @return {@link BlockState} at coordinates. */ default BlockState getBlockState(Vector3 position) { @@ -30,7 +34,9 @@ public interface ReadableWorld extends World { /** * Get the {@link BlockState} at a location. + * * @param position Location to get block. + * * @return {@link BlockState} at coordinates. */ default BlockState getBlockState(Vector3Int position) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index 973e0194d..938f7ed58 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -12,18 +12,21 @@ import com.dfsek.terra.api.world.info.WorldProperties; public interface World extends WorldProperties { /** * Get the {@link ChunkGenerator} this world uses. + * * @return Chunk generator. */ ChunkGenerator getGenerator(); /** * Get the {@link BiomeProvider} this world uses. + * * @return Biome provider. */ BiomeProvider getBiomeProvider(); /** * Get the {@link ConfigPack} this world uses. + * * @return Config pack. */ ConfigPack getPack(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/Biome.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/Biome.java index c630236b9..7d2ec6189 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/Biome.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/Biome.java @@ -28,12 +28,14 @@ public interface Biome extends PropertyHolder, StringIdentifiable { /** * Get the color of this biome. + * * @return ARGB color of this biome */ int getColor(); /** * Get the tags this biome holds + * * @return A {@link Set} of String tags this biome holds. */ Set getTags(); 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 ec159321d..7fc01b8e1 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 @@ -1,16 +1,16 @@ package com.dfsek.terra.api.world.biome.generation; +import java.util.HashMap; +import java.util.Map; + import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.world.biome.Biome; -import java.util.HashMap; -import java.util.Map; - /** * A biome provider implementation that lazily evaluates biomes, and caches them. - * + *

* This is for use in chunk generators, it makes the assumption that the seed remains the same for the duration of its use! */ public class CachingBiomeProvider implements BiomeProvider, Handle { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java index c13adab9e..b88c8bc85 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java @@ -7,15 +7,14 @@ package com.dfsek.terra.api.world.chunk.generation; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.chunk.generation.util.Palette; -import com.dfsek.terra.api.world.info.WorldProperties; - import org.jetbrains.annotations.NotNull; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3Int; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.chunk.generation.util.Palette; +import com.dfsek.terra.api.world.info.WorldProperties; public interface ChunkGenerator { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Column.java b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Column.java index 81b99306b..ac3a49ce4 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Column.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Column.java @@ -67,27 +67,28 @@ public class Column { return new BinaryColumnBuilder(this); } + @SuppressWarnings("unchecked") + public Column adjacent(int offsetX, int offsetZ) { + return (Column) world.column(x + offsetX, z + offsetZ); + } + + public static class BinaryColumnBuilder { private final boolean[] arr; private final Column column; - + public BinaryColumnBuilder(Column column) { this.column = column; arr = new boolean[column.getMaxY() - column.getMinY()]; } - + public BinaryColumn build() { return new BinaryColumn(column.getMinY(), column.getMaxY(), arr); } - + public BinaryColumnBuilder set(int y) { arr[y - column.getMinY()] = true; return this; } } - - @SuppressWarnings("unchecked") - public Column adjacent(int offsetX, int offsetZ) { - return (Column) world.column(x + offsetX, z + offsetZ); - } } \ No newline at end of file diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Palette.java b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Palette.java index 38a3c24ff..0a15b7be2 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Palette.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/chunk/generation/util/Palette.java @@ -8,8 +8,6 @@ package com.dfsek.terra.api.world.chunk.generation.util; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; public interface Palette { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/util/Interceptors.java b/common/api/src/main/java/com/dfsek/terra/api/world/util/Interceptors.java index 6ef2514d4..c608ea4d9 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/util/Interceptors.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/util/Interceptors.java @@ -2,9 +2,11 @@ package com.dfsek.terra.api.world.util; public final class Interceptors { private static final ReadInterceptor READ_THROUGH = ((x, y, z, world) -> world.getBlockState(x, y, z)); - private static final WriteInterceptor WRITE_THROUGH = ((x, y, z, block, world, physics) -> world.setBlockState(x, y, z, block, physics)); + private static final WriteInterceptor WRITE_THROUGH = ((x, y, z, block, world, physics) -> world.setBlockState(x, y, z, block, + physics)); + private Interceptors() { - + } public static ReadInterceptor readThrough() { 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 b2f33e78f..3241f565a 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 @@ -18,9 +18,6 @@ package com.dfsek.terra; import com.dfsek.tectonic.api.TypeRegistry; - -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.jetbrains.annotations.NotNull; @@ -60,6 +57,7 @@ import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.registry.key.StringIdentifiable; import com.dfsek.terra.api.util.mutable.MutableBoolean; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.config.GenericLoaders; import com.dfsek.terra.config.PluginConfigImpl; import com.dfsek.terra.event.EventManagerImpl; @@ -151,24 +149,24 @@ public abstract class AbstractPlatform implements Platform { protected InternalAddon loadAddons() { List addonList = new ArrayList<>(); - + InternalAddon internalAddon = new InternalAddon(); - + addonList.add(internalAddon); - + platformAddon().forEach(addonList::add); - + BootstrapAddonLoader bootstrapAddonLoader = new BootstrapAddonLoader(); - + Path addonsFolder = getDataFolder().toPath().resolve("addons"); - + Injector platformInjector = new InjectorImpl<>(this); platformInjector.addExplicitTarget(Platform.class); - + bootstrapAddonLoader.loadAddons(addonsFolder, getClass().getClassLoader()) .forEach(bootstrapAddon -> { platformInjector.inject(bootstrapAddon); - + bootstrapAddon.loadAddons(addonsFolder, getClass().getClassLoader()) .forEach(addonList::add); }); @@ -179,7 +177,7 @@ public abstract class AbstractPlatform implements Platform { builder.append("Loading ") .append(addonList.size()) .append(" Terra addons:"); - + for(BaseAddon addon : addonList) { builder.append("\n ") .append("- ") @@ -187,10 +185,10 @@ public abstract class AbstractPlatform implements Platform { .append("@") .append(addon.getVersion().getFormatted()); } - + logger.info(builder.toString()); } - + DependencySorter sorter = new DependencySorter(); addonList.forEach(sorter::add); sorter.sort().forEach(addon -> { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/addon/DependencySorter.java b/common/implementation/base/src/main/java/com/dfsek/terra/addon/DependencySorter.java index 8ec377c39..5b1402c44 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/addon/DependencySorter.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/addon/DependencySorter.java @@ -62,7 +62,8 @@ public class DependencySorter { private BaseAddon get(String id, BaseAddon addon) { if(!addons.containsKey(id)) { - throw new DependencyException("Addon " + addon.getID() + " specifies dependency on " + id + ", versions " + addon.getDependencies().get(id).getFormatted() + + throw new DependencyException("Addon " + addon.getID() + " specifies dependency on " + id + ", versions " + + addon.getDependencies().get(id).getFormatted() + ", but no such addon is installed."); } return addons.get(id); diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/addon/InternalAddon.java b/common/implementation/base/src/main/java/com/dfsek/terra/addon/InternalAddon.java index bba04251d..0a63af2db 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/addon/InternalAddon.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/addon/InternalAddon.java @@ -19,25 +19,15 @@ package com.dfsek.terra.addon; import ca.solostudios.strata.Versions; import ca.solostudios.strata.version.Version; -import cloud.commandframework.ArgumentDescription; -import cloud.commandframework.CommandManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.command.arguments.RegistryArgument; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.command.CommandSender; -import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; -import com.dfsek.terra.api.event.functional.FunctionalEventHandler; public class InternalAddon implements BaseAddon { private static final Version VERSION = Versions.getVersion(1, 0, 0); public InternalAddon() { - + } @Override diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/GenericTemplateSupplierLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/GenericTemplateSupplierLoader.java index 21fc58a87..0c24524fb 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/GenericTemplateSupplierLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/GenericTemplateSupplierLoader.java @@ -19,11 +19,11 @@ package com.dfsek.terra.config.loaders; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.tectonic.api.depth.DepthTracker; -import com.dfsek.tectonic.api.exception.ConfigException; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; import com.dfsek.tectonic.impl.MapConfiguration; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.Map; @@ -31,8 +31,6 @@ import java.util.function.Supplier; import com.dfsek.terra.api.registry.Registry; -import org.jetbrains.annotations.NotNull; - public class GenericTemplateSupplierLoader implements TypeLoader { private final Registry>> registry; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/LinkedHashMapLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/LinkedHashMapLoader.java index 72f2eba69..a79d6418b 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/LinkedHashMapLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/LinkedHashMapLoader.java @@ -32,7 +32,8 @@ import java.util.Map; @SuppressWarnings("unchecked") public class LinkedHashMapLoader implements TypeLoader> { @Override - public LinkedHashMap load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public LinkedHashMap load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, + DepthTracker depthTracker) throws LoadException { Map config = (Map) c; LinkedHashMap map = new LinkedHashMap<>(); if(t instanceof AnnotatedParameterizedType pType) { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/MaterialSetLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/MaterialSetLoader.java index 4fc466afd..1debeb906 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/MaterialSetLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/MaterialSetLoader.java @@ -21,6 +21,7 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.List; @@ -28,13 +29,12 @@ import java.util.List; import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.util.collection.MaterialSet; -import org.jetbrains.annotations.NotNull; - @SuppressWarnings("unchecked") public class MaterialSetLoader implements TypeLoader { @Override - public MaterialSet load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { + public MaterialSet load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) + throws LoadException { List stringData = (List) o; if(stringData.size() == 1) { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java index e5fb40333..01cda5c4b 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java @@ -21,6 +21,7 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedParameterizedType; import java.lang.reflect.AnnotatedType; @@ -30,8 +31,6 @@ import java.util.Map.Entry; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import org.jetbrains.annotations.NotNull; - @SuppressWarnings("unchecked") public class ProbabilityCollectionLoader implements TypeLoader> { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java index 2f3fa9995..b4e55f935 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java @@ -33,7 +33,8 @@ import com.dfsek.terra.api.util.Range; @SuppressWarnings("unchecked") public class RangeLoader implements TypeLoader { @Override - public Range load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { + public Range load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) + throws LoadException { if(o instanceof Map) { Map map = (Map) o; return new ConstantRange(map.get("min"), map.get("max")); diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionLoader.java index 15c5260b1..66a066224 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionLoader.java @@ -14,7 +14,8 @@ import java.lang.reflect.AnnotatedType; public class VersionLoader implements TypeLoader { @Override - public Version load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public Version load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { try { return Versions.parseVersion((String) c); } catch(ParseException e) { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionRangeLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionRangeLoader.java index fb41e1df4..c4df1682c 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionRangeLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/VersionRangeLoader.java @@ -31,7 +31,8 @@ import java.lang.reflect.AnnotatedType; public class VersionRangeLoader implements TypeLoader { @Override - public VersionRange load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public VersionRange load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { try { return Versions.parseVersionRange((String) c); } catch(ParseException e) { 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 430d76537..98f24842c 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 @@ -21,6 +21,7 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; +import org.jetbrains.annotations.NotNull; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; @@ -29,8 +30,6 @@ import java.lang.reflect.AnnotatedType; import com.dfsek.terra.api.config.Loader; -import org.jetbrains.annotations.NotNull; - public class BufferedImageLoader implements TypeLoader { private final Loader files; @@ -40,7 +39,8 @@ public class BufferedImageLoader implements TypeLoader { } @Override - public BufferedImage load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public BufferedImage load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { try { return ImageIO.read(files.get((String) c)); } catch(IOException e) { diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index 6accc1d3a..887e697ae 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -22,15 +22,10 @@ import ca.solostudios.strata.version.VersionRange; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.config.Configuration; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; -import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.AbstractConfigLoader; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; import com.dfsek.tectonic.yaml.YamlConfiguration; - -import com.dfsek.terra.api.properties.Context; -import com.dfsek.terra.api.registry.key.RegistryKey; - import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimaps; import org.jetbrains.annotations.NotNull; @@ -71,9 +66,11 @@ import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.event.events.config.type.ConfigTypePostLoadEvent; +import com.dfsek.terra.api.properties.Context; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.api.tectonic.ShortcutLoader; import com.dfsek.terra.api.util.generic.Construct; import com.dfsek.terra.api.util.generic.pair.Pair; @@ -101,11 +98,10 @@ import com.dfsek.terra.registry.ShortcutHolder; * Represents a Terra configuration pack. */ public class ConfigPackImpl implements ConfigPack { - private final Context context = new Context(); public static final TypeKey> CONFIG_TYPE_TYPE_KEY = new TypeKey<>() { }; private static final Logger logger = LoggerFactory.getLogger(ConfigPackImpl.class); - + private final Context context = new Context(); private final ConfigPackTemplate template = new ConfigPackTemplate(); private final AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader(); @@ -216,10 +212,11 @@ public class ConfigPackImpl implements ConfigPack { Object loaded = ((ConfigFactory) configType.getFactory()).build( selfLoader.load(configType.getTemplate(this, platform), configuration), platform); platform.getEventManager().callEvent(new ConfigurationLoadEvent(this, - configuration, - template -> selfLoader.load(template, configuration), - configType, - loaded)); + configuration, + template -> selfLoader.load(template, + configuration), + configType, + loaded)); return Pair.of(configuration.getID(), loaded); }) .toList() 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 9f8d9c5a2..810fd1b35 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 @@ -23,9 +23,6 @@ import com.dfsek.tectonic.api.depth.IndexLevel; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.preprocessor.Result; - -import com.dfsek.terra.api.util.generic.pair.Pair; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; @@ -37,6 +34,7 @@ import java.util.Optional; import java.util.Set; import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.util.generic.pair.Pair; public class MetaListLikePreprocessor extends MetaPreprocessor { @@ -64,13 +62,14 @@ public class MetaListLikePreprocessor extends MetaPreprocessor { if(!s.startsWith("<< ")) continue; String meta = s.substring(3); - + Pair pair = getMetaValue(meta, depthTracker); Object metaValue = pair.getRight(); if(!(metaValue instanceof List)) { throw new LoadException( - "MetaList/Set injection candidate must be list, is type " + metaValue.getClass().getCanonicalName(), depthTracker); + "MetaList/Set injection candidate must be list, is type " + metaValue.getClass().getCanonicalName(), + depthTracker); } List metaList = (List) metaValue; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaMapPreprocessor.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaMapPreprocessor.java index d79e216d7..85ca19bf6 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaMapPreprocessor.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaMapPreprocessor.java @@ -23,9 +23,6 @@ import com.dfsek.tectonic.api.depth.EntryLevel; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.preprocessor.Result; - -import com.dfsek.terra.api.util.generic.pair.Pair; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; @@ -36,6 +33,7 @@ import java.util.Map; import java.util.Optional; import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.api.util.reflection.TypeKey; @@ -65,10 +63,11 @@ public class MetaMapPreprocessor extends MetaPreprocessor { Object meta = pair.getRight(); if(!(meta instanceof Map)) { throw new LoadException( - "MetaMap injection candidate must be list, is type " + meta.getClass().getCanonicalName(), depthTracker); + "MetaMap injection candidate must be list, is type " + meta.getClass().getCanonicalName(), + depthTracker); } newMap.putAll((Map) meta); - + String configName; if(pair.getLeft().getName() == null) { configName = "Anonymous Configuration"; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaPreprocessor.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaPreprocessor.java index d46b63ac8..5ed605845 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaPreprocessor.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaPreprocessor.java @@ -22,11 +22,11 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.preprocessor.ValuePreprocessor; -import com.dfsek.terra.api.util.generic.pair.Pair; - import java.lang.annotation.Annotation; import java.util.Map; +import com.dfsek.terra.api.util.generic.pair.Pair; + public abstract class MetaPreprocessor implements ValuePreprocessor { private final Map configs; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaValuePreprocessor.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaValuePreprocessor.java index 8c2d207e7..5109324d4 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaValuePreprocessor.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/preprocessor/MetaValuePreprocessor.java @@ -21,15 +21,13 @@ import com.dfsek.tectonic.api.config.Configuration; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.preprocessor.Result; - -import com.dfsek.terra.api.util.generic.pair.Pair; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.Map; import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.util.generic.pair.Pair; public class MetaValuePreprocessor extends MetaPreprocessor { @@ -46,7 +44,7 @@ public class MetaValuePreprocessor extends MetaPreprocessor { if(value.startsWith("$") // it's a meta value. && !value.startsWith("${")) { // it's not a meta string template. Pair pair = getMetaValue(value.substring(1), depthTracker); - + String configName; if(pair.getLeft().getName() == null) { configName = "Anonymous Configuration"; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/registry/CheckedRegistryImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/registry/CheckedRegistryImpl.java index 5e09dd384..13e849675 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/registry/CheckedRegistryImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/registry/CheckedRegistryImpl.java @@ -20,10 +20,6 @@ package com.dfsek.terra.registry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; - -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.NotNull; @@ -38,6 +34,8 @@ import java.util.function.Consumer; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.reflection.TypeKey; /** @@ -48,15 +46,15 @@ import com.dfsek.terra.api.registry.exception.DuplicateEntryException; public class CheckedRegistryImpl implements CheckedRegistry { private final OpenRegistry registry; + public CheckedRegistryImpl(OpenRegistry registry) { + this.registry = registry; + } + @Internal public OpenRegistry getRegistry() { return registry; } - public CheckedRegistryImpl(OpenRegistry registry) { - this.registry = registry; - } - @Override public void register(@NotNull RegistryKey identifier, @NotNull T value) throws DuplicateEntryException { registry.registerChecked(identifier, value); @@ -103,7 +101,8 @@ public class CheckedRegistryImpl implements CheckedRegistry { } @Override - public T load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public T load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { return registry.load(t, c, loader, depthTracker); } } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/registry/LockedRegistryImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/registry/LockedRegistryImpl.java index 883b5e84c..977979148 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/registry/LockedRegistryImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/registry/LockedRegistryImpl.java @@ -20,10 +20,6 @@ package com.dfsek.terra.registry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; - -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; @@ -35,6 +31,8 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.reflection.TypeKey; /** @@ -90,7 +88,8 @@ public class LockedRegistryImpl implements Registry { } @Override - public T load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) throws LoadException { + public T load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader, DepthTracker depthTracker) + throws LoadException { return registry.load(t, c, loader, depthTracker); } } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/registry/OpenRegistryImpl.java b/common/implementation/base/src/main/java/com/dfsek/terra/registry/OpenRegistryImpl.java index fe428f926..d02ba1172 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/registry/OpenRegistryImpl.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/registry/OpenRegistryImpl.java @@ -20,11 +20,6 @@ package com.dfsek.terra.registry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; - -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.api.util.reflection.TypeKey; - import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimaps; import org.jetbrains.annotations.NotNull; @@ -43,6 +38,9 @@ import java.util.stream.Collectors; import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.generic.pair.Pair; +import com.dfsek.terra.api.util.reflection.TypeKey; /** @@ -66,7 +64,8 @@ public class OpenRegistryImpl implements OpenRegistry { } @Override - public T load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { + public T load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) + throws LoadException { return getByID((String) o).orElseThrow(() -> new LoadException("No such " + type.getType().getTypeName() + " matching \"" + o + "\" was found in this registry. Registry contains items: " + getItemsFormatted(), depthTracker)); diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/registry/ShortcutHolder.java b/common/implementation/base/src/main/java/com/dfsek/terra/registry/ShortcutHolder.java index e052f8115..8330a959b 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/registry/ShortcutHolder.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/registry/ShortcutHolder.java @@ -4,16 +4,15 @@ import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; - -import com.dfsek.terra.api.tectonic.ShortcutLoader; -import com.dfsek.terra.api.registry.Registry; - import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.HashMap; import java.util.Map; +import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.tectonic.ShortcutLoader; + public class ShortcutHolder implements TypeLoader { private final Map> shortcuts = new HashMap<>(); @@ -35,12 +34,14 @@ public class ShortcutHolder implements TypeLoader { } @Override - public T load(@NotNull AnnotatedType annotatedType, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { + public T load(@NotNull AnnotatedType annotatedType, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) + throws LoadException { String id = (String) o; if(id.contains(":")) { String shortcut = id.substring(0, id.indexOf(":")); if(shortcuts.containsKey(shortcut)) { - return shortcuts.get(shortcut).load(configLoader, id.substring(id.indexOf(":") + 1), depthTracker.intrinsic("Using shortcut \"" + shortcut + "\"")); + return shortcuts.get(shortcut).load(configLoader, id.substring(id.indexOf(":") + 1), + depthTracker.intrinsic("Using shortcut \"" + shortcut + "\"")); } throw new LoadException("Shortcut \"" + shortcut + "\" is not defined.", depthTracker); } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java b/common/implementation/base/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java index cbaa400da..08f180265 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java @@ -18,9 +18,6 @@ package com.dfsek.terra.registry.master; import com.dfsek.tectonic.api.exception.ConfigException; - -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,6 +28,7 @@ import java.util.zip.ZipFile; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.config.pack.ConfigPackImpl; import com.dfsek.terra.registry.OpenRegistryImpl; diff --git a/common/implementation/base/src/test/java/registry/RegistryTest.java b/common/implementation/base/src/test/java/registry/RegistryTest.java index 0b1a1f70e..3f17a1776 100644 --- a/common/implementation/base/src/test/java/registry/RegistryTest.java +++ b/common/implementation/base/src/test/java/registry/RegistryTest.java @@ -17,14 +17,13 @@ package registry; -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.api.util.reflection.TypeKey; - import org.junit.jupiter.api.Test; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.registry.CheckedRegistryImpl; import com.dfsek.terra.registry.OpenRegistryImpl; @@ -91,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/gradle.properties b/gradle.properties index 687583122..baf5d0e6a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,9 +8,6 @@ org.gradle.caching=true org.gradle.warning.mode=all #org.gradle.logging.level=info #org.gradle.configureondemand=true - - - # Project information terra.description=A modern voxel world generation modding platform terra.source=https://github.com/PolyhedralDev/Terra diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitCommandSender.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitCommandSender.java index 5816d5009..af1627c93 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitCommandSender.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitCommandSender.java @@ -17,17 +17,15 @@ package com.dfsek.terra.bukkit; -import com.dfsek.terra.api.entity.Entity; -import com.dfsek.terra.api.entity.Player; - -import com.dfsek.terra.bukkit.world.BukkitAdapter; - import org.bukkit.ChatColor; -import com.dfsek.terra.api.command.CommandSender; - import java.util.Optional; +import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.entity.Entity; +import com.dfsek.terra.api.entity.Player; +import com.dfsek.terra.bukkit.world.BukkitAdapter; + public class BukkitCommandSender implements CommandSender { private final org.bukkit.command.CommandSender delegate; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java index c12b2c2b4..eb98ef6f2 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java @@ -20,12 +20,11 @@ package com.dfsek.terra.bukkit; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; - -import com.dfsek.terra.bukkit.generator.BukkitChunkGeneratorWrapper; - import org.bukkit.Bukkit; import org.bukkit.entity.EntityType; import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.util.Locale; @@ -35,13 +34,11 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; import com.dfsek.terra.api.world.biome.PlatformBiome; +import com.dfsek.terra.bukkit.generator.BukkitChunkGeneratorWrapper; import com.dfsek.terra.bukkit.handles.BukkitItemHandle; import com.dfsek.terra.bukkit.handles.BukkitWorldHandle; import com.dfsek.terra.bukkit.world.BukkitPlatformBiome; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class PlatformImpl extends AbstractPlatform { private static final Logger LOGGER = LoggerFactory.getLogger(PlatformImpl.class); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index b58bd740c..381d14aa3 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -21,9 +21,6 @@ import cloud.commandframework.brigadier.CloudBrigadierManager; import cloud.commandframework.bukkit.CloudBukkitCapabilities; import cloud.commandframework.execution.CommandExecutionCoordinator; import cloud.commandframework.paper.PaperCommandManager; - -import com.dfsek.terra.api.command.CommandSender; - import org.bukkit.Bukkit; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.java.JavaPlugin; @@ -35,6 +32,7 @@ import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; +import com.dfsek.terra.api.command.CommandSender; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; @@ -67,15 +65,15 @@ public class TerraBukkitPlugin extends JavaPlugin { CommandExecutionCoordinator.simpleCoordinator(), BukkitAdapter::adapt, BukkitAdapter::adapt); - if (commandManager.queryCapability(CloudBukkitCapabilities.NATIVE_BRIGADIER)) { + if(commandManager.queryCapability(CloudBukkitCapabilities.NATIVE_BRIGADIER)) { commandManager.registerBrigadier(); final CloudBrigadierManager brigManager = commandManager.brigadierManager(); - if (brigManager != null) { + if(brigManager != null) { brigManager.setNativeNumberSuggestions(false); } } - - if (commandManager.queryCapability(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION)) { + + if(commandManager.queryCapability(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION)) { commandManager.registerAsynchronousCompletions(); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java index e0e230f50..e3015ec8f 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java @@ -17,10 +17,6 @@ package com.dfsek.terra.bukkit.generator; -import com.dfsek.terra.api.block.state.BlockState; - -import com.dfsek.terra.bukkit.world.BukkitWorldProperties; - import org.bukkit.World; import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.BlockPopulator; @@ -33,16 +29,18 @@ import java.util.List; import java.util.Random; import java.util.stream.Collectors; +import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper; import com.dfsek.terra.bukkit.world.BukkitProtoWorld; +import com.dfsek.terra.bukkit.world.BukkitWorldProperties; public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper { + private final BlockState air; private ChunkGenerator delegate; private ConfigPack pack; - private final BlockState air; public BukkitChunkGeneratorWrapper(ChunkGenerator delegate, ConfigPack pack, BlockState air) { this.delegate = delegate; @@ -54,11 +52,6 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener this.delegate = delegate; } - public void setPack(ConfigPack pack) { - this.pack = pack; - setDelegate(pack.getGeneratorProvider().newInstance(pack)); - } - @Override public @Nullable BiomeProvider getDefaultBiomeProvider(@NotNull WorldInfo worldInfo) { return new BukkitBiomeProvider(pack.getBiomeProvider()); @@ -66,7 +59,8 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener @Override public void generateNoise(@NotNull WorldInfo worldInfo, @NotNull Random random, int x, int z, @NotNull ChunkData chunkData) { - delegate.generateChunkData(new BukkitProtoChunk(chunkData), new BukkitWorldProperties(worldInfo), pack.getBiomeProvider().caching(), x, z); + delegate.generateChunkData(new BukkitProtoChunk(chunkData), new BukkitWorldProperties(worldInfo), pack.getBiomeProvider().caching(), + x, z); } @Override @@ -111,6 +105,11 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener return pack; } + public void setPack(ConfigPack pack) { + this.pack = pack; + setDelegate(pack.getGeneratorProvider().newInstance(pack)); + } + @Override public ChunkGenerator getHandle() { return delegate; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java index 1dc9d1ae0..33e2f6708 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java @@ -17,7 +17,6 @@ package com.dfsek.terra.bukkit.handles; -import com.dfsek.tectonic.api.exception.LoadException; import org.bukkit.Bukkit; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; @@ -40,7 +39,8 @@ public class BukkitWorldHandle implements WorldHandle { @Override public synchronized @NotNull BlockState createBlockState(@NotNull String data) { - org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData(data); // somehow bukkit managed to make this not thread safe! :) + org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData( + data); // somehow bukkit managed to make this not thread safe! :) return BukkitBlockState.newInstance(bukkitData); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java index d6e9f755d..04717e82b 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitAdapter.java @@ -18,10 +18,6 @@ package com.dfsek.terra.bukkit.world; -import com.dfsek.terra.api.entity.Entity; - -import com.dfsek.terra.bukkit.BukkitEntity; - import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.TreeType; @@ -35,12 +31,14 @@ import com.dfsek.terra.api.block.state.properties.enums.Half; import com.dfsek.terra.api.block.state.properties.enums.RailShape; import com.dfsek.terra.api.block.state.properties.enums.RedstoneConnection; import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.inventory.ItemStack; import com.dfsek.terra.api.inventory.item.Enchantment; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; import com.dfsek.terra.bukkit.BukkitCommandSender; +import com.dfsek.terra.bukkit.BukkitEntity; import com.dfsek.terra.bukkit.BukkitPlayer; import com.dfsek.terra.bukkit.world.block.BukkitBlockTypeAndItem; import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java index a7ce8c62b..9eb256fb9 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitChunk.java @@ -17,12 +17,12 @@ package com.dfsek.terra.bukkit.world; -import org.jetbrains.annotations.NotNull; - import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.chunk.Chunk; +import org.jetbrains.annotations.NotNull; + public class BukkitChunk implements Chunk { private final org.bukkit.Chunk delegate; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java index ebff44019..1b2dbd880 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitProtoWorld.java @@ -2,6 +2,11 @@ package com.dfsek.terra.bukkit.world; import org.bukkit.Location; import org.bukkit.generator.LimitedRegion; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; +import java.util.function.Supplier; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; @@ -18,17 +23,11 @@ import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState; import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity; import com.dfsek.terra.bukkit.world.entity.BukkitEntityType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Optional; -import java.util.function.Supplier; - public class BukkitProtoWorld implements ProtoWorld { + private static final Logger LOGGER = LoggerFactory.getLogger(BukkitProtoWorld.class); private final LimitedRegion delegate; private final BlockState air; - private static final Logger LOGGER = LoggerFactory.getLogger(BukkitProtoWorld.class); public BukkitProtoWorld(LimitedRegion delegate, BlockState air) { this.delegate = delegate; @@ -78,7 +77,8 @@ public class BukkitProtoWorld implements ProtoWorld { @Override public Entity spawnEntity(double x, double y, double z, EntityType entityType) { return access((int) x, (int) y, (int) z, () -> new BukkitEntity( - delegate.spawnEntity(new Location(delegate.getWorld(), x, y, z), ((BukkitEntityType) entityType).getHandle()))).orElse(null); + delegate.spawnEntity(new Location(delegate.getWorld(), x, y, z), ((BukkitEntityType) entityType).getHandle()))).orElse( + null); } @Override diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorldProperties.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorldProperties.java index 953932619..e324a62d7 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorldProperties.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorldProperties.java @@ -1,9 +1,9 @@ package com.dfsek.terra.bukkit.world; -import com.dfsek.terra.api.world.info.WorldProperties; - import org.bukkit.generator.WorldInfo; +import com.dfsek.terra.api.world.info.WorldProperties; + public class BukkitWorldProperties implements WorldProperties { private final WorldInfo delegate; diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/CLIPlatform.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/CLIPlatform.java index a442156fa..4a73c53ee 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/CLIPlatform.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/CLIPlatform.java @@ -1,25 +1,19 @@ package com.dfsek.terra.cli; import com.dfsek.tectonic.api.TypeRegistry; - -import com.dfsek.tectonic.api.exception.LoadException; -import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; - -import com.dfsek.terra.AbstractPlatform; -import com.dfsek.terra.api.handle.ItemHandle; -import com.dfsek.terra.api.handle.WorldHandle; - -import com.dfsek.terra.api.world.biome.PlatformBiome; -import com.dfsek.terra.cli.handle.CLIItemHandle; -import com.dfsek.terra.cli.handle.CLIWorldHandle; - import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; -import java.lang.reflect.AnnotatedType; + +import com.dfsek.terra.AbstractPlatform; +import com.dfsek.terra.api.handle.ItemHandle; +import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.world.biome.PlatformBiome; +import com.dfsek.terra.cli.handle.CLIItemHandle; +import com.dfsek.terra.cli.handle.CLIWorldHandle; public class CLIPlatform extends AbstractPlatform { @@ -27,11 +21,13 @@ public class CLIPlatform extends AbstractPlatform { private final CLIWorldHandle worldHandle = new CLIWorldHandle(); private final CLIItemHandle itemHandle = new CLIItemHandle(); + public CLIPlatform() { LOGGER.info("Root directory: {}", getDataFolder().getAbsoluteFile()); load(); LOGGER.info("Initialized Terra platform."); } + @Override public boolean reload() { return false; diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/TerraCLI.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/TerraCLI.java index 33ca6475a..39eaf59c6 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/TerraCLI.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/TerraCLI.java @@ -1,17 +1,16 @@ package com.dfsek.terra.cli; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; - -import com.dfsek.terra.api.util.vector.Vector2Int; -import com.dfsek.terra.cli.world.CLIWorld; - import net.querz.mca.MCAUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.api.util.vector.Vector2Int; +import com.dfsek.terra.cli.world.CLIWorld; + public final class TerraCLI { private static final Logger LOGGER = LoggerFactory.getLogger(TerraCLI.class); @@ -21,9 +20,9 @@ public final class TerraCLI { CLIPlatform platform = new CLIPlatform(); platform.getEventManager().callEvent(new PlatformInitializationEvent()); - + ConfigPack generate = platform.getConfigRegistry().getByID("OVERWORLD").orElseThrow(); // TODO: make this a cli argument - + CLIWorld world = new CLIWorld(2, 2, 384, -64, generate); world.generate(); 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 f22d08c29..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 @@ -1,11 +1,11 @@ package com.dfsek.terra.cli.block; +import net.querz.nbt.tag.CompoundTag; + import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.properties.Property; -import net.querz.nbt.tag.CompoundTag; - public class CLIBlockState implements BlockState { private final String value; @@ -30,7 +30,7 @@ public class CLIBlockState implements BlockState { for(String property : props) { String name = property.substring(0, property.indexOf('=')); String val = property.substring(property.indexOf('=') + 1); - + pTag.putString(name, val); } this.nbt.put("Properties", pTag); diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockType.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockType.java index bc5754048..361a283da 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockType.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/block/CLIBlockType.java @@ -20,7 +20,7 @@ public class CLIBlockType implements BlockType { } @Override - public String getHandle() { + public String getHandle() { return value; } diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIItemHandle.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIItemHandle.java index 3a183d006..719729138 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIItemHandle.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIItemHandle.java @@ -1,11 +1,11 @@ package com.dfsek.terra.cli.handle; +import java.util.Set; + import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.inventory.Item; import com.dfsek.terra.api.inventory.item.Enchantment; -import java.util.Set; - public class CLIItemHandle implements ItemHandle { @Override diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIWorldHandle.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIWorldHandle.java index 4ec2dc619..a6ec3a0e7 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIWorldHandle.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/handle/CLIWorldHandle.java @@ -1,16 +1,20 @@ package com.dfsek.terra.cli.handle; +import org.jetbrains.annotations.NotNull; + import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.handle.WorldHandle; - import com.dfsek.terra.cli.block.CLIBlockState; -import org.jetbrains.annotations.NotNull; - public class CLIWorldHandle implements WorldHandle { private static final CLIBlockState AIR = new CLIBlockState("minecraft:air"); + + public static CLIBlockState getAIR() { + return AIR; + } + @Override public @NotNull BlockState createBlockState(@NotNull String data) { return new CLIBlockState(data); @@ -25,8 +29,4 @@ public class CLIWorldHandle implements WorldHandle { public @NotNull EntityType getEntity(@NotNull String id) { return null; } - - public static CLIBlockState getAIR() { - return AIR; - } } diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/world/CLIWorld.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/world/CLIWorld.java index a09b0f306..ba5d16c41 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/world/CLIWorld.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/world/CLIWorld.java @@ -1,25 +1,7 @@ package com.dfsek.terra.cli.world; -import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.api.util.vector.Vector2Int; -import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; -import com.dfsek.terra.cli.NBTSerializable; - -import com.dfsek.terra.cli.world.chunk.CLIChunk; - import com.google.common.collect.Streams; import net.jafama.FastMath; - -import com.dfsek.terra.api.block.entity.BlockEntity; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.entity.Entity; -import com.dfsek.terra.api.entity.EntityType; -import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.ServerWorld; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; - import net.querz.mca.MCAFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +17,21 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Stream; +import com.dfsek.terra.api.block.entity.BlockEntity; +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.entity.Entity; +import com.dfsek.terra.api.entity.EntityType; +import com.dfsek.terra.api.util.generic.pair.Pair; +import com.dfsek.terra.api.util.vector.Vector2Int; +import com.dfsek.terra.api.util.vector.Vector3; +import com.dfsek.terra.api.world.ServerWorld; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; +import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; +import com.dfsek.terra.cli.NBTSerializable; +import com.dfsek.terra.cli.world.chunk.CLIChunk; + public class CLIWorld implements ServerWorld, NBTSerializable>> { private static final Logger LOGGER = LoggerFactory.getLogger(CLIWorld.class); @@ -65,7 +62,7 @@ public class CLIWorld implements ServerWorld, NBTSerializable { this.x = x; this.z = z; this.world = world; - this.chunks = new CLIChunk[32 * 32];; + this.chunks = new CLIChunk[32 * 32]; + ; } public CLIChunk get(int x, int z) { - int key = x + z*32; + int key = x + z * 32; CLIChunk chunk = chunks[key]; if(chunk == null) { chunk = new CLIChunk(x, z, world); diff --git a/platforms/cli/src/main/java/com/dfsek/terra/cli/world/chunk/CLIChunk.java b/platforms/cli/src/main/java/com/dfsek/terra/cli/world/chunk/CLIChunk.java index 79fa0832b..7bf397bef 100644 --- a/platforms/cli/src/main/java/com/dfsek/terra/cli/world/chunk/CLIChunk.java +++ b/platforms/cli/src/main/java/com/dfsek/terra/cli/world/chunk/CLIChunk.java @@ -27,7 +27,7 @@ public class CLIChunk implements Chunk, ProtoChunk, NBTSerializable { logger.info("Registering biomes..."); - + terraFabricPlugin.getConfigRegistry().forEach(pack -> { // Register all Terra biomes. pack.getCheckedRegistry(Biome.class) .forEach((id, biome) -> FabricUtil.registerBiome(biome, pack, event.getRegistryManager(), id)); @@ -81,7 +78,7 @@ public final class FabricAddon implements BaseAddon { .register(this, ConfigurationLoadEvent.class) .then(event -> { if(event.is(Biome.class)) { - event.getLoadedObject(Biome.class).getContext().put(event.load(new VanillaBiomeProperties())); + event.getLoadedObject(Biome.class).getContext().put(event.load(new VanillaBiomeProperties())); } }) .global(); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java index d830f3643..b77257753 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java @@ -19,21 +19,17 @@ package com.dfsek.terra.fabric; import cloud.commandframework.execution.CommandExecutionCoordinator; import cloud.commandframework.fabric.FabricServerCommandManager; - -import com.dfsek.terra.api.command.CommandSender; - -import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; - -import com.dfsek.terra.fabric.data.Codecs; - import net.fabricmc.api.ModInitializer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.util.Identifier; -import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; +import com.dfsek.terra.fabric.data.Codecs; + public class FabricEntryPoint implements ModInitializer { private static final Logger logger = LoggerFactory.getLogger(FabricEntryPoint.class); @@ -45,24 +41,24 @@ public class FabricEntryPoint implements ModInitializer { return TERRA_PLUGIN; } + public static void register() { // register the things + Registry.register(Registry.CHUNK_GENERATOR, new Identifier("terra:terra"), Codecs.FABRIC_CHUNK_GENERATOR_WRAPPER); + Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), Codecs.TERRA_BIOME_SOURCE); + } + @Override public void onInitialize() { logger.info("Initializing Terra Fabric mod..."); - + FabricServerCommandManager manager = new FabricServerCommandManager<>( CommandExecutionCoordinator.simpleCoordinator(), serverCommandSource -> (CommandSender) serverCommandSource, commandSender -> (ServerCommandSource) commandSender ); - - + + manager.brigadierManager().setNativeNumberSuggestions(false); - + TERRA_PLUGIN.getEventManager().callEvent(new CommandRegistrationEvent(manager)); } - - public static void register() { // register the things - Registry.register(Registry.CHUNK_GENERATOR, new Identifier("terra:terra"), Codecs.FABRIC_CHUNK_GENERATOR_WRAPPER); - Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), Codecs.TERRA_BIOME_SOURCE); - } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index 8beb238a1..e11297f80 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -26,8 +26,6 @@ import com.dfsek.tectonic.api.exception.LoadException; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.world.biome.Biome.Category; @@ -39,9 +37,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; import com.dfsek.terra.AbstractPlatform; import com.dfsek.terra.addon.EphemeralAddon; @@ -61,13 +57,12 @@ public class PlatformImpl extends AbstractPlatform { private final ItemHandle itemHandle = new FabricItemHandle(); private final WorldHandle worldHandle = new FabricWorldHandle(); private final Lazy dataFolder = Lazy.lazy(() -> new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra")); + private MinecraftServer server; public PlatformImpl() { load(); } - private MinecraftServer server; - public void setServer(MinecraftServer server) { this.server = server; } @@ -77,7 +72,7 @@ public class PlatformImpl extends AbstractPlatform { getTerraConfig().load(this); getRawConfigRegistry().clear(); boolean succeed = getRawConfigRegistry().loadAll(this); - + if(server != null) { server.reloadResources(server.getDataPackManager().getNames()).exceptionally(throwable -> { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PostLoadCompatibilityOptions.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PostLoadCompatibilityOptions.java index c5db4dff9..9a13e0029 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PostLoadCompatibilityOptions.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PostLoadCompatibilityOptions.java @@ -18,19 +18,9 @@ package com.dfsek.terra.fabric.config; import com.dfsek.tectonic.api.config.template.ConfigTemplate; -import com.dfsek.tectonic.api.config.template.annotations.Default; -import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.api.properties.Properties; -import net.minecraft.util.Identifier; - -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import com.dfsek.terra.api.world.biome.Biome; - @SuppressWarnings("FieldMayBeFinal") public class PostLoadCompatibilityOptions implements ConfigTemplate, Properties { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PreLoadCompatibilityOptions.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PreLoadCompatibilityOptions.java index 503e30e62..0bf7f0de1 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PreLoadCompatibilityOptions.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/PreLoadCompatibilityOptions.java @@ -23,11 +23,6 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.api.properties.Properties; -import net.minecraft.util.Identifier; - -import java.util.HashSet; -import java.util.Set; - @SuppressWarnings("FieldMayBeFinal") public class PreLoadCompatibilityOptions implements ConfigTemplate, Properties { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java index 2351eada1..52dbf7162 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java @@ -3,13 +3,12 @@ package com.dfsek.terra.fabric.config; import com.dfsek.tectonic.api.config.template.ConfigTemplate; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; - -import com.dfsek.terra.api.properties.Properties; - import net.minecraft.world.biome.Biome.Category; import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; +import com.dfsek.terra.api.properties.Properties; + public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Value("colors.grass") diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/data/Codecs.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/data/Codecs.java index 213b522d6..2fccf3b95 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/data/Codecs.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/data/Codecs.java @@ -1,11 +1,5 @@ package com.dfsek.terra.fabric.data; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.registry.key.RegistryKey; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; -import com.dfsek.terra.fabric.generation.TerraBiomeSource; - import com.mojang.serialization.Codec; import com.mojang.serialization.Lifecycle; import com.mojang.serialization.codecs.RecordCodecBuilder; @@ -15,6 +9,12 @@ import net.minecraft.util.registry.RegistryCodecs; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.registry.key.RegistryKey; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; +import com.dfsek.terra.fabric.generation.TerraBiomeSource; + public final class Codecs { public static final Codec TERRA_REGISTRY_KEY = RecordCodecBuilder @@ -47,8 +47,8 @@ public final class Codecs { public static final Codec FABRIC_CHUNK_GENERATOR_WRAPPER = RecordCodecBuilder.create( instance -> instance.group( RegistryCodecs.dynamicRegistry(Registry.STRUCTURE_SET_KEY, Lifecycle.stable(), StructureSet.CODEC) - .fieldOf("structures") - .forGetter(FabricChunkGeneratorWrapper::getNoiseRegistry), + .fieldOf("structures") + .forGetter(FabricChunkGeneratorWrapper::getNoiseRegistry), TERRA_BIOME_SOURCE.fieldOf("biome_source") .forGetter(FabricChunkGeneratorWrapper::getBiomeSource), Codec.LONG.fieldOf("seed").stable() diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BeardGenerator.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BeardGenerator.java index 1656beac7..114320488 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BeardGenerator.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/BeardGenerator.java @@ -23,12 +23,13 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.info.WorldProperties; + // net.minecraft.world.gen.StructureWeightSampler public class BeardGenerator { private static final float[] STRUCTURE_WEIGHT_TABLE = Util.make(new float[13824], array -> { - for (int i = 0; i < 24; ++i) { - for (int j = 0; j < 24; ++j) { - for (int k = 0; k < 24; ++k) { + for(int i = 0; i < 24; ++i) { + for(int j = 0; j < 24; ++j) { + for(int k = 0; k < 24; ++k) { array[i * 24 * 24 + j * 24 + k] = (float) calculateStructureWeight(j - 12, k - 12, i - 12); } } @@ -84,6 +85,45 @@ public class BeardGenerator { this.maxY = maxY; } + private static double getMagnitudeWeight(int x, int y, int z) { + double d = MathHelper.magnitude(x, (double) y / 2.0, z); + return MathHelper.clampedLerpFromProgress(d, 0.0, 6.0, 1.0, 0.0); + } + + /** + * Gets the structure weight from the array from the given position, or 0 if the position is out of bounds. + */ + private static double getStructureWeight(int x, int y, int z) { + int xOffset = x + 12; + int yOffset = y + 12; + int zOffset = z + 12; + if(xOffset < 0 || xOffset >= 24) { + return 0.0; + } + if(yOffset < 0 || yOffset >= 24) { + return 0.0; + } + if(zOffset < 0 || zOffset >= 24) { + return 0.0; + } + return STRUCTURE_WEIGHT_TABLE[zOffset * 24 * 24 + xOffset * 24 + yOffset]; + } + + /** + * Calculates the structure weight for the given position. + *

The weight increases as x and z approach {@code (0, 0)}, and positive y values make the weight negative while negative y + * values make the weight positive. + */ + private static double calculateStructureWeight(int x, int y, int z) { + double horizontalDistanceSquared = x * x + z * z; + double yOffset = y + 0.5; + double verticalSquared = yOffset * yOffset; + double naturalDistance = Math.pow(Math.E, -(verticalSquared / 16.0 + horizontalDistanceSquared / 16.0)); + double inverseSquareRootDistance = -yOffset * MathHelper.fastInverseSqrt(verticalSquared / 2.0 + horizontalDistanceSquared / 2.0) / + 2.0; + return inverseSquareRootDistance * naturalDistance; + } + public void generate(ChunkGenerator generator, WorldProperties worldProperties, BiomeProvider biomeProvider) { int xi = chunk.getPos().x << 4; int zi = chunk.getPos().z << 4; @@ -104,27 +144,28 @@ public class BeardGenerator { } } - public double calculateNoise(int x, int y, int z) { double noise = 0.0; - while (this.pieceIterator.hasNext()) { + while(this.pieceIterator.hasNext()) { StructurePiece structurePiece = this.pieceIterator.next(); BlockBox blockBox = structurePiece.getBoundingBox(); int structureX = Math.max(0, Math.max(blockBox.getMinX() - x, x - blockBox.getMaxX())); - int structureY = y - (blockBox.getMinY() + (structurePiece instanceof PoolStructurePiece ? ((PoolStructurePiece)structurePiece).getGroundLevelDelta() : 0)); + int structureY = y - (blockBox.getMinY() + (structurePiece instanceof PoolStructurePiece + ? ((PoolStructurePiece) structurePiece).getGroundLevelDelta() + : 0)); int structureZ = Math.max(0, Math.max(blockBox.getMinZ() - z, z - blockBox.getMaxZ())); StructureWeightType structureWeightType = structurePiece.getWeightType(); - if (structureWeightType == StructureWeightType.BURY) { + if(structureWeightType == StructureWeightType.BURY) { noise += getMagnitudeWeight(structureX, structureY, structureZ); continue; } - if (structureWeightType != StructureWeightType.BEARD) continue; + if(structureWeightType != StructureWeightType.BEARD) continue; noise += getStructureWeight(structureX, structureY, structureZ) * 0.8; } this.pieceIterator.back(this.pieces.size()); - while (this.junctionIterator.hasNext()) { + while(this.junctionIterator.hasNext()) { JigsawJunction structurePiece = this.junctionIterator.next(); int structureX = x - structurePiece.getSourceX(); int structureY = y - structurePiece.getSourceGroundY(); @@ -134,43 +175,4 @@ public class BeardGenerator { this.junctionIterator.back(this.junctions.size()); return noise; } - - private static double getMagnitudeWeight(int x, int y, int z) { - double d = MathHelper.magnitude(x, (double)y / 2.0, z); - return MathHelper.clampedLerpFromProgress(d, 0.0, 6.0, 1.0, 0.0); - } - - /** - * Gets the structure weight from the array from the given position, or 0 if the position is out of bounds. - */ - private static double getStructureWeight(int x, int y, int z) { - int xOffset = x + 12; - int yOffset = y + 12; - int zOffset = z + 12; - if (xOffset < 0 || xOffset >= 24) { - return 0.0; - } - if (yOffset < 0 || yOffset >= 24) { - return 0.0; - } - if (zOffset < 0 || zOffset >= 24) { - return 0.0; - } - return STRUCTURE_WEIGHT_TABLE[zOffset * 24 * 24 + xOffset * 24 + yOffset]; - } - - - /** - * Calculates the structure weight for the given position. - *

The weight increases as x and z approach {@code (0, 0)}, and positive y values make the weight negative while negative y - * values make the weight positive. - */ - private static double calculateStructureWeight(int x, int y, int z) { - double horizontalDistanceSquared = x * x + z * z; - double yOffset = y + 0.5; - double verticalSquared = yOffset * yOffset; - double naturalDistance = Math.pow(Math.E, -(verticalSquared / 16.0 + horizontalDistanceSquared / 16.0)); - double inverseSquareRootDistance = -yOffset * MathHelper.fastInverseSqrt(verticalSquared / 2.0 + horizontalDistanceSquared / 2.0) / 2.0; - return inverseSquareRootDistance * naturalDistance; - } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 56269425a..cf653ff53 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -67,10 +67,10 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C private final long seed; private final TerraBiomeSource biomeSource; - private ChunkGenerator delegate; private final Registry noiseRegistry; - private ConfigPack pack; private final RegistryEntry settings; + private ChunkGenerator delegate; + private ConfigPack pack; public FabricChunkGeneratorWrapper(Registry noiseRegistry, TerraBiomeSource biomeSource, long seed, ConfigPack configPack, RegistryEntry settingsSupplier) { @@ -130,10 +130,11 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C ProtoWorld world = (ProtoWorld) ((StructureAccessorAccessor) structureAccessor).getWorld(); BiomeProvider biomeProvider = pack.getBiomeProvider().caching(); delegate.generateChunkData((ProtoChunk) chunk, world, biomeProvider, chunk.getPos().x, chunk.getPos().z); - + PreLoadCompatibilityOptions compatibilityOptions = pack.getContext().get(PreLoadCompatibilityOptions.class); if(compatibilityOptions.isBeard()) { - new BeardGenerator(structureAccessor, chunk, compatibilityOptions.getBeardThreshold()).generate(delegate, world, biomeProvider); + new BeardGenerator(structureAccessor, chunk, compatibilityOptions.getBeardThreshold()).generate(delegate, world, + biomeProvider); } return chunk; }, executor); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java index 42d17771a..79a17c18a 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java @@ -17,24 +17,19 @@ package com.dfsek.terra.fabric.generation; -import com.dfsek.terra.fabric.data.Codecs; - -import com.dfsek.terra.fabric.util.ProtoPlatformBiome; - import com.mojang.serialization.Codec; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler; -import java.util.Map; import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.fabric.data.Codecs; +import com.dfsek.terra.fabric.util.ProtoPlatformBiome; public class TerraBiomeSource extends BiomeSource { @@ -54,10 +49,6 @@ public class TerraBiomeSource extends BiomeSource { this.pack = pack; } - public void setPack(ConfigPack pack) { - this.pack = pack; - } - @Override protected Codec getCodec() { return Codecs.TERRA_BIOME_SOURCE; @@ -85,6 +76,10 @@ public class TerraBiomeSource extends BiomeSource { return pack; } + public void setPack(ConfigPack pack) { + this.pack = pack; + } + public long getSeed() { return seed; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java index 01eb1fa89..9b2dfa40f 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java @@ -24,16 +24,10 @@ import net.minecraft.structure.StructureSet; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.world.gen.GeneratorOptions; import net.minecraft.world.gen.chunk.ChunkGenerator; - -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; - import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; -import java.util.function.Supplier; +import com.dfsek.terra.api.config.ConfigPack; @Environment(EnvType.CLIENT) @@ -51,6 +45,7 @@ public class TerraGeneratorType extends GeneratorType { RegistryEntry settingsSupplier = chunkGeneratorSettingsRegistry.getEntry(ChunkGeneratorSettings.OVERWORLD).orElseThrow(); Registry noiseRegistry = manager.get(Registry.STRUCTURE_SET_KEY); - return new FabricChunkGeneratorWrapper(noiseRegistry, new TerraBiomeSource(manager.get(Registry.BIOME_KEY), seed, pack), seed, pack, settingsSupplier); + return new FabricChunkGeneratorWrapper(noiseRegistry, new TerraBiomeSource(manager.get(Registry.BIOME_KEY), seed, pack), seed, pack, + settingsSupplier); } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/handle/FabricWorldHandle.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/handle/FabricWorldHandle.java index 0d4c07ade..50b0083e5 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/handle/FabricWorldHandle.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/handle/FabricWorldHandle.java @@ -17,20 +17,17 @@ package com.dfsek.terra.fabric.handle; -import com.dfsek.terra.api.block.state.BlockState; - import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import net.minecraft.block.Blocks; import net.minecraft.command.argument.BlockArgumentParser; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import org.jetbrains.annotations.NotNull; +import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.handle.WorldHandle; -import com.dfsek.terra.fabric.util.FabricAdapter; public class FabricWorldHandle implements WorldHandle { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/BiomeMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/BiomeMixin.java index e8fe8c78f..6b098cf33 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/BiomeMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/BiomeMixin.java @@ -20,7 +20,6 @@ package com.dfsek.terra.fabric.mixin.implementations; import net.minecraft.world.biome.Biome; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import com.dfsek.terra.api.world.biome.PlatformBiome; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/HandleImplementationMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/HandleImplementationMixin.java index 0b3e71440..0a2e611f9 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/HandleImplementationMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/HandleImplementationMixin.java @@ -1,7 +1,5 @@ package com.dfsek.terra.fabric.mixin.implementations; -import com.dfsek.terra.api.Handle; - import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; @@ -23,6 +21,8 @@ import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; +import com.dfsek.terra.api.Handle; + /** * A ton of Minecraft classes must implement Handle identically, we can just take care of it here diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/BlockMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/BlockMixin.java index 98879d9c5..02461f5d5 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/BlockMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/BlockMixin.java @@ -18,16 +18,12 @@ package com.dfsek.terra.fabric.mixin.implementations.block; import net.minecraft.block.Block; -import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import com.dfsek.terra.api.block.BlockType; -import com.dfsek.terra.fabric.util.FabricAdapter; @Mixin(Block.class) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/BlockEntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/BlockEntityMixin.java index 5c00b08c6..553e55e0b 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/BlockEntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/BlockEntityMixin.java @@ -17,19 +17,12 @@ package com.dfsek.terra.fabric.mixin.implementations.block.entity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.fabric.util.FabricAdapter; @Mixin(net.minecraft.block.entity.BlockEntity.class) @@ -37,7 +30,9 @@ import com.dfsek.terra.fabric.util.FabricAdapter; public abstract class BlockEntityMixin { public boolean terra$update(boolean applyPhysics) { if(((net.minecraft.block.entity.BlockEntity) (Object) this).hasWorld()) //noinspection ConstantConditions - ((net.minecraft.block.entity.BlockEntity) (Object) this).getWorld().getChunk(((net.minecraft.block.entity.BlockEntity) (Object) this).getPos()).setBlockEntity((net.minecraft.block.entity.BlockEntity) (Object) this); + ((net.minecraft.block.entity.BlockEntity) (Object) this).getWorld().getChunk( + ((net.minecraft.block.entity.BlockEntity) (Object) this).getPos()).setBlockEntity( + (net.minecraft.block.entity.BlockEntity) (Object) this); return true; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/MobSpawnerBlockEntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/MobSpawnerBlockEntityMixin.java index 34ae9ea0d..c30560bc7 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/MobSpawnerBlockEntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/entity/MobSpawnerBlockEntityMixin.java @@ -62,7 +62,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setDelay(int delay) { - + } public int terra$getMinSpawnDelay() { @@ -70,7 +70,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMinSpawnDelay(int delay) { - + } public int terra$getMaxSpawnDelay() { @@ -78,7 +78,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMaxSpawnDelay(int delay) { - + } public int terra$getSpawnCount() { @@ -86,7 +86,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setSpawnCount(int spawnCount) { - + } public int terra$getMaxNearbyEntities() { @@ -94,7 +94,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setMaxNearbyEntities(int maxNearbyEntities) { - + } public int terra$getRequiredPlayerRange() { @@ -102,7 +102,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setRequiredPlayerRange(int requiredPlayerRange) { - + } public int terra$getSpawnRange() { @@ -110,7 +110,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { } public void terra$setSpawnRange(int spawnRange) { - + } public void terra$applyState(String state) { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/BlockStateMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/BlockStateMixin.java index eb745089a..e16859689 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/BlockStateMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/BlockStateMixin.java @@ -1,21 +1,11 @@ package com.dfsek.terra.fabric.mixin.implementations.block.state; - -import com.dfsek.terra.api.block.BlockType; -import com.dfsek.terra.api.block.state.BlockState; - -import com.dfsek.terra.api.block.state.properties.Property; - -import com.dfsek.terra.fabric.mixin.access.StateAccessor; - import com.google.common.collect.ImmutableMap; import com.mojang.serialization.MapCodec; import net.minecraft.block.AbstractBlock.AbstractBlockState; import net.minecraft.block.Block; -import net.minecraft.server.world.ServerWorld; import net.minecraft.state.State; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; @@ -23,15 +13,19 @@ import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import java.util.Random; import java.util.stream.Collectors; +import com.dfsek.terra.api.block.BlockType; +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.block.state.properties.Property; +import com.dfsek.terra.fabric.mixin.access.StateAccessor; + @Mixin(AbstractBlockState.class) @Implements(@Interface(iface = BlockState.class, prefix = "terra$", remap = Interface.Remap.NONE)) public abstract class BlockStateMixin extends State { private BlockStateMixin(Block owner, ImmutableMap, Comparable> entries, - MapCodec codec) { + MapCodec codec) { super(owner, entries, codec); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/PropertyMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/PropertyMixin.java index e674fcb69..c0cb10943 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/PropertyMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/PropertyMixin.java @@ -1,7 +1,5 @@ package com.dfsek.terra.fabric.mixin.implementations.block.state; -import com.dfsek.terra.api.block.state.properties.Property; - import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; @@ -12,6 +10,8 @@ import org.spongepowered.asm.mixin.Shadow; import java.util.Collection; +import com.dfsek.terra.api.block.state.properties.Property; + @Mixin(net.minecraft.state.property.Property.class) @Implements(@Interface(iface = Property.class, prefix = "terra$", remap = Remap.NONE)) @@ -19,14 +19,13 @@ public abstract class PropertyMixin { @Shadow @Final private Class type; - - @Shadow - public abstract Collection getValues(); - @Shadow @Final private String name; + @Shadow + public abstract Collection getValues(); + @Intrinsic public Collection terra$values() { return getValues(); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java index a26334ac8..2ed92d1ce 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/chunk/ChunkRegionMixin.java @@ -45,7 +45,7 @@ public abstract class ChunkRegionMixin { public @NotNull BlockState terraChunk$getBlock(int x, int y, int z) { return (BlockState) ((ChunkRegion) (Object) this).getBlockState( - new BlockPos(x + (centerPos.getPos().x << 4), y, z + (centerPos.getPos().z << 4))); + new BlockPos(x + (centerPos.getPos().x << 4), y, z + (centerPos.getPos().z << 4))); } public int terraChunk$getX() { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java index 2cd3dd0d0..11a1e9784 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityMixin.java @@ -18,12 +18,10 @@ package com.dfsek.terra.fabric.mixin.implementations.entity; import net.minecraft.entity.Entity; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.math.BlockPos; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityTypeMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityTypeMixin.java index 30fe07456..cb31775fd 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityTypeMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/entity/EntityTypeMixin.java @@ -20,7 +20,6 @@ package com.dfsek.terra.fabric.mixin.implementations.entity; import net.minecraft.entity.EntityType; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/LockableContainerBlockEntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/LockableContainerBlockEntityMixin.java index 549bbccca..8d151de94 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/LockableContainerBlockEntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/LockableContainerBlockEntityMixin.java @@ -21,7 +21,6 @@ import net.minecraft.block.entity.LockableContainerBlockEntity; import net.minecraft.item.Items; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import com.dfsek.terra.api.inventory.Inventory; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/item/ItemMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/item/ItemMixin.java index c44260b13..4a1e8adb0 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/item/ItemMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/item/ItemMixin.java @@ -20,7 +20,6 @@ package com.dfsek.terra.fabric.mixin.implementations.inventory.item; import net.minecraft.item.Item; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -32,7 +31,7 @@ import com.dfsek.terra.api.inventory.ItemStack; public abstract class ItemMixin { @Shadow public abstract int getMaxDamage(); - + @SuppressWarnings("ConstantConditions") public ItemStack terra$newItemStack(int amount) { return (ItemStack) (Object) new net.minecraft.item.ItemStack((Item) (Object) this, amount); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/meta/EnchantmentMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/meta/EnchantmentMixin.java index c99aa1f10..0f31e564f 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/meta/EnchantmentMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/inventory/meta/EnchantmentMixin.java @@ -21,7 +21,6 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.util.registry.Registry; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -38,6 +37,7 @@ public abstract class EnchantmentMixin { @Shadow public abstract boolean canCombine(Enchantment other); + @SuppressWarnings("ConstantConditions") public boolean terra$canEnchantItem(ItemStack itemStack) { return isAcceptableItem((net.minecraft.item.ItemStack) (Object) itemStack); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/ChunkGenerator_ChunkGeneratorRegistrationMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/ChunkGenerator_ChunkGeneratorRegistrationMixin.java index 2526c59d0..a4b1340c8 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/ChunkGenerator_ChunkGeneratorRegistrationMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/ChunkGenerator_ChunkGeneratorRegistrationMixin.java @@ -1,14 +1,14 @@ package com.dfsek.terra.fabric.mixin.lifecycle; -import com.dfsek.terra.fabric.FabricEntryPoint; - import net.minecraft.world.gen.chunk.ChunkGenerator; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import com.dfsek.terra.fabric.FabricEntryPoint; + @Mixin(ChunkGenerator.class) public class ChunkGenerator_ChunkGeneratorRegistrationMixin { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java index 0e8f1bd34..7ef9e0348 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java @@ -17,12 +17,6 @@ package com.dfsek.terra.fabric.mixin.lifecycle.client; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; -import com.dfsek.terra.fabric.generation.TerraGeneratorType; -import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor; - import net.minecraft.client.MinecraftClient; import net.minecraft.client.RunArgs; import net.minecraft.client.world.GeneratorType; @@ -38,6 +32,12 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; +import com.dfsek.terra.fabric.generation.TerraGeneratorType; +import com.dfsek.terra.fabric.mixin.access.GeneratorTypeAccessor; + @Mixin(MinecraftClient.class) public class MinecraftClientMixin { @@ -45,6 +45,19 @@ public class MinecraftClientMixin { @Final private static Logger LOGGER; + @Redirect(method = "method_40187(Lnet/minecraft/util/registry/DynamicRegistryManager;Lnet/minecraft/world/gen/GeneratorOptions;" + + "Lnet/minecraft/world/level/LevelInfo;Lnet/minecraft/resource/ResourceManager;" + + "Lnet/minecraft/resource/DataPackSettings;)Lcom/mojang/datafixers/util/Pair;", + at = @At(value = "INVOKE", + target = "net/minecraft/util/registry/DynamicRegistryManager.createAndLoad ()" + + "Lnet/minecraft/util/registry/DynamicRegistryManager$Mutable;")) + private static Mutable injectBiomes() { + Mutable mutable = DynamicRegistryManager.createAndLoad(); + LOGGER.info("Injecting Terra biomes..."); + FabricEntryPoint.getPlatform().getEventManager().callEvent(new BiomeRegistrationEvent(mutable)); + return mutable; + } + @Inject(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/WindowProvider;createWindow" + "(Lnet/minecraft/client/WindowSettings;Ljava/lang/String;Ljava/lang/String;)" + @@ -60,17 +73,4 @@ public class MinecraftClientMixin { GeneratorTypeAccessor.getValues().add(1, generatorType); }); } - - @Redirect(method = "method_40187(Lnet/minecraft/util/registry/DynamicRegistryManager;Lnet/minecraft/world/gen/GeneratorOptions;" + - "Lnet/minecraft/world/level/LevelInfo;Lnet/minecraft/resource/ResourceManager;" + - "Lnet/minecraft/resource/DataPackSettings;)Lcom/mojang/datafixers/util/Pair;", - at = @At(value = "INVOKE", - target = "net/minecraft/util/registry/DynamicRegistryManager.createAndLoad ()" + - "Lnet/minecraft/util/registry/DynamicRegistryManager$Mutable;")) - private static Mutable injectBiomes() { - Mutable mutable = DynamicRegistryManager.createAndLoad(); - LOGGER.info("Injecting Terra biomes..."); - FabricEntryPoint.getPlatform().getEventManager().callEvent(new BiomeRegistrationEvent(mutable)); - return mutable; - } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java index 7dc546962..7ecb27c63 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java @@ -17,12 +17,6 @@ package com.dfsek.terra.fabric.mixin.lifecycle.server; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.PlatformImpl; -import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; -import com.dfsek.terra.fabric.generation.TerraBiomeSource; - import net.minecraft.server.dedicated.ServerPropertiesHandler; import net.minecraft.structure.StructureSet; import net.minecraft.util.registry.DynamicRegistryManager; @@ -39,7 +33,12 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Random; -import java.util.function.Supplier; + +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.fabric.PlatformImpl; +import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; +import com.dfsek.terra.fabric.generation.TerraBiomeSource; @Mixin(GeneratorOptions.class) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java index 0b428be5e..6a614af07 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java @@ -17,10 +17,6 @@ package com.dfsek.terra.fabric.mixin.lifecycle.server; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; - import net.minecraft.server.Main; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.DynamicRegistryManager.Mutable; @@ -33,6 +29,10 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; + @Mixin(Main.class) public class ServerMainMixin { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricAdapter.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricAdapter.java index 51b9e95c7..da6c3f6f8 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricAdapter.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricAdapter.java @@ -17,13 +17,12 @@ package com.dfsek.terra.fabric.util; -import com.dfsek.terra.api.world.info.WorldProperties; - import net.minecraft.block.enums.BlockHalf; import net.minecraft.block.enums.WallShape; import net.minecraft.block.enums.WireConnection; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.world.HeightLimitView; import com.dfsek.terra.api.block.state.properties.enums.Axis; import com.dfsek.terra.api.block.state.properties.enums.Half; @@ -31,8 +30,7 @@ import com.dfsek.terra.api.block.state.properties.enums.RailShape; import com.dfsek.terra.api.block.state.properties.enums.RedstoneConnection; import com.dfsek.terra.api.block.state.properties.enums.WallHeight; import com.dfsek.terra.api.util.vector.Vector3; - -import net.minecraft.world.HeightLimitView; +import com.dfsek.terra.api.world.info.WorldProperties; public final class FabricAdapter { @@ -61,17 +59,17 @@ public final class FabricAdapter { public long getSeed() { return seed; } - + @Override public int getMaxHeight() { return height.getTopY(); } - + @Override public int getMinHeight() { return height.getBottomY(); } - + @Override public Object getHandle() { return height; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java index a21acfc41..d14440f4e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/FabricUtil.java @@ -17,16 +17,6 @@ package com.dfsek.terra.fabric.util; -import com.dfsek.terra.api.block.entity.BlockEntity; -import com.dfsek.terra.api.block.entity.Container; -import com.dfsek.terra.api.block.entity.MobSpawner; -import com.dfsek.terra.api.block.entity.Sign; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions; -import com.dfsek.terra.fabric.config.VanillaBiomeProperties; -import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor; - import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.block.entity.MobSpawnerBlockEntity; import net.minecraft.block.entity.SignBlockEntity; @@ -44,6 +34,16 @@ import java.util.Locale; import java.util.Objects; import java.util.Optional; +import com.dfsek.terra.api.block.entity.BlockEntity; +import com.dfsek.terra.api.block.entity.Container; +import com.dfsek.terra.api.block.entity.MobSpawner; +import com.dfsek.terra.api.block.entity.Sign; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions; +import com.dfsek.terra.fabric.config.VanillaBiomeProperties; +import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor; + public final class FabricUtil { public static String createBiomeID(ConfigPack pack, com.dfsek.terra.api.registry.key.RegistryKey biomeID) { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java index b96e8a7a1..bc80b66f3 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/ProtoPlatformBiome.java @@ -19,14 +19,13 @@ package com.dfsek.terra.fabric.util; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; - -import com.dfsek.terra.api.world.biome.PlatformBiome; - import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.biome.Biome; import java.util.Objects; +import com.dfsek.terra.api.world.biome.PlatformBiome; + public class ProtoPlatformBiome implements PlatformBiome { private final Identifier identifier; diff --git a/platforms/fabric/src/main/resources/fabric.mod.json b/platforms/fabric/src/main/resources/fabric.mod.json index e713cb411..be23e7256 100644 --- a/platforms/fabric/src/main/resources/fabric.mod.json +++ b/platforms/fabric/src/main/resources/fabric.mod.json @@ -1,31 +1,31 @@ { "schemaVersion": 1, - "id": "terra", - "version": "@VERSION@", - "name": "Terra", - "description": "@DESCRIPTION@", - "authors": [ + "id": "terra", + "version": "@VERSION@", + "name": "Terra", + "description": "@DESCRIPTION@", + "authors": [ "dfsek" ], - "contact": { + "contact": { "homepage": "@WIKI@", - "sources": "@SOURCE@", - "issues": "@ISSUES@" + "sources": "@SOURCE@", + "issues": "@ISSUES@" }, - "license": "@LICENSE@", - "icon": "assets/terra/icon.png", - "environment": "*", - "entrypoints": { + "license": "@LICENSE@", + "icon": "assets/terra/icon.png", + "environment": "*", + "entrypoints": { "main": [ "com.dfsek.terra.fabric.FabricEntryPoint" ] }, - "mixins": [ + "mixins": [ "terra.mixins.json" ], - "depends": { + "depends": { "fabricloader": ">=0.7.4", - "minecraft": "1.18.x" + "minecraft": "1.18.x" }, "accessWidener": "terra.accesswidener" } \ No newline at end of file diff --git a/platforms/fabric/src/main/resources/terra.mixins.json b/platforms/fabric/src/main/resources/terra.mixins.json index 9f011e88a..925e0d5ee 100644 --- a/platforms/fabric/src/main/resources/terra.mixins.json +++ b/platforms/fabric/src/main/resources/terra.mixins.json @@ -1,50 +1,50 @@ { - "required": true, - "minVersion": "0.8", - "package": "com.dfsek.terra.fabric.mixin", - "compatibilityLevel": "JAVA_16", - "mixins": [ - "access.BiomeEffectsAccessor", - "access.MobSpawnerLogicAccessor", - "access.StateAccessor", - "access.StructureAccessorAccessor", - "implementations.BiomeMixin", - "implementations.HandleImplementationMixin", - "implementations.block.BlockMixin", - "implementations.block.entity.BlockEntityMixin", - "implementations.block.entity.LootableContainerBlockEntityMixin", - "implementations.block.entity.MobSpawnerBlockEntityMixin", - "implementations.block.entity.SignBlockEntityMixin", - "implementations.block.state.BlockStateMixin", - "implementations.block.state.PropertyMixin", - "implementations.chunk.ChunkRegionMixin", - "implementations.chunk.WorldChunkMixin", - "implementations.chunk.data.ProtoChunkMixin", - "implementations.entity.EntityMixin", - "implementations.entity.EntityTypeMixin", - "implementations.entity.PlayerEntityMixin", - "implementations.entity.ServerCommandSourceMixin", - "implementations.inventory.LockableContainerBlockEntityMixin", - "implementations.inventory.item.ItemMixin", - "implementations.inventory.item.ItemStackMixin", - "implementations.inventory.meta.EnchantmentMixin", - "implementations.inventory.meta.ItemStackDamageableMixin", - "implementations.inventory.meta.ItemStackMetaMixin", - "implementations.world.ChunkRegionMixin", - "implementations.world.ServerWorldMixin", - "lifecycle.ChunkGenerator_ChunkGeneratorRegistrationMixin", - "lifecycle.MinecraftServerMixin" - ], - "client": [ - "access.GeneratorTypeAccessor", - "lifecycle.client.MinecraftClientMixin" - ], - "server": [ - "lifecycle.server.GeneratorOptionsMixin", - "lifecycle.server.ServerMainMixin" - ], - "injectors": { - "defaultRequire": 1 - }, - "refmap": "terra-refmap.json" + "required": true, + "minVersion": "0.8", + "package": "com.dfsek.terra.fabric.mixin", + "compatibilityLevel": "JAVA_16", + "mixins": [ + "access.BiomeEffectsAccessor", + "access.MobSpawnerLogicAccessor", + "access.StateAccessor", + "access.StructureAccessorAccessor", + "implementations.BiomeMixin", + "implementations.HandleImplementationMixin", + "implementations.block.BlockMixin", + "implementations.block.entity.BlockEntityMixin", + "implementations.block.entity.LootableContainerBlockEntityMixin", + "implementations.block.entity.MobSpawnerBlockEntityMixin", + "implementations.block.entity.SignBlockEntityMixin", + "implementations.block.state.BlockStateMixin", + "implementations.block.state.PropertyMixin", + "implementations.chunk.ChunkRegionMixin", + "implementations.chunk.WorldChunkMixin", + "implementations.chunk.data.ProtoChunkMixin", + "implementations.entity.EntityMixin", + "implementations.entity.EntityTypeMixin", + "implementations.entity.PlayerEntityMixin", + "implementations.entity.ServerCommandSourceMixin", + "implementations.inventory.LockableContainerBlockEntityMixin", + "implementations.inventory.item.ItemMixin", + "implementations.inventory.item.ItemStackMixin", + "implementations.inventory.meta.EnchantmentMixin", + "implementations.inventory.meta.ItemStackDamageableMixin", + "implementations.inventory.meta.ItemStackMetaMixin", + "implementations.world.ChunkRegionMixin", + "implementations.world.ServerWorldMixin", + "lifecycle.ChunkGenerator_ChunkGeneratorRegistrationMixin", + "lifecycle.MinecraftServerMixin" + ], + "client": [ + "access.GeneratorTypeAccessor", + "lifecycle.client.MinecraftClientMixin" + ], + "server": [ + "lifecycle.server.GeneratorOptionsMixin", + "lifecycle.server.ServerMainMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "refmap": "terra-refmap.json" } \ No newline at end of file diff --git a/platforms/sponge/src/main/resources/META-INF/plugins.json b/platforms/sponge/src/main/resources/META-INF/plugins.json index 40e9b1f02..d0b90db10 100644 --- a/platforms/sponge/src/main/resources/META-INF/plugins.json +++ b/platforms/sponge/src/main/resources/META-INF/plugins.json @@ -1,13 +1,13 @@ { "plugins": [ { - "loader": "java_plain", - "id": "terra", - "name": "Terra", - "version": "@VERSION@", - "main-class": "com.dfsek.terra.sponge.TerraSpongePlugin", - "description": "@DESCRIPTION@", - "links": { + "loader": "java_plain", + "id": "terra", + "name": "Terra", + "version": "@VERSION@", + "main-class": "com.dfsek.terra.sponge.TerraSpongePlugin", + "description": "@DESCRIPTION@", + "links": { "source": "@SOURCE@", "issues": "@ISSUES@" }, @@ -15,7 +15,7 @@ ], "dependencies": [ { - "id": "spongeapi", + "id": "spongeapi", "version": "9.0.0" } ]