From 3364a75cec9cabe45f0449a7cb6b4fae3e7719ee Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 4 Jul 2021 23:11:08 -0700 Subject: [PATCH] build biome config addon --- .../terra/addons/biome/BiomeTemplate.java | 68 ++++++------------- .../terra/addons/biome}/BlankFunction.java | 2 +- .../terra/addons/biome/OreConfigLoader.java | 21 ------ .../terra/addons/biome/OreHolderLoader.java | 26 ------- .../addons/biome/PaletteSettingsImpl.java | 18 +++++ .../terra/addons/biome/UserDefinedBiome.java | 2 - .../addons/biome/UserDefinedBiomeBuilder.java | 31 +-------- .../terra/addons/biome/WorldGenerator.java | 17 ++--- .../command/biome}/AsyncBiomeFinder.java | 2 +- .../command/biome}/AsyncFeatureFinder.java | 2 +- .../biome/command/biome/BiomeCommand.java | 5 +- .../biome/command/biome/BiomeInfoCommand.java | 11 +-- .../command/biome/BiomeLocateCommand.java | 6 +- .../pipeline/config}/NoiseSourceTemplate.java | 2 +- .../pipeline/config}/SourceTemplate.java | 2 +- .../addons/carver/UserDefinedCarver.java | 4 +- 16 files changed, 63 insertions(+), 156 deletions(-) rename common/addons/{noise/src/main/java/com/dfsek/terra/addons/noise/paralithic => biome/config/src/main/java/com/dfsek/terra/addons/biome}/BlankFunction.java (90%) delete mode 100644 common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreConfigLoader.java delete mode 100644 common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreHolderLoader.java create mode 100644 common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/PaletteSettingsImpl.java rename common/{implementation/src/main/java/com/dfsek/terra/api/world/locate => addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome}/AsyncBiomeFinder.java (96%) rename common/{implementation/src/main/java/com/dfsek/terra/api/world/locate => addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome}/AsyncFeatureFinder.java (98%) rename common/addons/biome/{config/src/main/java/com/dfsek/terra/addons/biome => provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config}/NoiseSourceTemplate.java (92%) rename common/addons/biome/{config/src/main/java/com/dfsek/terra/addons/biome => provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config}/SourceTemplate.java (83%) diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java index 5f506517a..fae27548a 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BiomeTemplate.java @@ -2,7 +2,6 @@ package com.dfsek.terra.addons.biome; import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Scope; -import com.dfsek.paralithic.eval.tokenizer.ParseException; import com.dfsek.tectonic.annotations.Abstractable; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; @@ -14,18 +13,11 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.config.AbstractableTemplate; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.math.paralithic.BlankFunction; import com.dfsek.terra.api.structure.ConfiguredStructure; -import com.dfsek.terra.api.util.GlueList; import com.dfsek.terra.api.util.ProbabilityCollection; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.generator.Palette; -import com.dfsek.terra.carving.UserDefinedCarver; -import com.dfsek.terra.world.population.items.TerraStructure; -import com.dfsek.terra.addons.flora.flora.FloraLayer; -import com.dfsek.terra.addons.ore.ores.OreHolder; -import com.dfsek.terra.addons.tree.tree.TreeLayer; import java.util.ArrayList; import java.util.Collections; @@ -54,7 +46,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl @Value("beta.carving.equation") @Abstractable @Default - private NoiseSeeded carvingEquation = NoiseSeeded.zero(2); + private NoiseSeeded carvingEquation = NoiseSeeded.zero(3); @Value("palette") @Abstractable @@ -98,10 +90,10 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl @Abstractable private NoiseSeeded noiseEquation; - @Value("ores") + /*@Value("ores") @Abstractable @Default - private OreHolder oreHolder = new OreHolder(); + private OreHolder oreHolder = new OreHolder();*/ @Value("ocean.level") @Abstractable @@ -115,22 +107,22 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl @Value("elevation.equation") @Default @Abstractable - private String elevationEquation = null; + private NoiseSeeded elevationEquation = NoiseSeeded.zero(2); @Value("elevation.weight") @Default @Abstractable private double elevationWeight = 1; - @Value("flora") + /*@Value("flora") @Abstractable @Default - private List flora = new GlueList<>(); + private List flora = new ArrayList<>(); @Value("trees") @Abstractable @Default - private List trees = new GlueList<>(); + private List trees = new ArrayList<>();*/ @Value("slabs.enable") @Abstractable @@ -166,10 +158,10 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl @Abstractable private Set tags = new HashSet<>(); - @Value("carving") + /*@Value("carving") @Abstractable @Default - private Map carvers = new HashMap<>(); + private Map carvers = new HashMap<>();*/ @Value("colors") @Abstractable @@ -188,10 +180,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl return colors; } - public Map getCarvers() { - return carvers; - } - public double getBlendWeight() { return blendWeight; } @@ -216,10 +204,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl return slabThreshold; } - public List getFlora() { - return flora; - } - public boolean doSlabs() { return doSlabs; } @@ -240,11 +224,11 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl return biomeNoise; } - public String getElevationEquation() { + public NoiseSeeded getElevationEquation() { return elevationEquation; } - public String getCarvingEquation() { + public NoiseSeeded getCarvingEquation() { return carvingEquation; } @@ -268,10 +252,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl return palette; } - public List getTrees() { - return trees; - } - public ProbabilityCollection getVanilla() { return vanilla; } @@ -284,10 +264,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl return noiseEquation; } - public OreHolder getOreHolder() { - return oreHolder; - } - public double getElevationWeight() { return elevationWeight; } @@ -304,7 +280,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl public boolean validate() throws ValidationException { color |= 0xff000000; // Alpha adjustment Parser tester = new Parser(); - Scope testScope = new Scope().withParent(pack.getVarScope()); + Scope testScope = new Scope(); variables.forEach(testScope::create); @@ -313,24 +289,24 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl testScope.addInvocationVariable("z"); - pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions + //pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions try { - tester.parse(noiseEquation, testScope); - } catch(ParseException e) { - throw new ValidationException("Invalid noise equation: ", e); + noiseEquation.apply(0L); + } catch(Exception e) { + throw new ValidationException("Invalid noise sampler: ", e); } try { - tester.parse(carvingEquation, testScope); - } catch(ParseException e) { - throw new ValidationException("Invalid carving equation: ", e); + carvingEquation.apply(0L); + } catch(Exception e) { + throw new ValidationException("Invalid carving sampler: ", e); } try { - if(elevationEquation != null) tester.parse(elevationEquation, testScope); - } catch(ParseException e) { - throw new ValidationException("Invalid elevation equation: ", e); + elevationEquation.apply(0L); + } catch(Exception e) { + throw new ValidationException("Invalid elevation sampler: ", e); } return true; diff --git a/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/paralithic/BlankFunction.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BlankFunction.java similarity index 90% rename from common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/paralithic/BlankFunction.java rename to common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BlankFunction.java index 3165b58d7..20acac0df 100644 --- a/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/paralithic/BlankFunction.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/BlankFunction.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.noise.paralithic; +package com.dfsek.terra.addons.biome; import com.dfsek.paralithic.functions.dynamic.DynamicFunction; diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreConfigLoader.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreConfigLoader.java deleted file mode 100644 index cee617f8b..000000000 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreConfigLoader.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.dfsek.terra.addons.biome; - -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.util.Range; -import com.dfsek.terra.addons.ore.ores.OreConfig; - -import java.lang.reflect.Type; -import java.util.Map; - -@SuppressWarnings("unchecked") -public class OreConfigLoader implements TypeLoader { - @Override - public OreConfig load(Type type, Object o, ConfigLoader configLoader) { - Map map = (Map) o; - Range amount = new ConstantRange(map.get("min"), map.get("max")); - Range height = new ConstantRange(map.get("min-height"), map.get("max-height")); - return new OreConfig(amount, height); - } -} diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreHolderLoader.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreHolderLoader.java deleted file mode 100644 index b62155ae6..000000000 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/OreHolderLoader.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.dfsek.terra.addons.biome; - -import com.dfsek.tectonic.exception.LoadException; -import com.dfsek.tectonic.loading.ConfigLoader; -import com.dfsek.tectonic.loading.TypeLoader; -import com.dfsek.terra.addons.ore.ores.Ore; -import com.dfsek.terra.addons.ore.ores.OreConfig; -import com.dfsek.terra.addons.ore.ores.OreHolder; - -import java.lang.reflect.Type; -import java.util.Map; - -@SuppressWarnings("unchecked") -public class OreHolderLoader implements TypeLoader { - @Override - public OreHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException { - OreHolder holder = new OreHolder(); - Map map = (Map) o; - - for(Map.Entry entry : map.entrySet()) { - holder.add(configLoader.loadClass(Ore.class, entry.getKey()), configLoader.loadClass(OreConfig.class, entry.getValue()), entry.getKey()); - } - - return holder; - } -} diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/PaletteSettingsImpl.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/PaletteSettingsImpl.java new file mode 100644 index 000000000..500753950 --- /dev/null +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/PaletteSettingsImpl.java @@ -0,0 +1,18 @@ +package com.dfsek.terra.addons.biome; + +import com.dfsek.terra.addons.biome.holder.PaletteHolder; +import com.dfsek.terra.api.world.biome.PaletteSettings; +import com.dfsek.terra.api.world.generator.Palette; + +public class PaletteSettingsImpl implements PaletteSettings { + private final PaletteHolder palette; + + public PaletteSettingsImpl(PaletteHolder palette) { + this.palette = palette; + } + + @Override + public Palette getPalette(int y) { + return palette.getPalette(y); + } +} diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java index ec568c676..f001d6d6d 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java @@ -5,8 +5,6 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.Generator; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.config.templates.BiomeTemplate; -import com.dfsek.terra.world.generation.WorldGenerator; import java.util.Set; diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiomeBuilder.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiomeBuilder.java index 4c585e300..c34788872 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiomeBuilder.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiomeBuilder.java @@ -1,21 +1,10 @@ package com.dfsek.terra.addons.biome; -import com.dfsek.paralithic.eval.parser.Scope; -import com.dfsek.paralithic.eval.tokenizer.ParseException; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.ProbabilityCollection; import com.dfsek.terra.api.util.seeded.BiomeBuilder; -import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.api.world.biome.UserDefinedBiome; -import com.dfsek.terra.config.loaders.config.function.FunctionTemplate; -import com.dfsek.terra.config.pack.ConfigPackImpl; -import com.dfsek.terra.config.templates.BiomeTemplate; -import com.dfsek.terra.noise.samplers.ExpressionSampler; -import com.dfsek.terra.world.generation.WorldGenerator; -import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -35,25 +24,7 @@ public class UserDefinedBiomeBuilder implements BiomeBuilder { synchronized(biomeMap) { return biomeMap.computeIfAbsent(seed, s -> { - NoiseSampler noise; - NoiseSampler elevation; - NoiseSampler carving; - Scope varScope = new Scope().withParent(pack.getVarScope()); - - template.getVariables().forEach(varScope::create); - - Map noiseBuilderMap = pack.getTemplate().getNoiseBuilderMap(); - - - try { - noise = new ExpressionSampler(template.getNoiseEquation(), varScope, seed, noiseBuilderMap); - elevation = template.getElevationEquation() == null ? NoiseSampler.zero() : new ExpressionSampler(template.getElevationEquation(), varScope, seed, noiseBuilderMap); - carving = new ExpressionSampler(template.getCarvingEquation(), varScope, seed, noiseBuilderMap); - } catch(ParseException e) { - throw new RuntimeException(e); - } - - WorldGenerator generator = new WorldGenerator(template.getPalette(), template.getSlant(), noise, elevation, carving, template.getBiomeNoise().apply(seed), template.getElevationWeight(), + WorldGenerator generator = new WorldGenerator(template.getPalette(), template.getSlant(), template.getNoiseEquation().apply(seed), template.getElevationEquation().apply(seed), template.getCarvingEquation().apply(seed), template.getBiomeNoise().apply(seed), template.getElevationWeight(), template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight()); return new UserDefinedBiome(template.getVanilla(), generator, template); } diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/WorldGenerator.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/WorldGenerator.java index 7240c24d1..16a9716eb 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/WorldGenerator.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/WorldGenerator.java @@ -4,12 +4,10 @@ import com.dfsek.terra.addons.biome.holder.PaletteHolder; import com.dfsek.terra.addons.biome.slant.SlantHolder; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.world.biome.Generator; -import com.dfsek.terra.api.world.generator.Palette; +import com.dfsek.terra.api.world.biome.PaletteSettings; public class WorldGenerator implements Generator { - @SuppressWarnings({"unchecked", "rawtypes", "RedundantSuppression"}) - private final PaletteHolder palettes; - @SuppressWarnings({"unchecked", "rawtypes", "RedundantSuppression"}) + private final PaletteSettings paletteSettings; private final SlantHolder slantPalettes; private final NoiseSampler noise; @@ -23,7 +21,7 @@ public class WorldGenerator implements Generator { private final double blendWeight; public WorldGenerator(PaletteHolder palettes, SlantHolder slantPalettes, NoiseSampler noise, NoiseSampler elevation, NoiseSampler carving, NoiseSampler biomeNoise, double elevationWeight, int blendDistance, int blendStep, double blendWeight) { - this.palettes = palettes; + this.paletteSettings = new PaletteSettingsImpl(palettes); this.slantPalettes = slantPalettes; this.noise = noise; this.elevation = elevation; @@ -61,14 +59,9 @@ public class WorldGenerator implements Generator { return blendWeight; } - /** - * Gets the BlockPalette to generate the biome with. - * - * @return BlockPalette - The biome's palette. - */ @Override - public Palette getPalette(int y) { - return palettes.getPalette(y); + public PaletteSettings getPaletteSettings() { + return paletteSettings; } @Override diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncBiomeFinder.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java similarity index 96% rename from common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncBiomeFinder.java rename to common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java index 4bcb8bda6..4cf520db7 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncBiomeFinder.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncBiomeFinder.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.world.locate; +package com.dfsek.terra.addons.biome.command.biome; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.vector.Vector3; diff --git a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncFeatureFinder.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncFeatureFinder.java similarity index 98% rename from common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncFeatureFinder.java rename to common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncFeatureFinder.java index 49de326f0..aa148595b 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/api/world/locate/AsyncFeatureFinder.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/AsyncFeatureFinder.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.world.locate; +package com.dfsek.terra.addons.biome.command.biome; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.vector.Vector3; diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java index 4a2dd3d27..e4bbd74b5 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java @@ -1,5 +1,6 @@ package com.dfsek.terra.addons.biome.command.biome; +import com.dfsek.terra.addons.biome.UserDefinedBiome; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Command; @@ -9,9 +10,7 @@ import com.dfsek.terra.api.command.annotation.type.WorldCommand; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.injection.annotations.Inject; -import com.dfsek.terra.api.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.config.lang.LangUtil; @Command( subcommands = { @@ -40,6 +39,6 @@ public class BiomeCommand implements CommandTemplate { BiomeProvider provider = main.getWorld(player.world()).getBiomeProvider(); UserDefinedBiome biome = (UserDefinedBiome) provider.getBiome(player.position()); - LangUtil.send("command.biome.in", sender, biome.getID()); + sender.sendMessage("You are standing in " + biome.getID()); } } diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeInfoCommand.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeInfoCommand.java index 19631ef74..e7ffbd11c 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeInfoCommand.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeInfoCommand.java @@ -1,5 +1,9 @@ package com.dfsek.terra.addons.biome.command.biome; +import com.dfsek.terra.addons.biome.BiomeTemplate; +import com.dfsek.terra.addons.biome.UserDefinedBiome; +import com.dfsek.terra.addons.biome.command.biome.arg.BiomeArgumentParser; +import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter; import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Argument; import com.dfsek.terra.api.command.annotation.Command; @@ -7,9 +11,6 @@ import com.dfsek.terra.api.command.annotation.inject.ArgumentTarget; import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.structure.ConfiguredStructure; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.UserDefinedBiome; -import com.dfsek.terra.config.templates.BiomeTemplate; -import com.dfsek.terra.world.population.items.TerraStructure; import java.util.List; @@ -47,8 +48,8 @@ public class BiomeInfoCommand implements CommandTemplate { sender.sendMessage("No Structures"); } else { sender.sendMessage("-------Structures-------"); - for(TerraStructure c : structureConfigs) { - sender.sendMessage(" - " + c.getTemplate().getID()); + for(ConfiguredStructure c : structureConfigs) { + sender.sendMessage(" - " + c); } } } diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java index fd7d749ae..4f9f22ac4 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java +++ b/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java @@ -1,6 +1,7 @@ package com.dfsek.terra.addons.biome.command.biome; import com.dfsek.terra.addons.biome.command.biome.arg.BiomeArgumentParser; +import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Argument; @@ -16,9 +17,6 @@ import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.locate.AsyncBiomeFinder; -import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter; -import com.dfsek.terra.config.lang.LangUtil; import java.util.Locale; @@ -70,7 +68,7 @@ public class BiomeLocateCommand implements CommandTemplate { if(teleport) { main.runPossiblyUnsafeTask(() -> player.position(new Vector3(location.getX(), player.position().getY(), location.getZ()))); } - } else LangUtil.send("command.biome.unable-to-locate", sender); + } else sender.sendMessage("Unable to locate biome \"" + biome.getID() + "\""); }, main), "Biome Location Thread").start(); } diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/NoiseSourceTemplate.java b/common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java similarity index 92% rename from common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/NoiseSourceTemplate.java rename to common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java index 731eddb87..d525b8359 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/NoiseSourceTemplate.java +++ b/common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome; +package com.dfsek.terra.addons.biome.pipeline.config; import com.dfsek.tectonic.annotations.Value; import com.dfsek.terra.api.util.ProbabilityCollection; diff --git a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/SourceTemplate.java b/common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java similarity index 83% rename from common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/SourceTemplate.java rename to common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java index 48845fa09..e3c9333c6 100644 --- a/common/addons/biome/config/src/main/java/com/dfsek/terra/addons/biome/SourceTemplate.java +++ b/common/addons/biome/provider/pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome; +package com.dfsek.terra.addons.biome.pipeline.config; import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.terra.api.util.seeded.SourceSeeded; diff --git a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/UserDefinedCarver.java b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/UserDefinedCarver.java index 5cdab774f..8622b8c79 100644 --- a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/UserDefinedCarver.java +++ b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/UserDefinedCarver.java @@ -4,6 +4,8 @@ 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.addons.carver.carving.Carver; +import com.dfsek.terra.addons.carver.carving.Worm; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction; import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2; @@ -15,8 +17,6 @@ import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.UserDefinedBiome; -import com.dfsek.terra.api.world.carving.Carver; -import com.dfsek.terra.api.world.carving.Worm; import com.dfsek.terra.config.loaders.config.function.FunctionTemplate; import com.dfsek.terra.config.templates.BiomeTemplate; import net.jafama.FastMath;