diff --git a/common/addons/generation-stage-tree/build.gradle.kts b/common/addons/generation-stage-tree/build.gradle.kts deleted file mode 100644 index 07542d899..000000000 --- a/common/addons/generation-stage-tree/build.gradle.kts +++ /dev/null @@ -1,45 +0,0 @@ -import com.dfsek.terra.configureCompilation -import com.dfsek.terra.configureDependencies - -plugins { - `java-library` - `maven-publish` - idea -} - -configureCompilation() -configureDependencies() - -group = "com.dfsek.terra.common" - -dependencies { - "shadedApi"(project(":common:api")) - "compileOnly"("com.google.guava:guava:30.0-jre") - - "testImplementation"("com.google.guava:guava:30.0-jre") -} - -publishing { - publications { - create("mavenJava") { - artifact(tasks["sourcesJar"]) - artifact(tasks["jar"]) - } - } - - repositories { - val mavenUrl = "https://repo.codemc.io/repository/maven-releases/" - val mavenSnapshotUrl = "https://repo.codemc.io/repository/maven-snapshots/" - - maven(mavenUrl) { - val mavenUsername: String? by project - val mavenPassword: String? by project - if (mavenUsername != null && mavenPassword != null) { - credentials { - username = mavenUsername - password = mavenPassword - } - } - } - } -} \ No newline at end of file diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTreeTemplate.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTreeTemplate.java deleted file mode 100644 index 964194095..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTreeTemplate.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -import com.dfsek.tectonic.annotations.Default; -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.util.Collections; -import java.util.List; - -public class BiomeTreeTemplate implements ObjectTemplate { - @Value("trees") - @Default - private List trees = Collections.emptyList(); - - @Override - public BiomeTrees get() { - return new BiomeTrees(trees); - } -} diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTrees.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTrees.java deleted file mode 100644 index bebade00b..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/BiomeTrees.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -import com.dfsek.terra.api.properties.Properties; - -import java.util.List; - -public class BiomeTrees implements Properties { - private final List trees; - - public BiomeTrees(List trees) { - this.trees = trees; - } - - public List getTrees() { - return trees; - } -} diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeGenerationAddon.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeGenerationAddon.java deleted file mode 100644 index 852aac8cd..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeGenerationAddon.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.addon.TerraAddon; -import com.dfsek.terra.api.addon.annotations.Addon; -import com.dfsek.terra.api.addon.annotations.Author; -import com.dfsek.terra.api.addon.annotations.Version; -import com.dfsek.terra.api.event.EventListener; -import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent; -import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; -import com.dfsek.terra.api.injection.annotations.Inject; -import com.dfsek.terra.api.registry.exception.DuplicateEntryException; -import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.generator.GenerationStageProvider; - -@Addon("generation-stage-tree") -@Version("1.0.0") -@Author("Tree") -public class TreeGenerationAddon extends TerraAddon implements EventListener { - @Inject - private TerraPlugin main; - - @Override - public void initialize() { - main.getEventManager().registerListener(this, this); - } - - public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException { - event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("TREE", pack -> new TreePopulator(main)); - event.getPack().applyLoader(TreeLayer.class, TreeLayerTemplate::new); - } - - public void onBiomeLoad(ConfigurationLoadEvent event) { - if(event.is(TerraBiome.class)) { - event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeTreeTemplate()).get()); - } - } -} diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayer.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayer.java deleted file mode 100644 index 5b454d319..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayer.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.PopulationUtil; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.vector.Vector2; -import com.dfsek.terra.api.vector.Vector3; -import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.Tree; - -public class TreeLayer { - protected final double density; - protected final Range level; - protected final ProbabilityCollection layer; - protected final NoiseSampler noise; - - public TreeLayer(double density, Range level, ProbabilityCollection layer, NoiseSampler noise) { - this.density = density; - this.level = level; - this.layer = layer; - this.noise = noise; - } - - public NoiseSampler getNoise() { - return noise; - } - - public double getDensity() { - return density; - } - - public Range getLevel() { - return level; - } - - public ProbabilityCollection getLayer() { - return layer; - } - - public void place(Chunk chunk, Vector2 coords) { - Tree item = layer.get(noise, coords.getX(), coords.getZ(), chunk.getWorld().getSeed()); - BlockState current; - int cx = (chunk.getX()) << 4; - int cz = (chunk.getZ()) << 4; - for(int y : level) { - current = chunk.getBlock((int) coords.getX(), y, (int) coords.getZ()); - if(item.getSpawnable().contains(current.getBlockType())) { - item.plant(new Vector3((int) coords.getX() + cx, y+1, (int) coords.getZ() + cz), chunk.getWorld(), PopulationUtil.getRandom(chunk, coords.hashCode())); - } - } - } -} diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayerTemplate.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayerTemplate.java deleted file mode 100644 index 3b6ba5b8a..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreeLayerTemplate.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -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.util.Range; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.Tree; - -public class TreeLayerTemplate implements ObjectTemplate { - @Value("density") - private double density; - - @Value("y") - private Range y; - - @Value("items") - private ProbabilityCollection items; - - @Value("distribution") - private NoiseSampler distribution; - - @Override - public TreeLayer get() { - return new TreeLayer(density, y, items, distribution); - } -} diff --git a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreePopulator.java b/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreePopulator.java deleted file mode 100644 index 6328b3497..000000000 --- a/common/addons/generation-stage-tree/src/main/java/com/dfsek/terra/addons/generation/tree/TreePopulator.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.dfsek.terra.addons.generation.tree; - -import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.profiler.ProfileFrame; -import com.dfsek.terra.api.util.PopulationUtil; -import com.dfsek.terra.api.vector.Vector2; -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.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; -import net.jafama.FastMath; -import org.jetbrains.annotations.NotNull; - -import java.util.Random; - - -public class TreePopulator implements TerraGenerationStage { - private final TerraPlugin main; - - public TreePopulator(TerraPlugin main) { - this.main = main; - } - - private static int offset(Random r, int i) { - return FastMath.min(FastMath.max(i + r.nextInt(3) - 1, 0), 15); - } - - @Override - @SuppressWarnings("try") - public void populate(@NotNull World world, @NotNull Chunk chunk) { - TerraWorld tw = main.getWorld(world); - try(ProfileFrame ignore = main.getProfiler().profile("tree")) { - if(tw.getConfig().disableTrees()) return; - - BiomeProvider provider = tw.getBiomeProvider(); - Random random = PopulationUtil.getRandom(chunk); - long seed = world.getSeed(); - for(int x = 0; x < 16; x += 2) { - for(int z = 0; z < 16; z += 2) { - for(TreeLayer layer : provider.getBiome((chunk.getX() << 4) + x, (chunk.getZ() << 4) + z, seed).getContext().get(BiomeTrees.class).getTrees()) { - if(layer.getDensity() >= random.nextDouble() * 100) { - layer.place(chunk, new Vector2(offset(random, x), offset(random, z))); - } - } - } - } - } - } -}