From f380247613e467aac38d8ba8382f9e1fc79188c2 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 23 Jun 2021 12:43:16 -0700 Subject: [PATCH] API compiles now --- .../java/com/dfsek/terra/api}/Logger.java | 6 +++- .../java/com/dfsek/terra/api/TerraPlugin.java | 5 ++- .../com/dfsek/terra/api/block/BlockFace.java | 14 -------- .../dfsek/terra/api/config/PluginConfig.java | 33 ++++++++++++++++++ .../dfsek/terra/api/config/WorldConfig.java | 3 +- .../world/generation/LootPopulateEvent.java | 12 ++++--- .../com/dfsek/terra/api/lang/Language.java | 15 ++++++++ .../com/dfsek/terra/api}/lang/Message.java | 2 +- .../dfsek/terra/api/structure/LootTable.java | 25 ++++++++++++++ .../dfsek/terra/api/structure/Structure.java | 34 +++++++++++++++++++ .../com/dfsek/terra/api/util/JarUtil.java | 0 .../com/dfsek/terra/api/util/MathUtil.java | 14 -------- .../java/com/dfsek/terra/api/world/Tree.java | 8 +++-- .../api/world/generator/SamplerCache.java | 9 +++++ .../com/dfsek/terra/api/math/GridSpawn.java | 4 +-- .../{LootTable.java => LootTableImpl.java} | 18 +++------- .../structures/script/StructureScript.java | 33 +++++++++--------- .../script/builders/CheckFunctionBuilder.java | 1 - .../script/builders/LootFunctionBuilder.java | 2 +- .../builders/StructureFunctionBuilder.java | 6 ++-- .../functions/AbstractBlockFunction.java | 2 +- .../script/functions/BiomeFunction.java | 2 +- .../script/functions/CheckBlockFunction.java | 2 +- .../script/functions/CheckFunction.java | 4 +-- .../script/functions/EntityFunction.java | 2 +- .../script/functions/GetMarkFunction.java | 2 +- .../script/functions/LootFunction.java | 7 ++-- .../script/functions/PullFunction.java | 2 +- .../script/functions/SetMarkFunction.java | 2 +- .../script/functions/StateFunction.java | 2 +- .../script/functions/StructureFunction.java | 12 +++---- .../structure/buffer/DirectBuffer.java | 15 ++++---- .../buffer/items/BufferedLootApplication.java | 6 ++-- .../api/util/{world => }/PaletteUtil.java | 2 +- .../dfsek/terra/api/util/PopulationUtil.java | 28 +++++++++++++++ .../dfsek/terra/api/util}/RotationUtil.java | 3 +- .../terra/api/util/logging/DebugLogger.java | 2 ++ .../terra/api/util/logging/JavaLogger.java | 2 ++ .../terra/api/util/world/PopulationUtil.java | 15 -------- .../world/locate/AsyncStructureFinder.java | 4 +-- .../com/dfsek/terra/carving/CarverCache.java | 5 +-- .../structure/StructureLoadCommand.java | 8 ++--- .../argument/ScriptArgumentParser.java | 5 +-- .../structure/completer/ScriptCompleter.java | 3 +- .../dfsek/terra/config/GenericLoaders.java | 4 +-- ...luginConfig.java => PluginConfigImpl.java} | 22 +++++++++--- .../builder/UserDefinedBiomeBuilder.java | 4 +-- .../terra/config/factories/FloraFactory.java | 2 +- .../com/dfsek/terra/config/lang/LangUtil.java | 5 +-- .../lang/{Language.java => LanguageImpl.java} | 8 +++-- .../terra/config/lang/MultiLineMessage.java | 1 + .../terra/config/lang/SingleLineMessage.java | 1 + .../loaders/config/FloraLayerLoader.java | 2 +- .../loaders/config/TreeLayerLoader.java | 2 +- .../provider/BiomeProviderTemplate.java | 2 +- .../sampler/templates/DomainWarpTemplate.java | 2 +- .../templates/ImageSamplerTemplate.java | 2 +- .../sampler/templates/KernelTemplate.java | 2 +- .../noise/CellularNoiseTemplate.java | 4 +-- .../noise/ConstantNoiseTemplate.java | 2 +- .../noise/ExpressionFunctionTemplate.java | 2 +- .../templates/noise/GaborNoiseTemplate.java | 2 +- .../templates/noise/NoiseTemplate.java | 2 +- .../templates/noise/SimpleNoiseTemplate.java | 2 +- .../noise/fractal/BrownianMotionTemplate.java | 2 +- .../noise/fractal/FractalTemplate.java | 2 +- .../noise/fractal/PingPongTemplate.java | 2 +- .../noise/fractal/RidgedFractalTemplate.java | 2 +- .../normalizer/ClampNormalizerTemplate.java | 4 +-- .../normalizer/LinearNormalizerTemplate.java | 2 +- .../normalizer/NormalNormalizerTemplate.java | 2 +- .../normalizer/NormalizerTemplate.java | 2 +- .../terra/config/pack/ConfigPackImpl.java | 11 +++--- .../terra/config/pack/WorldConfigImpl.java | 11 ++---- .../terra/config/templates/BiomeTemplate.java | 2 +- .../config/templates/PaletteTemplate.java | 2 +- .../config/templates/StructureTemplate.java | 6 ++-- .../terra/config/templates/TreeTemplate.java | 6 ++-- .../noise/normalizer/ClampNormalizer.java | 2 +- .../noise/normalizer/LinearNormalizer.java | 2 +- .../noise/normalizer/NormalNormalizer.java | 2 +- .../terra}/noise/normalizer/Normalizer.java | 2 +- .../noise/samplers/DomainWarpedSampler.java | 2 +- .../noise/samplers/ExpressionSampler.java | 7 +++- .../terra}/noise/samplers/ImageSampler.java | 2 +- .../terra}/noise/samplers/KernelSampler.java | 2 +- .../noise/samplers/noise/CellularSampler.java | 4 +-- .../noise/samplers/noise/ConstantSampler.java | 2 +- .../samplers/noise/ExpressionFunction.java | 2 +- .../samplers/noise/GaborNoiseSampler.java | 4 +-- .../noise/samplers/noise/NoiseFunction.java | 2 +- .../noise/fractal/BrownianMotionSampler.java | 2 +- .../noise/fractal/FractalNoiseFunction.java | 4 +-- .../noise/fractal/PingPongSampler.java | 2 +- .../noise/fractal/RidgedFractalSampler.java | 2 +- .../noise/random/GaussianNoiseSampler.java | 4 +-- .../noise/random/WhiteNoiseSampler.java | 4 +-- .../noise/simplex/OpenSimplex2SSampler.java | 2 +- .../noise/simplex/OpenSimplex2Sampler.java | 2 +- .../samplers/noise/simplex/PerlinSampler.java | 2 +- .../noise/simplex/SimplexSampler.java | 2 +- .../noise/simplex/SimplexStyleSampler.java | 4 +-- .../noise/value/ValueCubicSampler.java | 2 +- .../samplers/noise/value/ValueSampler.java | 2 +- .../samplers/noise/value/ValueStyleNoise.java | 4 +-- .../terra/registry/config/LootRegistry.java | 2 +- .../terra/registry/config/NoiseRegistry.java | 16 ++++----- .../terra/registry/config/ScriptRegistry.java | 4 +-- .../generators/DefaultChunkGenerator2D.java | 4 +-- .../generators/DefaultChunkGenerator3D.java | 2 +- ...amplerCache.java => SamplerCacheImpl.java} | 7 ++-- .../terra/world/population/CavePopulator.java | 2 +- .../world/population/FloraPopulator.java | 2 +- .../terra/world/population/OrePopulator.java | 4 +-- .../world/population/StructurePopulator.java | 6 ++-- .../terra/world/population/TreePopulator.java | 2 +- .../population/items/TerraStructure.java | 8 ++--- .../items/ores/DeformedSphereOre.java | 2 +- .../population/items/tree/TerraTree.java | 8 ++--- .../population/items/tree/TreeLayer.java | 2 +- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 9 ++--- .../dfsek/terra/fabric/TerraFabricPlugin.java | 9 ++--- .../com/dfsek/terra/StandalonePlugin.java | 14 ++++---- .../com/dfsek/terra/sponge/SpongeLogger.java | 2 +- .../dfsek/terra/sponge/TerraSpongePlugin.java | 12 ++++--- 125 files changed, 421 insertions(+), 279 deletions(-) rename common/{implementation/src/main/java/com/dfsek/terra/api/util/logging => api/src/main/java/com/dfsek/terra/api}/Logger.java (55%) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/config/PluginConfig.java create mode 100644 common/api/src/main/java/com/dfsek/terra/api/lang/Language.java rename common/{implementation/src/main/java/com/dfsek/terra/config => api/src/main/java/com/dfsek/terra/api}/lang/Message.java (88%) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/structure/LootTable.java create mode 100644 common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java rename common/{implementation => api}/src/main/java/com/dfsek/terra/api/util/JarUtil.java (100%) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/world/generator/SamplerCache.java rename common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/{LootTable.java => LootTableImpl.java} (83%) rename common/implementation/src/main/java/com/dfsek/terra/api/util/{world => }/PaletteUtil.java (94%) create mode 100644 common/implementation/src/main/java/com/dfsek/terra/api/util/PopulationUtil.java rename common/{api/src/main/java/com/dfsek/terra/api/structure/rotation => implementation/src/main/java/com/dfsek/terra/api/util}/RotationUtil.java (99%) delete mode 100644 common/implementation/src/main/java/com/dfsek/terra/api/util/world/PopulationUtil.java rename common/implementation/src/main/java/com/dfsek/terra/config/{PluginConfig.java => PluginConfigImpl.java} (87%) rename common/implementation/src/main/java/com/dfsek/terra/config/lang/{Language.java => LanguageImpl.java} (86%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/normalizer/ClampNormalizer.java (90%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/normalizer/LinearNormalizer.java (91%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/normalizer/NormalNormalizer.java (96%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/normalizer/Normalizer.java (94%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/DomainWarpedSampler.java (96%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/ExpressionSampler.java (84%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/ImageSampler.java (97%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/KernelSampler.java (97%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/CellularSampler.java (99%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/ConstantSampler.java (90%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/ExpressionFunction.java (95%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/GaborNoiseSampler.java (96%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/NoiseFunction.java (98%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/fractal/BrownianMotionSampler.java (95%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/fractal/FractalNoiseFunction.java (91%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/fractal/PingPongSampler.java (96%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/fractal/RidgedFractalSampler.java (95%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/random/GaussianNoiseSampler.java (91%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/random/WhiteNoiseSampler.java (94%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/simplex/OpenSimplex2SSampler.java (99%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/simplex/OpenSimplex2Sampler.java (98%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/simplex/PerlinSampler.java (97%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/simplex/SimplexSampler.java (99%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/simplex/SimplexStyleSampler.java (98%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/value/ValueCubicSampler.java (98%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/value/ValueSampler.java (96%) rename common/{api/src/main/java/com/dfsek/terra/api => implementation/src/main/java/com/dfsek/terra}/noise/samplers/noise/value/ValueStyleNoise.java (83%) rename common/implementation/src/main/java/com/dfsek/terra/world/generation/math/{SamplerCache.java => SamplerCacheImpl.java} (88%) diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/Logger.java b/common/api/src/main/java/com/dfsek/terra/api/Logger.java similarity index 55% rename from common/implementation/src/main/java/com/dfsek/terra/api/util/logging/Logger.java rename to common/api/src/main/java/com/dfsek/terra/api/Logger.java index df812533f..d0026b3ce 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/Logger.java +++ b/common/api/src/main/java/com/dfsek/terra/api/Logger.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.util.logging; +package com.dfsek.terra.api; public interface Logger { void info(String message); @@ -6,4 +6,8 @@ public interface Logger { void warning(String message); void severe(String message); + + default void stack(Throwable t) { + t.printStackTrace(); + } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java index 6a710c714..68f58b009 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java +++ b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java @@ -2,12 +2,15 @@ package com.dfsek.terra.api; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.util.JarUtil; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; @@ -44,7 +47,7 @@ public interface TerraPlugin extends LoaderRegistrar { String platformName(); - DebugLogger getDebugLogger(); + Logger getDebugLogger(); EventManager getEventManager(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/BlockFace.java b/common/api/src/main/java/com/dfsek/terra/api/block/BlockFace.java index 033c53232..d367839e7 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/BlockFace.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/BlockFace.java @@ -67,20 +67,6 @@ public enum BlockFace { return modZ; } - /** - * Gets the normal vector corresponding to this block face. - * - * @return the normal vector - */ - @NotNull - public Vector3 getDirection() { - Vector3 direction = new Vector3Impl(modX, modY, modZ); - if(modX != 0 || modY != 0 || modZ != 0) { - direction.normalize(); - } - return direction; - } - @NotNull public BlockFace getOppositeFace() { switch(this) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/PluginConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/PluginConfig.java new file mode 100644 index 000000000..2275c7283 --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/config/PluginConfig.java @@ -0,0 +1,33 @@ +package com.dfsek.terra.api.config; + +import com.dfsek.terra.api.TerraPlugin; + +public interface PluginConfig { + void load(TerraPlugin main); + + String getLanguage(); + + boolean isDebugCommands(); + + boolean isDebugLogging(); + + boolean isDebugProfiler(); + + boolean isDebugScript(); + + long getDataSaveInterval(); + + int getBiomeSearchResolution(); + + int getCarverCacheSize(); + + int getStructureCache(); + + int getSamplerCache(); + + int getMaxRecursion(); + + int getBiomeCache(); + + int getProviderCache(); +} diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index a6361b3ba..15c5fc085 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -3,6 +3,7 @@ package com.dfsek.terra.api.config; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.generator.SamplerCache; import java.util.Set; @@ -14,7 +15,5 @@ public interface WorldConfig { SamplerCache getSamplerCache(); - Set getCarvers(); - BiomeProvider getProvider(); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/event/events/world/generation/LootPopulateEvent.java b/common/api/src/main/java/com/dfsek/terra/api/event/events/world/generation/LootPopulateEvent.java index 392fa0528..7e22770f0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/event/events/world/generation/LootPopulateEvent.java +++ b/common/api/src/main/java/com/dfsek/terra/api/event/events/world/generation/LootPopulateEvent.java @@ -6,6 +6,8 @@ import com.dfsek.terra.api.event.events.Cancellable; import com.dfsek.terra.api.event.events.PackEvent; import com.dfsek.terra.api.block.Block; import com.dfsek.terra.api.block.state.Container; +import com.dfsek.terra.api.structure.LootTable; +import com.dfsek.terra.api.structure.Structure; import org.jetbrains.annotations.NotNull; /** @@ -16,14 +18,14 @@ public class LootPopulateEvent extends AbstractCancellable implements PackEvent, private final Container container; private LootTable table; private final ConfigPack pack; - private final StructureScript script; + private final Structure structure; - public LootPopulateEvent(Block block, Container container, LootTable table, ConfigPack pack, StructureScript script) { + public LootPopulateEvent(Block block, Container container, LootTable table, ConfigPack pack, Structure structure) { this.block = block; this.container = container; this.table = table; this.pack = pack; - this.script = script; + this.structure = structure; } @Override @@ -71,7 +73,7 @@ public class LootPopulateEvent extends AbstractCancellable implements PackEvent, * * @return Structure script. */ - public StructureScript getStructureScript() { - return script; + public Structure getStructure() { + return structure; } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/lang/Language.java b/common/api/src/main/java/com/dfsek/terra/api/lang/Language.java new file mode 100644 index 000000000..2d50e8d5d --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/lang/Language.java @@ -0,0 +1,15 @@ +package com.dfsek.terra.api.lang; + +import com.dfsek.terra.api.entity.CommandSender; + +import java.util.logging.Level; +import java.util.logging.Logger; + +public interface Language { + @SuppressWarnings("unchecked") + Message getMessage(String id); + + void log(String messageID, Level level, Logger logger, String... args); + + void send(String messageID, CommandSender sender, String... args); +} diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/lang/Message.java b/common/api/src/main/java/com/dfsek/terra/api/lang/Message.java similarity index 88% rename from common/implementation/src/main/java/com/dfsek/terra/config/lang/Message.java rename to common/api/src/main/java/com/dfsek/terra/api/lang/Message.java index 3fa11e901..9fedd163d 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/lang/Message.java +++ b/common/api/src/main/java/com/dfsek/terra/api/lang/Message.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.config.lang; +package com.dfsek.terra.api.lang; import com.dfsek.terra.api.entity.CommandSender; diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/LootTable.java b/common/api/src/main/java/com/dfsek/terra/api/structure/LootTable.java new file mode 100644 index 000000000..c71fe1918 --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/LootTable.java @@ -0,0 +1,25 @@ +package com.dfsek.terra.api.structure; + +import com.dfsek.terra.api.inventory.Inventory; +import com.dfsek.terra.api.inventory.ItemStack; + +import java.util.List; +import java.util.Random; + +public interface LootTable { + /** + * Fetches a list of ItemStacks from the loot table using the given Random instance. + * + * @param r The Random instance to use. + * @return List<ItemStack> - The list of loot fetched. + */ + List getLoot(Random r); + + /** + * Fills an Inventory with loot. + * + * @param i The Inventory to fill. + * @param r The The Random instance to use. + */ + void fillInventory(Inventory i, Random r); +} 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 new file mode 100644 index 000000000..321f18a17 --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -0,0 +1,34 @@ +package com.dfsek.terra.api.structure; + +import com.dfsek.terra.api.structure.buffer.Buffer; +import com.dfsek.terra.api.structure.rotation.Rotation; +import com.dfsek.terra.api.vector.Location; +import com.dfsek.terra.api.world.Chunk; + +import java.util.Random; + +public interface Structure { + /** + * Paste the structure at a location + * + * @param location Location to paste structure + * @param rotation Rotation of structure + * @return Whether generation was successful + */ + @SuppressWarnings("try") + boolean generate(Location location, Random random, Rotation rotation); + + @SuppressWarnings("try") + boolean generate(Location location, Chunk chunk, Random random, Rotation rotation); + + @SuppressWarnings("try") + boolean test(Location location, Random random, Rotation rotation); + + @SuppressWarnings("try") + boolean generate(Buffer buffer, Random random, Rotation rotation, int recursions); + + @SuppressWarnings("try") + boolean generateDirect(Location location, Random random, Rotation rotation); + + String getId(); +} diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/JarUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/JarUtil.java similarity index 100% rename from common/implementation/src/main/java/com/dfsek/terra/api/util/JarUtil.java rename to common/api/src/main/java/com/dfsek/terra/api/util/JarUtil.java diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java index 178b18a37..2109e3088 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java @@ -1,6 +1,5 @@ package com.dfsek.terra.api.util; -import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.world.generator.Sampler; import net.jafama.FastMath; @@ -43,19 +42,6 @@ public final class MathUtil { return FastMath.sqrt(standardDeviation / length); } - /** - * Gets the carver seed for a chunk. - * - * @param chunkX Chunk's X coordinate - * @param chunkZ Chunk's Z coordinate - * @param seed World seed - * @return long - The carver seed. - */ - public static long getCarverChunkSeed(int chunkX, int chunkZ, long seed) { - Random r = new FastRandom(seed); - return chunkX * r.nextLong() ^ chunkZ * r.nextLong() ^ seed; - } - public static long hashToLong(String s) { if(s == null) { return 0; diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/Tree.java b/common/api/src/main/java/com/dfsek/terra/api/world/Tree.java index 81e15f84e..11103cf1c 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/Tree.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/Tree.java @@ -1,12 +1,14 @@ package com.dfsek.terra.api.world; -import com.dfsek.terra.api.vector.LocationImpl; +import com.dfsek.terra.api.block.BlockType; +import com.dfsek.terra.api.vector.Location; import java.util.Random; +import java.util.Set; public interface Tree { - boolean plant(LocationImpl l, Random r); + boolean plant(Location l, Random r); - MaterialSet getSpawnable(); + Set getSpawnable(); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/SamplerCache.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/SamplerCache.java new file mode 100644 index 000000000..9ec505a25 --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/SamplerCache.java @@ -0,0 +1,9 @@ +package com.dfsek.terra.api.world.generator; + +public interface SamplerCache { + Sampler get(int x, int z); + + Sampler getChunk(int cx, int cz); + + void clear(); +} diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/math/GridSpawn.java b/common/implementation/src/main/java/com/dfsek/terra/api/math/GridSpawn.java index ed0074249..00cd32036 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/math/GridSpawn.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/math/GridSpawn.java @@ -1,6 +1,6 @@ package com.dfsek.terra.api.math; -import com.dfsek.terra.api.util.MathUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.vector.Vector3Impl; import com.dfsek.terra.api.util.FastRandom; @@ -57,7 +57,7 @@ public class GridSpawn { * @return Vector representing spawnpoint */ public Vector3 getChunkSpawn(int structureChunkX, int structureChunkZ, long seed) { - Random r = new FastRandom(MathUtil.getCarverChunkSeed(structureChunkX, structureChunkZ, seed + salt)); + Random r = new FastRandom(PopulationUtil.getCarverChunkSeed(structureChunkX, structureChunkZ, seed + salt)); int offsetX = r.nextInt(width); int offsetZ = r.nextInt(width); int sx = structureChunkX * (width + 2 * separation) + offsetX; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTable.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTableImpl.java similarity index 83% rename from common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTable.java rename to common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTableImpl.java index cb4679658..706896cf7 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTable.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/loot/LootTableImpl.java @@ -15,7 +15,7 @@ import java.util.Random; /** * Class representation of a Loot Table to populate chest loot. */ -public class LootTable { +public class LootTableImpl implements com.dfsek.terra.api.structure.LootTable { private final List pools = new GlueList<>(); /** @@ -24,7 +24,7 @@ public class LootTable { * @param json The JSON String representing the loot table. * @throws ParseException if malformed JSON is passed. */ - public LootTable(String json, TerraPlugin main) throws ParseException { + public LootTableImpl(String json, TerraPlugin main) throws ParseException { JSONParser jsonParser = new JSONParser(); Object tableJSON = jsonParser.parse(json); JSONArray poolArray = (JSONArray) ((JSONObject) tableJSON).get("pools"); @@ -33,12 +33,7 @@ public class LootTable { } } - /** - * Fetches a list of ItemStacks from the loot table using the given Random instance. - * - * @param r The Random instance to use. - * @return List<ItemStack> - The list of loot fetched. - */ + @Override public List getLoot(Random r) { List itemList = new GlueList<>(); for(Pool pool : pools) { @@ -47,12 +42,7 @@ public class LootTable { return itemList; } - /** - * Fills an Inventory with loot. - * - * @param i The Inventory to fill. - * @param r The The Random instance to use. - */ + @Override public void fillInventory(Inventory i, Random r) { List loot = getLoot(r); for(ItemStack stack : loot) { diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java index fb1dd2281..f595e4bd0 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java @@ -1,10 +1,12 @@ package com.dfsek.terra.api.structures.script; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.structure.LootTable; +import com.dfsek.terra.api.structure.Structure; +import com.dfsek.terra.api.vector.Location; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.structures.loot.LootTable; import com.dfsek.terra.api.structures.parser.Parser; import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.lang.Block; @@ -44,14 +46,14 @@ import java.nio.charset.Charset; import java.util.Random; import java.util.concurrent.ExecutionException; -public class StructureScript { +public class StructureScript implements Structure { private final Block block; private final String id; private final Cache cache; private final TerraPlugin main; private String tempID; - public StructureScript(InputStream inputStream, TerraPlugin main, Registry registry, Registry lootRegistry, Registry> functionRegistry) throws ParseException { + public StructureScript(InputStream inputStream, TerraPlugin main, Registry registry, Registry lootRegistry, Registry> functionRegistry) throws ParseException { Parser parser; try { parser = new Parser(IOUtils.toString(inputStream, Charset.defaultCharset())); @@ -110,15 +112,9 @@ public class StructureScript { this.cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getStructureCache()).build(); } - /** - * Paste the structure at a location - * - * @param location Location to paste structure - * @param rotation Rotation of structure - * @return Whether generation was successful - */ + @Override @SuppressWarnings("try") - public boolean execute(LocationImpl location, Random random, Rotation rotation) { + public boolean generate(Location location, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript:" + id)) { StructureBuffer buffer = new StructureBuffer(location); boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0)); @@ -127,8 +123,9 @@ public class StructureScript { } } + @Override @SuppressWarnings("try") - public boolean execute(LocationImpl location, Chunk chunk, Random random, Rotation rotation) { + public boolean generate(Location location, Chunk chunk, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_chunk:" + id)) { StructureBuffer buffer = computeBuffer(location, random, rotation); buffer.paste(chunk); @@ -136,15 +133,16 @@ public class StructureScript { } } + @Override @SuppressWarnings("try") - public boolean test(LocationImpl location, Random random, Rotation rotation) { + public boolean test(Location location, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) { StructureBuffer buffer = computeBuffer(location, random, rotation); return buffer.succeeded(); } } - private StructureBuffer computeBuffer(LocationImpl location, Random random, Rotation rotation) { + private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) { try { return cache.get(location, () -> { StructureBuffer buf = new StructureBuffer(location); @@ -156,21 +154,24 @@ public class StructureScript { } } + @Override @SuppressWarnings("try") - public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) { + public boolean generate(Buffer buffer, Random random, Rotation rotation, int recursions) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_recursive:" + id)) { return applyBlock(new TerraImplementationArguments(buffer, rotation, random, recursions)); } } + @Override @SuppressWarnings("try") - public boolean executeDirect(LocationImpl location, Random random, Rotation rotation) { + public boolean generateDirect(Location location, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) { DirectBuffer buffer = new DirectBuffer(location); return applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0)); } } + @Override public String getId() { return id; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/CheckFunctionBuilder.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/CheckFunctionBuilder.java index 4ac870f49..bd2bd6497 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/CheckFunctionBuilder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/CheckFunctionBuilder.java @@ -6,7 +6,6 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.script.functions.CheckFunction; import com.dfsek.terra.api.structures.tokenizer.Position; -import com.dfsek.terra.world.generation.math.SamplerCache; import java.util.List; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/LootFunctionBuilder.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/LootFunctionBuilder.java index b894743a7..110c32e5a 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/LootFunctionBuilder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/LootFunctionBuilder.java @@ -2,7 +2,7 @@ package com.dfsek.terra.api.structures.script.builders; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.structures.loot.LootTable; +import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.script.StructureScript; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/StructureFunctionBuilder.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/StructureFunctionBuilder.java index 918fec245..b84e89662 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/StructureFunctionBuilder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/builders/StructureFunctionBuilder.java @@ -2,10 +2,10 @@ package com.dfsek.terra.api.structures.script.builders; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.registry.Registry; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structures.parser.exceptions.ParseException; import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; -import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.structures.script.functions.StructureFunction; import com.dfsek.terra.api.structures.tokenizer.Position; @@ -13,10 +13,10 @@ import java.util.List; import java.util.stream.Collectors; public class StructureFunctionBuilder implements FunctionBuilder { - private final Registry registry; + private final Registry registry; private final TerraPlugin main; - public StructureFunctionBuilder(Registry registry, TerraPlugin main) { + public StructureFunctionBuilder(Registry registry, TerraPlugin main) { this.registry = registry; this.main = main; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/AbstractBlockFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/AbstractBlockFunction.java index 292be05f2..99761f949 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/AbstractBlockFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/AbstractBlockFunction.java @@ -10,7 +10,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedBlock; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/BiomeFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/BiomeFunction.java index 707bd651a..d90384b5c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/BiomeFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/BiomeFunction.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckBlockFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckBlockFunction.java index 985544608..3ea7addc7 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckBlockFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckBlockFunction.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckFunction.java index 85d08baab..f84bde8b4 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/CheckFunction.java @@ -1,6 +1,7 @@ package com.dfsek.terra.api.structures.script.functions; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.world.TerraWorld; @@ -12,12 +13,11 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.config.templates.BiomeTemplate; -import com.dfsek.terra.world.generation.math.SamplerCache; import net.jafama.FastMath; import java.util.Map; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/EntityFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/EntityFunction.java index 6cc1ac539..e5c0875ed 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/EntityFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/EntityFunction.java @@ -12,7 +12,7 @@ import com.dfsek.terra.api.structures.parser.lang.constants.ConstantExpression; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity; import com.dfsek.terra.api.structures.tokenizer.Position; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/GetMarkFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/GetMarkFunction.java index 6abb28ebd..60468a73d 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/GetMarkFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/GetMarkFunction.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/LootFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/LootFunction.java index 69108c41e..a1cc8c923 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/LootFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/LootFunction.java @@ -1,18 +1,19 @@ package com.dfsek.terra.api.structures.script.functions; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.vector.Vector2Impl; import com.dfsek.terra.vector.Vector3Impl; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.structures.loot.LootTable; +import com.dfsek.terra.api.structures.loot.LootTableImpl; import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; @@ -46,7 +47,7 @@ public class LootFunction implements Function { RotationUtil.rotateVector(xz, arguments.getRotation()); String id = data.apply(implementationArguments, variableMap); - LootTable table = registry.get(id); + LootTableImpl table = registry.get(id); if(table == null) { main.logger().severe("No such loot table " + id); diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/PullFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/PullFunction.java index 97320d1a1..0c27d0f2f 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/PullFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/PullFunction.java @@ -12,7 +12,7 @@ import com.dfsek.terra.api.structures.parser.lang.constants.ConstantExpression; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedPulledBlock; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/SetMarkFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/SetMarkFunction.java index f37df8c08..fdf9d3ba0 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/SetMarkFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/SetMarkFunction.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StateFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StateFunction.java index d10129885..6ff2263d2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StateFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StateFunction.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedStateManipulator; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StructureFunction.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StructureFunction.java index 0b40cc993..7e4c6c6b5 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StructureFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/script/functions/StructureFunction.java @@ -1,6 +1,7 @@ package com.dfsek.terra.api.structures.script.functions; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.vector.Vector2Impl; import com.dfsek.terra.api.vector.Vector3; @@ -10,10 +11,9 @@ import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structures.parser.lang.Returnable; import com.dfsek.terra.api.structures.parser.lang.functions.Function; import com.dfsek.terra.api.structures.parser.lang.variables.Variable; -import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.structures.script.TerraImplementationArguments; import com.dfsek.terra.api.structure.rotation.Rotation; -import com.dfsek.terra.api.structure.rotation.RotationUtil; +import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.structures.structure.buffer.IntermediateBuffer; import com.dfsek.terra.api.structures.tokenizer.Position; import net.jafama.FastMath; @@ -22,14 +22,14 @@ import java.util.List; import java.util.Map; public class StructureFunction implements Function { - private final Registry registry; + private final Registry registry; private final Returnable id; private final Returnable x, y, z; private final Position position; private final TerraPlugin main; private final List> rotations; - public StructureFunction(Returnable x, Returnable y, Returnable z, Returnable id, List> rotations, Registry registry, Position position, TerraPlugin main) { + public StructureFunction(Returnable x, Returnable y, Returnable z, Returnable id, List> rotations, Registry registry, Position position, TerraPlugin main) { this.registry = registry; this.id = id; this.position = position; @@ -57,7 +57,7 @@ public class StructureFunction implements Function { RotationUtil.rotateVector(xz, arguments.getRotation()); String app = id.apply(implementationArguments, variableMap); - StructureScript script = registry.get(app); + Structure script = registry.get(app); if(script == null) { main.logger().severe("No such structure " + app); return null; @@ -74,7 +74,7 @@ public class StructureFunction implements Function { Vector3 offset = new Vector3Impl(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).doubleValue(), FastMath.roundToInt(xz.getZ())); - return script.executeInBuffer(new IntermediateBuffer(arguments.getBuffer(), offset), arguments.getRandom(), arguments.getRotation().rotate(rotation1), arguments.getRecursions() + 1); + return script.generate(new IntermediateBuffer(arguments.getBuffer(), offset), arguments.getRandom(), arguments.getRotation().rotate(rotation1), arguments.getRecursions() + 1); } @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/DirectBuffer.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/DirectBuffer.java index 83c34df4e..c947e7d76 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/DirectBuffer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/DirectBuffer.java @@ -1,6 +1,7 @@ package com.dfsek.terra.api.structures.structure.buffer; import com.dfsek.terra.api.structure.buffer.Buffer; +import com.dfsek.terra.api.vector.Location; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.structure.buffer.BufferedItem; @@ -11,31 +12,31 @@ import java.util.Map; * Buffer implementation that directly pastes to the world. */ public class DirectBuffer implements Buffer { - private final LocationImpl origin; - private final Map marks = new LinkedHashMap<>(); + private final Location origin; + private final Map marks = new LinkedHashMap<>(); - public DirectBuffer(LocationImpl origin) { + public DirectBuffer(Location origin) { this.origin = origin; } @Override - public Buffer addItem(BufferedItem item, LocationImpl location) { + public Buffer addItem(BufferedItem item, Location location) { item.paste(origin.clone().add(location)); return this; } @Override - public LocationImpl getOrigin() { + public Location getOrigin() { return origin; } @Override - public String getMark(LocationImpl location) { + public String getMark(Location location) { return marks.get(location); } @Override - public Buffer setMark(String mark, LocationImpl location) { + public Buffer setMark(String mark, Location location) { marks.put(location, mark); return this; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/items/BufferedLootApplication.java b/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/items/BufferedLootApplication.java index d13d2cd2f..ae3b2f59b 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/items/BufferedLootApplication.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/structures/structure/buffer/items/BufferedLootApplication.java @@ -7,16 +7,16 @@ import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.block.Block; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.Container; -import com.dfsek.terra.api.structures.loot.LootTable; +import com.dfsek.terra.api.structures.loot.LootTableImpl; import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.util.FastRandom; public class BufferedLootApplication implements BufferedItem { - private final LootTable table; + private final LootTableImpl table; private final TerraPlugin main; private final StructureScript structure; - public BufferedLootApplication(LootTable table, TerraPlugin main, StructureScript structure) { + public BufferedLootApplication(LootTableImpl table, TerraPlugin main, StructureScript structure) { this.table = table; this.main = main; this.structure = structure; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/world/PaletteUtil.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/PaletteUtil.java similarity index 94% rename from common/implementation/src/main/java/com/dfsek/terra/api/util/world/PaletteUtil.java rename to common/implementation/src/main/java/com/dfsek/terra/api/util/PaletteUtil.java index 8fafaed40..9672c7746 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/util/world/PaletteUtil.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/util/PaletteUtil.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.util.world; +package com.dfsek.terra.api.util; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.world.generator.Palette; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/PopulationUtil.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/PopulationUtil.java new file mode 100644 index 000000000..6cf0320bb --- /dev/null +++ b/common/implementation/src/main/java/com/dfsek/terra/api/util/PopulationUtil.java @@ -0,0 +1,28 @@ +package com.dfsek.terra.api.util; + +import com.dfsek.terra.api.world.Chunk; + +import java.util.Random; + +public final class PopulationUtil { + public static FastRandom getRandom(Chunk c) { + return getRandom(c, 0); + } + + public static FastRandom getRandom(Chunk c, long salt) { + return new FastRandom(getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt)); + } + + /** + * Gets the carver seed for a chunk. + * + * @param chunkX Chunk's X coordinate + * @param chunkZ Chunk's Z coordinate + * @param seed World seed + * @return long - The carver seed. + */ + public static long getCarverChunkSeed(int chunkX, int chunkZ, long seed) { + Random r = new FastRandom(seed); + return chunkX * r.nextLong() ^ chunkZ * r.nextLong() ^ seed; + } +} diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/rotation/RotationUtil.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/RotationUtil.java similarity index 99% rename from common/api/src/main/java/com/dfsek/terra/api/structure/rotation/RotationUtil.java rename to common/implementation/src/main/java/com/dfsek/terra/api/util/RotationUtil.java index 25a5f398d..13e67bd48 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/rotation/RotationUtil.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/util/RotationUtil.java @@ -1,5 +1,6 @@ -package com.dfsek.terra.api.structure.rotation; +package com.dfsek.terra.api.util; +import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.block.Axis; import com.dfsek.terra.api.block.BlockData; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/DebugLogger.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/DebugLogger.java index 5236401f9..a22d805eb 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/DebugLogger.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/DebugLogger.java @@ -1,5 +1,7 @@ package com.dfsek.terra.api.util.logging; +import com.dfsek.terra.api.Logger; + public class DebugLogger { private final Logger logger; private boolean debug = false; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/JavaLogger.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/JavaLogger.java index 8a8a62e56..4ee2cba24 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/JavaLogger.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/util/logging/JavaLogger.java @@ -1,5 +1,7 @@ package com.dfsek.terra.api.util.logging; +import com.dfsek.terra.api.Logger; + public class JavaLogger implements Logger { private final java.util.logging.Logger logger; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/util/world/PopulationUtil.java b/common/implementation/src/main/java/com/dfsek/terra/api/util/world/PopulationUtil.java deleted file mode 100644 index 18ebe5f0a..000000000 --- a/common/implementation/src/main/java/com/dfsek/terra/api/util/world/PopulationUtil.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.dfsek.terra.api.util.world; - -import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.util.FastRandom; - -public final class PopulationUtil { - public static FastRandom getRandom(Chunk c) { - return getRandom(c, 0); - } - - public static FastRandom getRandom(Chunk c, long salt) { - return new FastRandom(MathUtil.getCarverChunkSeed(c.getX(), c.getZ(), c.getWorld().getSeed() + salt)); - } -} diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncStructureFinder.java b/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncStructureFinder.java index f1d46f297..cea1b4952 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncStructureFinder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncStructureFinder.java @@ -1,7 +1,7 @@ package com.dfsek.terra.api.world.locate; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.util.MathUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.structure.rotation.Rotation; @@ -30,7 +30,7 @@ public class AsyncStructureFinder extends AsyncFeatureFinder { public boolean isValid(int x, int z, TerraStructure target) { LocationImpl spawn = target.getSpawn().getChunkSpawn(x, z, world.getSeed()).toLocation(world); if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(target)) return false; - Random random = new FastRandom(MathUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed())); + Random random = new FastRandom(PopulationUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed())); return target.getStructure().get(random).test(spawn.setY(target.getSpawnStart().get(random)), random, Rotation.fromDegrees(90 * random.nextInt(4))); } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/carving/CarverCache.java b/common/implementation/src/main/java/com/dfsek/terra/carving/CarverCache.java index 79b2fdc71..9d18e058f 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/carving/CarverCache.java +++ b/common/implementation/src/main/java/com/dfsek/terra/carving/CarverCache.java @@ -2,6 +2,7 @@ package com.dfsek.terra.carving; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.MathUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.vector.Vector3Impl; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.util.FastRandom; @@ -33,8 +34,8 @@ public class CarverCache { int chunkX = (int) (key >> 32); int chunkZ = (int) key.longValue(); BiomeProvider provider = main.getWorld(w).getBiomeProvider(); - if(CarverCache.this.carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + CarverCache.this.carver.hashCode())))) { - long seed = MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed()); + if(CarverCache.this.carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + CarverCache.this.carver.hashCode())))) { + long seed = PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed()); Random r = new FastRandom(seed); Worm carving = CarverCache.this.carver.getWorm(seed, new Vector3Impl((chunkX << 4) + r.nextInt(16), CarverCache.this.carver.getConfig().getHeight().get(r), (chunkZ << 4) + r.nextInt(16))); List points = new GlueList<>(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java index 42d51a138..ef98977a6 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java @@ -14,7 +14,7 @@ import com.dfsek.terra.api.command.arg.IntegerArgumentParser; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.Player; -import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.commands.structure.argument.ScriptArgumentParser; @@ -56,7 +56,7 @@ public class StructureLoadCommand implements CommandTemplate { private boolean chunk; @ArgumentTarget("structure") - private StructureScript script; + private Structure script; @Inject private TerraPlugin main; @@ -79,9 +79,9 @@ public class StructureLoadCommand implements CommandTemplate { return; } if(this.chunk) { - script.execute(player.getLocation(), player.getWorld().getChunkAt(player.getLocation()), random, r); + script.generate(player.getLocation(), player.getWorld().getChunkAt(player.getLocation()), random, r); } else { - script.execute(player.getLocation(), random, r); + script.generate(player.getLocation(), random, r); } long l = System.nanoTime() - t; diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/argument/ScriptArgumentParser.java b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/argument/ScriptArgumentParser.java index 81a7a28cb..4f520d5bc 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/argument/ScriptArgumentParser.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/argument/ScriptArgumentParser.java @@ -5,14 +5,15 @@ import com.dfsek.terra.api.command.arg.ArgumentParser; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.Player; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structures.script.StructureScript; -public class ScriptArgumentParser implements ArgumentParser { +public class ScriptArgumentParser implements ArgumentParser { @Inject private TerraPlugin main; @Override - public StructureScript parse(CommandSender sender, String arg) { + public Structure parse(CommandSender sender, String arg) { return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).get(arg); } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/completer/ScriptCompleter.java b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/completer/ScriptCompleter.java index 70ae70723..220b4e257 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/structure/completer/ScriptCompleter.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/structure/completer/ScriptCompleter.java @@ -5,6 +5,7 @@ import com.dfsek.terra.api.command.tab.TabCompleter; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.Player; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structures.script.StructureScript; import java.util.List; @@ -16,6 +17,6 @@ public class ScriptCompleter implements TabCompleter { @Override public List complete(CommandSender sender) { - return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).entries().stream().map(StructureScript::getId).collect(Collectors.toList()); + return main.getWorld(((Player) sender).getWorld()).getConfig().getRegistry(StructureScript.class).entries().stream().map(Structure::getId).collect(Collectors.toList()); } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java b/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java index 083ad7c7a..b38c72323 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java @@ -6,8 +6,8 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.math.GridSpawn; import com.dfsek.terra.api.math.range.ConstantRange; -import com.dfsek.terra.api.noise.samplers.ImageSampler; -import com.dfsek.terra.api.noise.samplers.noise.CellularSampler; +import com.dfsek.terra.noise.samplers.ImageSampler; +import com.dfsek.terra.noise.samplers.noise.CellularSampler; import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.util.collections.MaterialSet; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/PluginConfig.java b/common/implementation/src/main/java/com/dfsek/terra/config/PluginConfigImpl.java similarity index 87% rename from common/implementation/src/main/java/com/dfsek/terra/config/PluginConfig.java rename to common/implementation/src/main/java/com/dfsek/terra/config/PluginConfigImpl.java index 46795525d..5ddf1806c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/PluginConfig.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/PluginConfigImpl.java @@ -7,7 +7,7 @@ import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.JarUtil; -import com.dfsek.terra.api.util.logging.Logger; +import com.dfsek.terra.api.Logger; import java.io.File; import java.io.FileInputStream; @@ -17,7 +17,7 @@ import java.time.Duration; import java.util.jar.JarFile; @SuppressWarnings("FieldMayBeFinal") -public class PluginConfig implements ConfigTemplate { +public class PluginConfigImpl implements ConfigTemplate, com.dfsek.terra.api.config.PluginConfig { @Value("debug.commands") @Default private boolean debugCommands = false; @@ -74,6 +74,7 @@ public class PluginConfig implements ConfigTemplate { @Default private int maxRecursion = 1000; + @Override public void load(TerraPlugin main) { Logger logger = main.logger(); logger.info("Loading config values"); @@ -84,9 +85,9 @@ public class PluginConfig implements ConfigTemplate { try(JarFile jar = main.getModJar()) { JarUtil.copyResourcesToDirectory(jar, "packs", new File(main.getDataFolder(), "packs").toString()); } catch(IOException | URISyntaxException e) { - main.getDebugLogger().error("Failed to dump default config files!"); + main.getDebugLogger().severe("Failed to dump default config files!"); e.printStackTrace(); - main.getDebugLogger().error("Either you're on Forge, or this is a bug. If it's the latter, report this to Terra!"); + main.getDebugLogger().severe("Either you're on Forge, or this is a bug. If it's the latter, report this to Terra!"); } } } catch(ConfigException | IOException e) { @@ -99,54 +100,67 @@ public class PluginConfig implements ConfigTemplate { if(isDebugScript()) logger.info("Script debug blocks enabled."); } + @Override public String getLanguage() { return language; } + @Override public boolean isDebugCommands() { return debugCommands; } + @Override public boolean isDebugLogging() { return debugLog; } + @Override public boolean isDebugProfiler() { return debugProfiler; } + @Override public boolean isDebugScript() { return debugScript; } + @Override public long getDataSaveInterval() { return dataSave.toMillis() / 20L; } + @Override public int getBiomeSearchResolution() { return biomeSearch; } + @Override public int getCarverCacheSize() { return carverCache; } + @Override public int getStructureCache() { return structureCache; } + @Override public int getSamplerCache() { return samplerCache; } + @Override public int getMaxRecursion() { return maxRecursion; } + @Override public int getBiomeCache() { return biomeCache; } + @Override public int getProviderCache() { return providerCache; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java b/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java index 832bb1df8..2f1ebe5f4 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/builder/UserDefinedBiomeBuilder.java @@ -3,8 +3,8 @@ package com.dfsek.terra.config.builder; import com.dfsek.paralithic.eval.parser.Scope; import com.dfsek.paralithic.eval.tokenizer.ParseException; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.ExpressionSampler; -import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler; +import com.dfsek.terra.noise.samplers.ExpressionSampler; +import com.dfsek.terra.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.api.util.seeded.NoiseSeeded; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/factories/FloraFactory.java b/common/implementation/src/main/java/com/dfsek/terra/config/factories/FloraFactory.java index 47b6a3210..5f79cd72a 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/factories/FloraFactory.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/factories/FloraFactory.java @@ -1,7 +1,7 @@ package com.dfsek.terra.config.factories; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; import com.dfsek.terra.api.world.Flora; import com.dfsek.terra.api.world.palette.NoisePalette; import com.dfsek.terra.api.world.palette.PaletteImpl; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/lang/LangUtil.java b/common/implementation/src/main/java/com/dfsek/terra/config/lang/LangUtil.java index d11d1e15f..109e85bd0 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/lang/LangUtil.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/lang/LangUtil.java @@ -2,7 +2,8 @@ package com.dfsek.terra.config.lang; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.entity.CommandSender; -import com.dfsek.terra.api.util.logging.Logger; +import com.dfsek.terra.api.Logger; +import com.dfsek.terra.api.lang.Language; import java.io.File; import java.io.IOException; @@ -26,7 +27,7 @@ public final class LangUtil { try { File file1 = new File(file, langID + ".yml"); logger.info(file1.getAbsolutePath()); - language = new Language(file1); + language = new LanguageImpl(file1); logger.info("Loaded language " + langID); } catch(IOException e) { logger.severe("Unable to load language: " + langID); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/lang/Language.java b/common/implementation/src/main/java/com/dfsek/terra/config/lang/LanguageImpl.java similarity index 86% rename from common/implementation/src/main/java/com/dfsek/terra/config/lang/Language.java rename to common/implementation/src/main/java/com/dfsek/terra/config/lang/LanguageImpl.java index 782eee0c7..3faa20dae 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/lang/Language.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/lang/LanguageImpl.java @@ -3,6 +3,7 @@ package com.dfsek.terra.config.lang; import com.dfsek.tectonic.config.Configuration; import com.dfsek.terra.api.entity.CommandSender; +import com.dfsek.terra.api.lang.Message; import java.io.File; import java.io.FileInputStream; @@ -11,11 +12,12 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; -public class Language { +public class LanguageImpl implements com.dfsek.terra.api.lang.Language { private final Configuration configuration; - public Language(File file) throws IOException { + public LanguageImpl(File file) throws IOException { configuration = new Configuration(new FileInputStream(file)); } + @Override @SuppressWarnings("unchecked") public Message getMessage(String id) { Message temp = null; @@ -31,9 +33,11 @@ public class Language { if(temp == null || temp.isEmpty()) return new SingleLineMessage("message:" + id + ":translation_undefined"); return temp; } + @Override public void log(String messageID, Level level, Logger logger, String... args) { getMessage(messageID).log(logger, level, args); } + @Override public void send(String messageID, CommandSender sender, String... args) { getMessage(messageID).send(sender, args); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/lang/MultiLineMessage.java b/common/implementation/src/main/java/com/dfsek/terra/config/lang/MultiLineMessage.java index 8cf574425..854204231 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/lang/MultiLineMessage.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/lang/MultiLineMessage.java @@ -1,6 +1,7 @@ package com.dfsek.terra.config.lang; import com.dfsek.terra.api.entity.CommandSender; +import com.dfsek.terra.api.lang.Message; import java.util.Arrays; import java.util.List; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/lang/SingleLineMessage.java b/common/implementation/src/main/java/com/dfsek/terra/config/lang/SingleLineMessage.java index 23753cff0..3288f58c9 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/lang/SingleLineMessage.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/lang/SingleLineMessage.java @@ -2,6 +2,7 @@ package com.dfsek.terra.config.lang; import com.dfsek.terra.api.entity.CommandSender; +import com.dfsek.terra.api.lang.Message; import java.util.Arrays; import java.util.logging.Level; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/FloraLayerLoader.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/FloraLayerLoader.java index cbf967dd3..0a8288953 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/FloraLayerLoader.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/FloraLayerLoader.java @@ -5,7 +5,7 @@ import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.terra.api.math.range.ConstantRange; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.Flora; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/TreeLayerLoader.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/TreeLayerLoader.java index ab1ff5bdd..c00777fc2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/TreeLayerLoader.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/TreeLayerLoader.java @@ -4,7 +4,7 @@ import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.terra.api.math.range.ConstantRange; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; import com.dfsek.terra.api.world.Tree; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.api.util.seeded.NoiseSeeded; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java index a8f2597a5..359b6c346 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/provider/BiomeProviderTemplate.java @@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler; +import com.dfsek.terra.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java index 03b94a4f9..c093dfe04 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.DomainWarpedSampler; +import com.dfsek.terra.noise.samplers.DomainWarpedSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @SuppressWarnings({"unused", "FieldMayBeFinal"}) diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java index e8f3c77e4..cc751580c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java @@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.ImageSampler; +import com.dfsek.terra.noise.samplers.ImageSampler; import java.awt.image.BufferedImage; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java index 933aa3bf1..b9a0598f3 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java @@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ValidatedConfigTemplate; import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.KernelSampler; +import com.dfsek.terra.noise.samplers.KernelSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import java.util.List; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/CellularNoiseTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/CellularNoiseTemplate.java index 73149b741..cc5f88064 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/CellularNoiseTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/CellularNoiseTemplate.java @@ -3,8 +3,8 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.CellularSampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler; +import com.dfsek.terra.noise.samplers.noise.CellularSampler; +import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @SuppressWarnings("FieldMayBeFinal") diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ConstantNoiseTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ConstantNoiseTemplate.java index 693cb1ef1..2a243de48 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ConstantNoiseTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ConstantNoiseTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler; +import com.dfsek.terra.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate; @SuppressWarnings("FieldMayBeFinal") diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ExpressionFunctionTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ExpressionFunctionTemplate.java index fb4d26c00..0863555fb 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ExpressionFunctionTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/ExpressionFunctionTemplate.java @@ -9,7 +9,7 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ValidatedConfigTemplate; import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.ExpressionFunction; +import com.dfsek.terra.noise.samplers.noise.ExpressionFunction; import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction; import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2; import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/GaborNoiseTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/GaborNoiseTemplate.java index f426f1f62..c3df2ab8c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/GaborNoiseTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/GaborNoiseTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.GaborNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.GaborNoiseSampler; public class GaborNoiseTemplate extends NoiseTemplate { @Value("rotation") diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/NoiseTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/NoiseTemplate.java index c8bcc8ed8..79d06e230 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/NoiseTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/NoiseTemplate.java @@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate; @SuppressWarnings({"unused", "FieldMayBeFinal"}) diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/SimpleNoiseTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/SimpleNoiseTemplate.java index e4c463743..a922ca27d 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/SimpleNoiseTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/SimpleNoiseTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; import java.util.function.Function; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/BrownianMotionTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/BrownianMotionTemplate.java index f550b3e77..dd4c33482 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/BrownianMotionTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/BrownianMotionTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.fractal.BrownianMotionSampler; +import com.dfsek.terra.noise.samplers.noise.fractal.BrownianMotionSampler; public class BrownianMotionTemplate extends FractalTemplate { @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/FractalTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/FractalTemplate.java index b4b9274e7..1a10e7427 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/FractalTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/FractalTemplate.java @@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; -import com.dfsek.terra.api.noise.samplers.noise.fractal.FractalNoiseFunction; +import com.dfsek.terra.noise.samplers.noise.fractal.FractalNoiseFunction; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/PingPongTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/PingPongTemplate.java index c59de2b11..f51cd6863 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/PingPongTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/PingPongTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.fractal.PingPongSampler; +import com.dfsek.terra.noise.samplers.noise.fractal.PingPongSampler; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class PingPongTemplate extends FractalTemplate { @Value("ping-pong") diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/RidgedFractalTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/RidgedFractalTemplate.java index fdebb63a4..91495b5df 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/RidgedFractalTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/noise/fractal/RidgedFractalTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.fractal.RidgedFractalSampler; +import com.dfsek.terra.noise.samplers.noise.fractal.RidgedFractalSampler; public class RidgedFractalTemplate extends FractalTemplate { @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/ClampNormalizerTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/ClampNormalizerTemplate.java index b8f0e65ed..c6d16a164 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/ClampNormalizerTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/ClampNormalizerTemplate.java @@ -2,8 +2,8 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.normalizer.ClampNormalizer; -import com.dfsek.terra.api.noise.normalizer.LinearNormalizer; +import com.dfsek.terra.noise.normalizer.ClampNormalizer; +import com.dfsek.terra.noise.normalizer.LinearNormalizer; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class ClampNormalizerTemplate extends NormalizerTemplate { diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/LinearNormalizerTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/LinearNormalizerTemplate.java index b1c8ad727..ef26b99e8 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/LinearNormalizerTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/LinearNormalizerTemplate.java @@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.normalizer.LinearNormalizer; +import com.dfsek.terra.noise.normalizer.LinearNormalizer; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class LinearNormalizerTemplate extends NormalizerTemplate { diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalNormalizerTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalNormalizerTemplate.java index 8f8bb308b..aa9e01279 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalNormalizerTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalNormalizerTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.normalizer.NormalNormalizer; +import com.dfsek.terra.noise.normalizer.NormalNormalizer; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class NormalNormalizerTemplate extends NormalizerTemplate { diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalizerTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalizerTemplate.java index af4f843f7..465d16607 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalizerTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/normalizer/NormalizerTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates.normalizer; import com.dfsek.tectonic.annotations.Value; -import com.dfsek.terra.api.noise.normalizer.Normalizer; +import com.dfsek.terra.noise.normalizer.Normalizer; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.config.loaders.config.sampler.templates.SamplerTemplate; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index db6dd826a..6a7a97f75 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -15,7 +15,8 @@ import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; 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.structures.loot.LootTable; +import com.dfsek.terra.api.structure.Structure; +import com.dfsek.terra.api.structures.loot.LootTableImpl; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.util.generic.pair.ImmutablePair; @@ -190,7 +191,7 @@ public class ConfigPackImpl implements ConfigPack { putPair(map, NoiseProvider.class, new NoiseRegistry()); putPair(map, FunctionBuilder.class, (OpenRegistry) (Object) new FunctionRegistry()); - putPair(map, LootTable.class, new LootRegistry()); + putPair(map, LootTableImpl.class, new LootRegistry()); putPair(map, StructureScript.class, new ScriptRegistry()); return map; @@ -217,8 +218,8 @@ public class ConfigPackImpl implements ConfigPack { loader.open("", ".tesf").thenEntries(entries -> { for(Map.Entry entry : entries) { try(InputStream stream = entry.getValue()) { - StructureScript structureScript = new StructureScript(stream, main, getRegistry(StructureScript.class), getRegistry(LootTable.class), (Registry>) (Object) getRegistry(FunctionBuilder.class)); - getOpenRegistry(StructureScript.class).add(structureScript.getId(), structureScript); + Structure structure = new StructureScript(stream, main, getRegistry(StructureScript.class), getRegistry(LootTableImpl.class), (Registry>) (Object) getRegistry(FunctionBuilder.class)); + getOpenRegistry(StructureScript.class).add(structure.getId(), structure); } catch(com.dfsek.terra.api.structures.parser.exceptions.ParseException | IOException e) { throw new LoadException("Unable to load script \"" + entry.getKey() + "\"", e); } @@ -226,7 +227,7 @@ public class ConfigPackImpl implements ConfigPack { }).close().open("structures/loot", ".json").thenEntries(entries -> { for(Map.Entry entry : entries) { try { - getOpenRegistry(LootTable.class).add(entry.getKey(), new LootTable(IOUtils.toString(entry.getValue(), StandardCharsets.UTF_8), main)); + getOpenRegistry(LootTableImpl.class).add(entry.getKey(), new LootTableImpl(IOUtils.toString(entry.getValue(), StandardCharsets.UTF_8), main)); } catch(ParseException | IOException | NullPointerException e) { throw new LoadException("Unable to load loot table \"" + entry.getKey() + "\"", e); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java index b68752b9d..2973b5249 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java @@ -6,11 +6,11 @@ import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.carving.UserDefinedCarver; +import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.config.builder.BiomeBuilder; import com.dfsek.terra.registry.LockedRegistryImpl; import com.dfsek.terra.registry.OpenRegistryImpl; -import com.dfsek.terra.world.generation.math.SamplerCache; +import com.dfsek.terra.world.generation.math.SamplerCacheImpl; import com.dfsek.terra.world.population.items.TerraStructure; import java.util.HashMap; @@ -31,7 +31,7 @@ public class WorldConfigImpl implements com.dfsek.terra.api.config.WorldConfig { public WorldConfigImpl(TerraWorld world, ConfigPackImpl pack, TerraPlugin main) { this.world = world; this.pack = pack; - this.samplerCache = new SamplerCache(main, world); + this.samplerCache = new SamplerCacheImpl(main, world); pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft()))); @@ -58,11 +58,6 @@ public class WorldConfigImpl implements com.dfsek.terra.api.config.WorldConfig { return samplerCache; } - @Override - public Set getCarvers() { - return new HashSet<>(getRegistry(UserDefinedCarver.class).entries()); - } - @Override public BiomeProvider getProvider() { return provider; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java index 73393cf6f..d6769ce62 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/templates/BiomeTemplate.java @@ -11,7 +11,7 @@ import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.ConstantSampler; +import com.dfsek.terra.noise.samplers.noise.ConstantSampler; import com.dfsek.terra.api.math.paralithic.BlankFunction; import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction; import com.dfsek.terra.api.block.BlockType; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/templates/PaletteTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/templates/PaletteTemplate.java index 567a9896e..87186a9bc 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/templates/PaletteTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/templates/PaletteTemplate.java @@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Abstractable; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java index e71ef4583..6b7cd6e65 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/templates/StructureTemplate.java @@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.terra.api.math.GridSpawn; -import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; @@ -19,7 +19,7 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem @Value("scripts") @Abstractable - private ProbabilityCollectionImpl structure; + private ProbabilityCollectionImpl structure; @Value("spawn.start") @Abstractable @@ -38,7 +38,7 @@ public class StructureTemplate extends AbstractableTemplate implements ConfigTem return id; } - public ProbabilityCollectionImpl getStructures() { + public ProbabilityCollectionImpl getStructures() { return structure; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/templates/TreeTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/templates/TreeTemplate.java index 5ae0ebb03..5e07626ed 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/templates/TreeTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/templates/TreeTemplate.java @@ -3,7 +3,7 @@ package com.dfsek.terra.config.templates; import com.dfsek.tectonic.annotations.Abstractable; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; -import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.collections.MaterialSet; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; @@ -11,7 +11,7 @@ import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; public class TreeTemplate extends AbstractableTemplate { @Value("scripts") @Abstractable - private ProbabilityCollectionImpl structure; + private ProbabilityCollectionImpl structure; @Value("id") private String id; @@ -25,7 +25,7 @@ public class TreeTemplate extends AbstractableTemplate { @Abstractable private MaterialSet spawnable; - public ProbabilityCollectionImpl getStructures() { + public ProbabilityCollectionImpl getStructures() { return structure; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/ClampNormalizer.java b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/ClampNormalizer.java similarity index 90% rename from common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/ClampNormalizer.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/ClampNormalizer.java index 5386119b4..e4e3598ae 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/ClampNormalizer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/ClampNormalizer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.normalizer; +package com.dfsek.terra.noise.normalizer; import com.dfsek.terra.api.noise.NoiseSampler; import net.jafama.FastMath; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/LinearNormalizer.java b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/LinearNormalizer.java similarity index 91% rename from common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/LinearNormalizer.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/LinearNormalizer.java index e61fefe3d..d062f9c07 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/LinearNormalizer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/LinearNormalizer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.normalizer; +package com.dfsek.terra.noise.normalizer; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/NormalNormalizer.java b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/NormalNormalizer.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/NormalNormalizer.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/NormalNormalizer.java index 0cb62d681..575b60db0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/NormalNormalizer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/NormalNormalizer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.normalizer; +package com.dfsek.terra.noise.normalizer; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.MathUtil; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/Normalizer.java b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/Normalizer.java similarity index 94% rename from common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/Normalizer.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/Normalizer.java index 2e61cbe9f..327cb5e72 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/normalizer/Normalizer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/normalizer/Normalizer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.normalizer; +package com.dfsek.terra.noise.normalizer; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/DomainWarpedSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/DomainWarpedSampler.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/DomainWarpedSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/DomainWarpedSampler.java index 9796999d9..51a40d85a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/DomainWarpedSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/DomainWarpedSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers; +package com.dfsek.terra.noise.samplers; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ExpressionSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ExpressionSampler.java similarity index 84% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ExpressionSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ExpressionSampler.java index 2f42d8bda..24ba1549b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ExpressionSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ExpressionSampler.java @@ -1,10 +1,15 @@ -package com.dfsek.terra.api.noise.samplers; +package com.dfsek.terra.noise.samplers; import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Scope; import com.dfsek.paralithic.eval.tokenizer.ParseException; +import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction; +import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2; +import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3; import com.dfsek.terra.api.noise.NoiseSampler; +import com.dfsek.terra.api.util.seeded.NoiseSeeded; +import com.dfsek.terra.config.loaders.config.function.FunctionTemplate; import java.util.Map; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ImageSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ImageSampler.java similarity index 97% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ImageSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ImageSampler.java index d246e53c7..cc1aa3f89 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/ImageSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/ImageSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers; +package com.dfsek.terra.noise.samplers; import com.dfsek.terra.api.noise.NoiseSampler; import net.jafama.FastMath; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/KernelSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/KernelSampler.java similarity index 97% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/KernelSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/KernelSampler.java index d74fc35a0..e3f0d43ce 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/KernelSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/KernelSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers; +package com.dfsek.terra.noise.samplers; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/CellularSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/CellularSampler.java similarity index 99% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/CellularSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/CellularSampler.java index 8c27f612d..6f8895ad6 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/CellularSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/CellularSampler.java @@ -1,7 +1,7 @@ -package com.dfsek.terra.api.noise.samplers.noise; +package com.dfsek.terra.noise.samplers.noise; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler; +import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.vector.Vector3; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ConstantSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ConstantSampler.java similarity index 90% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ConstantSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ConstantSampler.java index 1d8e010c6..59455ffa1 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ConstantSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ConstantSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise; +package com.dfsek.terra.noise.samplers.noise; /** * Sampler3D implementation that returns a constant. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ExpressionFunction.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ExpressionFunction.java similarity index 95% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ExpressionFunction.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ExpressionFunction.java index 60fb2c97e..2cd6bcdac 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/ExpressionFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/ExpressionFunction.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise; +package com.dfsek.terra.noise.samplers.noise; import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.eval.parser.Parser; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/GaborNoiseSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/GaborNoiseSampler.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/GaborNoiseSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/GaborNoiseSampler.java index f1311f2ed..277316a50 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/GaborNoiseSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/GaborNoiseSampler.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.api.noise.samplers.noise; +package com.dfsek.terra.noise.samplers.noise; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; import net.jafama.FastMath; public class GaborNoiseSampler extends NoiseFunction { diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/NoiseFunction.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/NoiseFunction.java similarity index 98% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/NoiseFunction.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/NoiseFunction.java index 5e9249faf..7e21160a2 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/NoiseFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/NoiseFunction.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise; +package com.dfsek.terra.noise.samplers.noise; import com.dfsek.terra.api.noise.NoiseSampler; import net.jafama.FastMath; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/BrownianMotionSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/BrownianMotionSampler.java similarity index 95% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/BrownianMotionSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/BrownianMotionSampler.java index e04976feb..f974132aa 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/BrownianMotionSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/BrownianMotionSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.fractal; +package com.dfsek.terra.noise.samplers.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/FractalNoiseFunction.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/FractalNoiseFunction.java similarity index 91% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/FractalNoiseFunction.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/FractalNoiseFunction.java index 9c5c0f0cd..702ab0b1c 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/FractalNoiseFunction.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/FractalNoiseFunction.java @@ -1,7 +1,7 @@ -package com.dfsek.terra.api.noise.samplers.noise.fractal; +package com.dfsek.terra.noise.samplers.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; public abstract class FractalNoiseFunction extends NoiseFunction { protected final NoiseSampler input; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/PingPongSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/PingPongSampler.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/PingPongSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/PingPongSampler.java index 48b71c018..95fe14387 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/PingPongSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/PingPongSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.fractal; +package com.dfsek.terra.noise.samplers.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/RidgedFractalSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/RidgedFractalSampler.java similarity index 95% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/RidgedFractalSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/RidgedFractalSampler.java index 56e92269a..358568bc4 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/fractal/RidgedFractalSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/fractal/RidgedFractalSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.fractal; +package com.dfsek.terra.noise.samplers.noise.fractal; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/GaussianNoiseSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/GaussianNoiseSampler.java similarity index 91% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/GaussianNoiseSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/GaussianNoiseSampler.java index b89346c1f..5a488a6aa 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/GaussianNoiseSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/GaussianNoiseSampler.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.api.noise.samplers.noise.random; +package com.dfsek.terra.noise.samplers.noise.random; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; /** * NoiseSampler implementation to provide random, normally distributed (Gaussian) noise. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/WhiteNoiseSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/WhiteNoiseSampler.java similarity index 94% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/WhiteNoiseSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/WhiteNoiseSampler.java index 6f9c2fb42..5a99eed7c 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/random/WhiteNoiseSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/random/WhiteNoiseSampler.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.api.noise.samplers.noise.random; +package com.dfsek.terra.noise.samplers.noise.random; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; /** * NoiseSampler implementation to produce random, uniformly distributed (white) noise. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2SSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2SSampler.java similarity index 99% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2SSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2SSampler.java index 94a7de195..17a49e93f 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2SSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2SSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.simplex; +package com.dfsek.terra.noise.samplers.noise.simplex; /** * NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2Sampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2Sampler.java similarity index 98% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2Sampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2Sampler.java index 43e1e8993..0ce5a2a6f 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/OpenSimplex2Sampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/OpenSimplex2Sampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.simplex; +package com.dfsek.terra.noise.samplers.noise.simplex; /** * NoiseSampler implementation to provide OpenSimplex2 noise. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/PerlinSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/PerlinSampler.java similarity index 97% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/PerlinSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/PerlinSampler.java index 73832a28d..13fbe326b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/PerlinSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/PerlinSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.simplex; +package com.dfsek.terra.noise.samplers.noise.simplex; /** * NoiseSampler implementation to provide Perlin Noise. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexSampler.java similarity index 99% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexSampler.java index 98644c689..7b1ccc099 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.simplex; +package com.dfsek.terra.noise.samplers.noise.simplex; public class SimplexSampler extends SimplexStyleSampler { private static final Double2[] GRAD_2D = { diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexStyleSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexStyleSampler.java similarity index 98% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexStyleSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexStyleSampler.java index 7ff57275b..83805d85b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/simplex/SimplexStyleSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/simplex/SimplexStyleSampler.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.api.noise.samplers.noise.simplex; +package com.dfsek.terra.noise.samplers.noise.simplex; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; /** * Abstract NoiseSampler implementation for simplex-style noise functions. diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueCubicSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueCubicSampler.java similarity index 98% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueCubicSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueCubicSampler.java index f91376003..154d7053a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueCubicSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueCubicSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.value; +package com.dfsek.terra.noise.samplers.noise.value; public class ValueCubicSampler extends ValueStyleNoise { public ValueCubicSampler(int seed) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueSampler.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueSampler.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueSampler.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueSampler.java index cc8384b1a..656f60d7f 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueSampler.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueSampler.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.noise.samplers.noise.value; +package com.dfsek.terra.noise.samplers.noise.value; public class ValueSampler extends ValueStyleNoise { public ValueSampler(int seed) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueStyleNoise.java b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueStyleNoise.java similarity index 83% rename from common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueStyleNoise.java rename to common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueStyleNoise.java index 7ea976614..aff9e1a22 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/noise/samplers/noise/value/ValueStyleNoise.java +++ b/common/implementation/src/main/java/com/dfsek/terra/noise/samplers/noise/value/ValueStyleNoise.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.api.noise.samplers.noise.value; +package com.dfsek.terra.noise.samplers.noise.value; -import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction; +import com.dfsek.terra.noise.samplers.noise.NoiseFunction; public abstract class ValueStyleNoise extends NoiseFunction { public ValueStyleNoise(int seed) { diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/config/LootRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/config/LootRegistry.java index fbf9bedc8..37b8eb459 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/config/LootRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/config/LootRegistry.java @@ -1,7 +1,7 @@ package com.dfsek.terra.registry.config; +import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.registry.OpenRegistryImpl; -import com.dfsek.terra.api.structures.loot.LootTable; public class LootRegistry extends OpenRegistryImpl { } diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/config/NoiseRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/config/NoiseRegistry.java index 43f093960..91017c2da 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/config/NoiseRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/config/NoiseRegistry.java @@ -1,13 +1,13 @@ package com.dfsek.terra.registry.config; -import com.dfsek.terra.api.noise.samplers.noise.random.GaussianNoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2SSampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.PerlinSampler; -import com.dfsek.terra.api.noise.samplers.noise.simplex.SimplexSampler; -import com.dfsek.terra.api.noise.samplers.noise.value.ValueCubicSampler; -import com.dfsek.terra.api.noise.samplers.noise.value.ValueSampler; +import com.dfsek.terra.noise.samplers.noise.random.GaussianNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler; +import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2SSampler; +import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler; +import com.dfsek.terra.noise.samplers.noise.simplex.PerlinSampler; +import com.dfsek.terra.noise.samplers.noise.simplex.SimplexSampler; +import com.dfsek.terra.noise.samplers.noise.value.ValueCubicSampler; +import com.dfsek.terra.noise.samplers.noise.value.ValueSampler; import com.dfsek.terra.api.util.seeded.NoiseProvider; import com.dfsek.terra.config.loaders.config.sampler.templates.DomainWarpTemplate; import com.dfsek.terra.config.loaders.config.sampler.templates.ImageSamplerTemplate; diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ScriptRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ScriptRegistry.java index 110659b58..ad865a298 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ScriptRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ScriptRegistry.java @@ -1,7 +1,7 @@ package com.dfsek.terra.registry.config; -import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.registry.OpenRegistryImpl; -public class ScriptRegistry extends OpenRegistryImpl { +public class ScriptRegistry extends OpenRegistryImpl { } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java index 5ed1316ff..732b1dfed 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator2D.java @@ -7,11 +7,12 @@ import com.dfsek.terra.api.world.BiomeGrid; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; -import com.dfsek.terra.api.util.world.PaletteUtil; +import com.dfsek.terra.api.util.PaletteUtil; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.Palette; +import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.api.world.generator.TerraBlockPopulator; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.config.pack.ConfigPackImpl; @@ -19,7 +20,6 @@ import com.dfsek.terra.config.templates.BiomeTemplate; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.world.Carver; import com.dfsek.terra.world.carving.NoiseCarver; -import com.dfsek.terra.world.generation.math.SamplerCache; import com.dfsek.terra.api.world.generator.Sampler; import com.dfsek.terra.world.generation.math.samplers.Sampler2D; import com.dfsek.terra.world.population.CavePopulator; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java index 3f2709a6a..930c6cf6a 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/generation/generators/DefaultChunkGenerator3D.java @@ -17,7 +17,7 @@ import com.dfsek.terra.api.block.data.Waterlogged; import com.dfsek.terra.api.world.BiomeGrid; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; -import com.dfsek.terra.api.util.world.PaletteUtil; +import com.dfsek.terra.api.util.PaletteUtil; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCache.java b/common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCacheImpl.java similarity index 88% rename from common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCache.java rename to common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCacheImpl.java index 6ca432233..0ae18180b 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCache.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/generation/math/SamplerCacheImpl.java @@ -10,10 +10,10 @@ import com.google.common.cache.LoadingCache; import net.jafama.FastMath; import org.jetbrains.annotations.NotNull; -public class SamplerCache { +public class SamplerCacheImpl implements com.dfsek.terra.api.world.generator.SamplerCache { private final LoadingCache cache; - public SamplerCache(TerraPlugin main, TerraWorld world) { + public SamplerCacheImpl(TerraPlugin main, TerraWorld world) { cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getSamplerCache()) .build(new CacheLoader() { @Override @@ -25,17 +25,20 @@ public class SamplerCache { }); } + @Override public Sampler get(int x, int z) { int cx = FastMath.floorDiv(x, 16); int cz = FastMath.floorDiv(z, 16); return getChunk(cx, cz); } + @Override public Sampler getChunk(int cx, int cz) { long key = MathUtil.squash(cx, cz); return cache.getUnchecked(key); } + @Override public void clear() { cache.invalidateAll(); cache.cleanUp(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/CavePopulator.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/CavePopulator.java index 38ab60273..951ee41fa 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/CavePopulator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/CavePopulator.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.handle.WorldHandle; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.util.world.PopulationUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.generator.Chunkified; import com.dfsek.terra.api.world.generator.TerraBlockPopulator; import com.dfsek.terra.carving.UserDefinedCarver; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java index d315b5472..c99eed555 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java @@ -6,7 +6,7 @@ import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.vector.Vector2Impl; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.util.world.PopulationUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.TerraBlockPopulator; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/OrePopulator.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/OrePopulator.java index 24b63d96a..142525e07 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/OrePopulator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/OrePopulator.java @@ -1,7 +1,7 @@ package com.dfsek.terra.world.population; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.util.MathUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.vector.Vector3Impl; import com.dfsek.terra.api.world.Chunk; @@ -33,7 +33,7 @@ public class OrePopulator implements TerraBlockPopulator { if(!tw.isSafe()) return; for(int cx = -1; cx <= 1; cx++) { for(int cz = -1; cz <= 1; cz++) { - Random random = new FastRandom(MathUtil.getCarverChunkSeed(chunk.getX() + cx, chunk.getZ() + cz, world.getSeed())); + Random random = new FastRandom(PopulationUtil.getCarverChunkSeed(chunk.getX() + cx, chunk.getZ() + cz, world.getSeed())); int originX = ((chunk.getX() + cx) << 4); int originZ = ((chunk.getZ() + cz) << 4); TerraBiome b = tw.getBiomeProvider().getBiome(originX + 8, originZ + 8); diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java index 8f8486e33..aba5f765a 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java @@ -1,7 +1,7 @@ package com.dfsek.terra.world.population; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.util.MathUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.TerraWorld; @@ -44,8 +44,8 @@ public class StructurePopulator implements TerraBlockPopulator, Chunkified { if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(conf)) continue; - Random random = new FastRandom(MathUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed())); - conf.getStructure().get(random).execute(spawn.setY(conf.getSpawnStart().get(random)), chunk, random, Rotation.fromDegrees(90 * random.nextInt(4))); + Random random = new FastRandom(PopulationUtil.getCarverChunkSeed(FastMath.floorDiv(spawn.getBlockX(), 16), FastMath.floorDiv(spawn.getBlockZ(), 16), world.getSeed())); + conf.getStructure().get(random).generate(spawn.setY(conf.getSpawnStart().get(random)), chunk, random, Rotation.fromDegrees(90 * random.nextInt(4))); } } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/TreePopulator.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/TreePopulator.java index f4e1efd3a..ba29c522c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/TreePopulator.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/TreePopulator.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.vector.Vector2Impl; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.util.world.PopulationUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.TerraBlockPopulator; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/TerraStructure.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/TerraStructure.java index eb6b87f3d..0cd519d8b 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/TerraStructure.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/TerraStructure.java @@ -1,18 +1,18 @@ package com.dfsek.terra.world.population.items; import com.dfsek.terra.api.math.GridSpawn; -import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; import com.dfsek.terra.config.templates.StructureTemplate; public class TerraStructure { - private final ProbabilityCollectionImpl structure; + private final ProbabilityCollectionImpl structure; private final Range spawnStart; private final GridSpawn spawn; private final StructureTemplate template; - public TerraStructure(ProbabilityCollectionImpl structures, Range spawnStart, GridSpawn spawn, StructureTemplate template) { + public TerraStructure(ProbabilityCollectionImpl structures, Range spawnStart, GridSpawn spawn, StructureTemplate template) { this.structure = structures; this.spawnStart = spawnStart; this.spawn = spawn; @@ -23,7 +23,7 @@ public class TerraStructure { return template; } - public ProbabilityCollectionImpl getStructure() { + public ProbabilityCollectionImpl getStructure() { return structure; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/ores/DeformedSphereOre.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/ores/DeformedSphereOre.java index c34da3b4e..2d98cb11f 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/ores/DeformedSphereOre.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/ores/DeformedSphereOre.java @@ -1,7 +1,7 @@ package com.dfsek.terra.world.population.items.ores; import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler; +import com.dfsek.terra.noise.samplers.noise.simplex.OpenSimplex2Sampler; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.vector.Vector3Impl; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TerraTree.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TerraTree.java index 3dd2bddcb..2a8c04aae 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TerraTree.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TerraTree.java @@ -1,8 +1,8 @@ package com.dfsek.terra.world.population.items.tree; +import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.vector.LocationImpl; import com.dfsek.terra.api.world.Tree; -import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.util.collections.MaterialSet; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; @@ -12,9 +12,9 @@ import java.util.Random; public class TerraTree implements Tree { private final MaterialSet spawnable; private final int yOffset; - private final ProbabilityCollectionImpl structure; + private final ProbabilityCollectionImpl structure; - public TerraTree(MaterialSet spawnable, int yOffset, ProbabilityCollectionImpl structure) { + public TerraTree(MaterialSet spawnable, int yOffset, ProbabilityCollectionImpl structure) { this.spawnable = spawnable; this.yOffset = yOffset; this.structure = structure; @@ -22,7 +22,7 @@ public class TerraTree implements Tree { @Override public synchronized boolean plant(LocationImpl location, Random random) { - return structure.get(random).executeDirect(location.clone().add(0, yOffset, 0), random, Rotation.fromDegrees(90 * random.nextInt(4))); + return structure.get(random).generateDirect(location.clone().add(0, yOffset, 0), random, Rotation.fromDegrees(90 * random.nextInt(4))); } @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TreeLayer.java b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TreeLayer.java index 853d301a9..a3409a7be 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TreeLayer.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/population/items/tree/TreeLayer.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.block.BlockFace; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.Tree; import com.dfsek.terra.api.util.collections.ProbabilityCollectionImpl; -import com.dfsek.terra.api.util.world.PopulationUtil; +import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.world.population.items.PlaceableLayer; public class TreeLayer extends PlaceableLayer { 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 afec03924..cdcd8dc78 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 @@ -10,11 +10,13 @@ import com.dfsek.terra.api.command.CommandManager; import com.dfsek.terra.api.command.TerraCommandManager; import com.dfsek.terra.api.command.exception.MalformedCommandException; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.block.BlockData; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.World; @@ -22,7 +24,7 @@ import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.LockedRegistry; import com.dfsek.terra.api.util.logging.DebugLogger; import com.dfsek.terra.api.util.logging.JavaLogger; -import com.dfsek.terra.api.util.logging.Logger; +import com.dfsek.terra.api.Logger; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.bukkit.command.BukkitCommandAdapter; import com.dfsek.terra.bukkit.command.FixChunkCommand; @@ -39,9 +41,8 @@ import com.dfsek.terra.bukkit.world.BukkitBiome; import com.dfsek.terra.bukkit.world.BukkitWorld; import com.dfsek.terra.commands.CommandUtil; import com.dfsek.terra.config.GenericLoaders; -import com.dfsek.terra.config.PluginConfig; +import com.dfsek.terra.config.PluginConfigImpl; import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.config.lang.Language; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.profiler.ProfilerImpl; import com.dfsek.terra.registry.master.AddonRegistry; @@ -73,7 +74,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { private final ConfigRegistry registry = new ConfigRegistry(); private final CheckedRegistry checkedRegistry = new CheckedRegistry<>(registry); - private final PluginConfig config = new PluginConfig(); + private final PluginConfig config = new PluginConfigImpl(); private final ItemHandle itemHandle = new BukkitItemHandle(); private WorldHandle handle = new BukkitWorldHandle(); private final GenericLoaders genericLoaders = new GenericLoaders(this); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java index 29d6f7dd7..2e3a14971 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java @@ -12,6 +12,7 @@ import com.dfsek.terra.api.command.CommandManager; import com.dfsek.terra.api.command.TerraCommandManager; import com.dfsek.terra.api.command.exception.MalformedCommandException; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; @@ -22,6 +23,7 @@ import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; import com.dfsek.terra.api.block.BlockData; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.Tree; import com.dfsek.terra.api.world.World; @@ -31,13 +33,12 @@ import com.dfsek.terra.api.transform.TransformerImpl; import com.dfsek.terra.api.transform.Validator; import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.api.util.logging.DebugLogger; -import com.dfsek.terra.api.util.logging.Logger; +import com.dfsek.terra.api.Logger; import com.dfsek.terra.commands.CommandUtil; import com.dfsek.terra.config.GenericLoaders; -import com.dfsek.terra.config.PluginConfig; +import com.dfsek.terra.config.PluginConfigImpl; import com.dfsek.terra.config.builder.BiomeBuilder; import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.config.lang.Language; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.PopulatorFeature; import com.dfsek.terra.fabric.generation.TerraBiomeSource; @@ -124,7 +125,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { private final AddonRegistry addonRegistry = new AddonRegistry(fabricAddon, this); private final LockedRegistry addonLockedRegistry = new LockedRegistry<>(addonRegistry); - private final PluginConfig config = new PluginConfig(); + private final PluginConfig config = new PluginConfigImpl(); private final TransformerImpl biomeFixer = new TransformerImpl.Builder() .addTransform(this::parseBiome, Validator.notNull()) diff --git a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java index 59084224e..16497596f 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java +++ b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java @@ -4,11 +4,13 @@ import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.block.BlockData; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.World; @@ -17,9 +19,9 @@ import com.dfsek.terra.api.registry.LockedRegistry; import com.dfsek.terra.api.util.logging.DebugLogger; import com.dfsek.terra.api.util.logging.JavaLogger; import com.dfsek.terra.config.GenericLoaders; -import com.dfsek.terra.config.PluginConfig; +import com.dfsek.terra.config.PluginConfigImpl; import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.config.lang.Language; +import com.dfsek.terra.config.lang.LanguageImpl; import com.dfsek.terra.platform.RawBiome; import com.dfsek.terra.platform.RawWorldHandle; import com.dfsek.terra.api.profiler.Profiler; @@ -38,7 +40,7 @@ public class StandalonePlugin implements TerraPlugin { private final LockedRegistry addonLockedRegistry = new LockedRegistry<>(addonRegistry); - private final PluginConfig config = new PluginConfig(); + private final PluginConfig config = new PluginConfigImpl(); private final RawWorldHandle worldHandle = new RawWorldHandle(); private final EventManager eventManager = new EventManagerImpl(this); @@ -55,7 +57,7 @@ public class StandalonePlugin implements TerraPlugin { } @Override - public com.dfsek.terra.api.util.logging.Logger logger() { + public com.dfsek.terra.api.Logger logger() { return new JavaLogger(Logger.getLogger("Terra")); } @@ -72,7 +74,7 @@ public class StandalonePlugin implements TerraPlugin { @Override public Language getLanguage() { try { - return new Language(new File(getDataFolder(), "lang/en_us.yml")); + return new LanguageImpl(new File(getDataFolder(), "lang/en_us.yml")); } catch(IOException e) { throw new IllegalArgumentException(); } @@ -111,7 +113,7 @@ public class StandalonePlugin implements TerraPlugin { @Override public DebugLogger getDebugLogger() { Logger logger = Logger.getLogger("Terra"); - return new DebugLogger(new com.dfsek.terra.api.util.logging.Logger() { + return new DebugLogger(new com.dfsek.terra.api.Logger() { @Override public void info(String message) { logger.info(message); diff --git a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/SpongeLogger.java b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/SpongeLogger.java index 1ead85e8d..8ea1150aa 100644 --- a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/SpongeLogger.java +++ b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/SpongeLogger.java @@ -1,6 +1,6 @@ package com.dfsek.terra.sponge; -import com.dfsek.terra.api.util.logging.Logger; +import com.dfsek.terra.api.Logger; public class SpongeLogger implements Logger { private final org.slf4j.Logger logger; diff --git a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java index 47d266c45..3bb6729bb 100644 --- a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java +++ b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java @@ -4,17 +4,19 @@ import com.dfsek.tectonic.loading.TypeRegistry; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.config.PluginConfig; import com.dfsek.terra.api.event.EventManager; import com.dfsek.terra.api.event.EventManagerImpl; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.LockedRegistry; import com.dfsek.terra.api.util.logging.DebugLogger; -import com.dfsek.terra.config.PluginConfig; -import com.dfsek.terra.config.lang.Language; +import com.dfsek.terra.config.PluginConfigImpl; +import com.dfsek.terra.config.lang.LanguageImpl; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.registry.master.AddonRegistry; import com.dfsek.terra.registry.master.ConfigRegistry; @@ -34,7 +36,7 @@ import java.nio.file.Path; public class TerraSpongePlugin implements TerraPlugin { private final ConfigRegistry configRegistry = new ConfigRegistry(); private final CheckedRegistry packCheckedRegistry = new CheckedRegistry<>(configRegistry); - private final PluginConfig config = new PluginConfig(); + private final PluginConfig config = new PluginConfigImpl(); private final AddonRegistry addonRegistry = new AddonRegistry(this); private final LockedRegistry addonLockedRegistry = new LockedRegistry<>(addonRegistry); @@ -72,7 +74,7 @@ public class TerraSpongePlugin implements TerraPlugin { } @Override - public com.dfsek.terra.api.util.logging.Logger logger() { + public com.dfsek.terra.api.Logger logger() { return new SpongeLogger(logger); } @@ -89,7 +91,7 @@ public class TerraSpongePlugin implements TerraPlugin { @Override public Language getLanguage() { try { - return new Language(new File(getDataFolder(), "lang/en_us.yml")); + return new LanguageImpl(new File(getDataFolder(), "lang/en_us.yml")); } catch(IOException e) { throw new IllegalArgumentException(); }