From 6ca9ba029b1b6f6fa7ef4edb3ebccb3ef6ee3212 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 8 Jul 2021 06:18:16 -0700 Subject: [PATCH] clean up biome and structure things --- .../biome/image/ImageProviderTemplate.java | 6 ++++-- .../single/SingleBiomeProviderTemplate.java | 12 ++++++++---- .../terra/addons/carver/CarverCache.java | 4 +++- .../terra/addons/carver/CarverFactory.java | 6 +++--- .../addons/carver/UserDefinedCarver.java | 19 ------------------- .../addons/structure/StructureFactory.java | 1 - .../addons/structure/StructurePopulator.java | 5 ++--- .../addons/structure/StructureTemplate.java | 7 +------ .../addons/structure/TerraStructure.java | 5 +++++ .../command/structure/StructureCommand.java | 1 - .../argument/ScriptArgumentParser.java | 1 - 11 files changed, 26 insertions(+), 41 deletions(-) diff --git a/common/addons/biome/provider/image/src/main/java/com/dfsek/terra/addons/biome/image/ImageProviderTemplate.java b/common/addons/biome/provider/image/src/main/java/com/dfsek/terra/addons/biome/image/ImageProviderTemplate.java index 878e74bb7..e53cae45e 100644 --- a/common/addons/biome/provider/image/src/main/java/com/dfsek/terra/addons/biome/image/ImageProviderTemplate.java +++ b/common/addons/biome/provider/image/src/main/java/com/dfsek/terra/addons/biome/image/ImageProviderTemplate.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.util.seeded.BiomeBuilder; import java.awt.image.BufferedImage; import java.util.stream.Collectors; -public class ImageProviderTemplate extends BiomeProviderTemplate { +public class ImageProviderTemplate /*extends BiomeProviderTemplate */{ private final Registry biomes; @Value("image.name") private BufferedImage image; @@ -16,11 +16,13 @@ public class ImageProviderTemplate extends BiomeProviderTemplate { @Value("image.align") private ImageBiomeProvider.Align align; + private int resolution; + public ImageProviderTemplate(Registry set) { this.biomes = set; } - @Override + //@Override public BiomeProvider build(long seed) { return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.apply(seed)).collect(Collectors.toSet()), image, resolution, align); } diff --git a/common/addons/biome/provider/single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderTemplate.java b/common/addons/biome/provider/single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderTemplate.java index e66ce857a..97c6e855b 100644 --- a/common/addons/biome/provider/single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderTemplate.java +++ b/common/addons/biome/provider/single/src/main/java/com/dfsek/terra/addons/biome/single/SingleBiomeProviderTemplate.java @@ -1,18 +1,22 @@ package com.dfsek.terra.addons.biome.single; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.util.seeded.BiomeBuilder; -public class SingleBiomeProviderTemplate extends BiomeProviderTemplate { +public class SingleBiomeProviderTemplate implements ObjectTemplate, BiomeProviderBuilder { @Value("biome") private BiomeBuilder biome; - public SingleBiomeProviderTemplate() { - } - @Override public BiomeProvider build(long seed) { return new SingleBiomeProvider(biome.apply(seed)); } + + @Override + public BiomeProviderBuilder get() { + return this; + } } diff --git a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java index 6a3a64e46..498d88f6f 100644 --- a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java +++ b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java @@ -7,7 +7,6 @@ import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.World; 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.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; @@ -41,9 +40,12 @@ public class CarverCache { for(int i = 0; i < carving.getLength(); i++) { carving.step(); TerraBiome biome = provider.getBiome(carving.getRunning()); + /* if(!((UserDefinedBiome) biome).getConfig().getCarvers().containsKey(CarverCache.this.carver)) { // Stop if we enter a biome this carver is not present in return Collections.emptyList(); } + + */ points.add(carving.getPoint()); } return points; diff --git a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverFactory.java b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverFactory.java index a57ecbba5..673ff1542 100644 --- a/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverFactory.java +++ b/common/addons/carver/src/main/java/com/dfsek/terra/addons/carver/CarverFactory.java @@ -4,16 +4,16 @@ import com.dfsek.paralithic.eval.tokenizer.ParseException; import com.dfsek.tectonic.exception.LoadException; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.ConfigFactory; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.config.pack.ConfigPackImpl; import java.util.Arrays; import java.util.List; public class CarverFactory implements ConfigFactory { - private final ConfigPackImpl pack; + private final ConfigPack pack; - public CarverFactory(ConfigPackImpl pack) { + public CarverFactory(ConfigPack pack) { this.pack = pack; } 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 edf72ea6c..480c8dcfa 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 @@ -7,11 +7,7 @@ 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; -import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3; import com.dfsek.terra.api.math.range.ConstantRange; -import com.dfsek.terra.api.util.FastRandom; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.vector.Vector3; @@ -58,21 +54,6 @@ public class UserDefinedCarver extends Carver { Parser p = new Parser(); - functions.forEach((id, noise) -> { - switch(noise.getDimensions()) { - case 2: - p.registerFunction(id, new NoiseFunction2(noise.apply(hash))); - break; - case 3: - p.registerFunction(id, new NoiseFunction3(noise.apply(hash))); - break; - } - }); - - for(Map.Entry entry : definedFunctions.entrySet()) { - p.registerFunction(entry.getKey(), UserDefinedFunction.newInstance(entry.getValue(), p, parent)); - } - Scope s = new Scope().withParent(parent); diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureFactory.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureFactory.java index 7da758b9f..1d5f51022 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureFactory.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureFactory.java @@ -3,7 +3,6 @@ package com.dfsek.terra.addons.structure; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.structure.ConfiguredStructure; -import com.dfsek.terra.config.templates.StructureTemplate; public class StructureFactory implements ConfigFactory { @Override diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java index 450e551a4..a54b10110 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java @@ -10,7 +10,6 @@ import com.dfsek.terra.api.vector.Vector3; 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.world.biome.UserDefinedBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.Chunkified; import com.dfsek.terra.api.world.generator.TerraBlockPopulator; @@ -41,8 +40,8 @@ public class StructurePopulator implements TerraBlockPopulator, Chunkified { for(ConfiguredStructure conf : config.getRegistry(TerraStructure.class).entries()) { Vector3 spawn = conf.getSpawn().getNearestSpawn(cx + 8, cz + 8, world.getSeed()); - if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(conf)) - continue; + //if(!((UserDefinedBiome) provider.getBiome(spawn)).getConfig().getStructures().contains(conf)) + // continue; Random random = new Random(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)), world, chunk, random, Rotation.fromDegrees(90 * random.nextInt(4))); } diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureTemplate.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureTemplate.java index 14a59c481..dfb23f8ed 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureTemplate.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/StructureTemplate.java @@ -1,18 +1,13 @@ package com.dfsek.terra.addons.structure; import com.dfsek.tectonic.annotations.Abstractable; -import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.terra.api.config.AbstractableTemplate; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.StructureSpawn; -import com.dfsek.terra.api.util.GlueList; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.Range; - -import java.util.ArrayList; -import java.util.List; +import com.dfsek.terra.api.util.collection.ProbabilityCollection; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class StructureTemplate implements AbstractableTemplate, ConfigTemplate { diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/TerraStructure.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/TerraStructure.java index 1c1ba019b..560872bfb 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/TerraStructure.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/TerraStructure.java @@ -31,4 +31,9 @@ public class TerraStructure implements ConfiguredStructure { public StructureSpawn getSpawn() { return spawn; } + + @Override + public String getID() { + return null; + } } diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureCommand.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureCommand.java index 05d515739..8565e4f8d 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureCommand.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureCommand.java @@ -4,7 +4,6 @@ import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Command; import com.dfsek.terra.api.command.annotation.Subcommand; import com.dfsek.terra.api.entity.CommandSender; -import com.dfsek.terra.config.lang.LangUtil; @Command( subcommands = { diff --git a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java index 0ee899437..909412a44 100644 --- a/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java +++ b/common/addons/structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java @@ -6,7 +6,6 @@ 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.structure.Structure; -import com.dfsek.terra.addons.structure.structures.script.StructureScript; public class ScriptArgumentParser implements ArgumentParser { @Inject