diff --git a/common/addons/biome-provider-image/README.md b/common/addons/biome-provider-image/README.md deleted file mode 100644 index 49e9b8fdb..000000000 --- a/common/addons/biome-provider-image/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# biome-provider-image - -Implements and registers the `IMAGE` biome provider, a biome provider which -generates biomes from an image, using the `color` attribute of biomes. - -This addon registers the provider type, and all associated config options. \ No newline at end of file diff --git a/common/addons/biome-provider-image/build.gradle.kts b/common/addons/biome-provider-image/build.gradle.kts deleted file mode 100644 index 7d82dc72f..000000000 --- a/common/addons/biome-provider-image/build.gradle.kts +++ /dev/null @@ -1,2 +0,0 @@ -dependencies { -} diff --git a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProvider.java b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProvider.java deleted file mode 100644 index 3ba0cb9ba..000000000 --- a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProvider.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.dfsek.terra.addons.biome.image; - -import net.jafama.FastMath; - -import java.awt.Color; -import java.awt.image.BufferedImage; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -public class ImageBiomeProvider implements BiomeProvider { - private final Map colorBiomeMap = new HashMap<>(); - private final BufferedImage image; - private final int resolution; - private final Align align; - - public ImageBiomeProvider(Set registry, BufferedImage image, int resolution, Align align) { - this.image = image; - this.resolution = resolution; - this.align = align; - registry.forEach(biome -> colorBiomeMap.put(new Color(biome.getColor()), biome)); - } - - private static int distance(Color a, Color b) { - return FastMath.abs(a.getRed() - b.getRed()) + FastMath.abs(a.getGreen() - b.getGreen()) + FastMath.abs(a.getBlue() - b.getBlue()); - } - - @Override - public TerraBiome getBiome(int x, int z, long seed) { - x /= resolution; - z /= resolution; - Color color = align.getColor(image, x, z); - return colorBiomeMap.get(colorBiomeMap.keySet() - .stream() - .reduce(colorBiomeMap.keySet().stream().findAny().orElseThrow(IllegalStateException::new), - (running, element) -> { - int d1 = distance(color, running); - int d2 = distance(color, element); - return d1 < d2 ? running : element; - })); - } - - public enum Align { - CENTER { - @Override - public Color getColor(BufferedImage image, int x, int z) { - return new Color(image.getRGB(FastMath.floorMod(x - image.getWidth() / 2, image.getWidth()), - FastMath.floorMod(z - image.getHeight() / 2, image.getHeight()))); - } - }, - NONE { - @Override - public Color getColor(BufferedImage image, int x, int z) { - return new Color(image.getRGB(FastMath.floorMod(x, image.getWidth()), FastMath.floorMod(z, image.getHeight()))); - } - }; - - public abstract Color getColor(BufferedImage image, int x, int z); - } -} diff --git a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java deleted file mode 100644 index e2cf15bae..000000000 --- a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageBiomeProviderAddon.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.dfsek.terra.addons.biome.image; - -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.util.function.Supplier; - -import com.dfsek.terra.api.Platform; -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.events.config.pack.ConfigPackPreLoadEvent; -import com.dfsek.terra.api.event.functional.FunctionalEventHandler; -import com.dfsek.terra.api.inject.annotations.Inject; -import com.dfsek.terra.api.registry.CheckedRegistry; -import com.dfsek.terra.api.util.reflection.TypeKey; -import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -@Addon("biome-provider-image") -@Author("Terra") -@Version("1.0.0") -public class ImageBiomeProviderAddon extends TerraAddon { - public static final TypeKey>> PROVIDER_REGISTRY_KEY = new TypeKey<>() { - }; - - @Inject - private Platform platform; - - @Override - public void initialize() { - platform.getEventManager() - .getHandler(FunctionalEventHandler.class) - .register(this, ConfigPackPreLoadEvent.class) - .then(event -> { - CheckedRegistry>> providerRegistry = event.getPack().getOrCreateRegistry( - PROVIDER_REGISTRY_KEY); - providerRegistry.register("IMAGE", () -> new ImageProviderTemplate(event.getPack().getRegistry(TerraBiome.class))); - }) - .failThrough(); - } -} 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 deleted file mode 100644 index e82f4a004..000000000 --- a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/ImageProviderTemplate.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.dfsek.terra.addons.biome.image; - -import com.dfsek.tectonic.annotations.Default; -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.awt.image.BufferedImage; -import java.util.HashSet; - -import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -public class ImageProviderTemplate implements ObjectTemplate { - private final Registry biomes; - @Value("resolution") - @Default - private int resolution = 1; - @Value("image.name") - private BufferedImage image; - @Value("image.align") - private ImageBiomeProvider.Align align; - - public ImageProviderTemplate(Registry set) { - this.biomes = set; - } - - @Override - public BiomeProvider get() { - return new ImageBiomeProvider(new HashSet<>(biomes.entries()), image, resolution, align); - } -}