diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java index 7f5482b5d..8890a56b1 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/NoiseChunkGenerator3DAddon.java @@ -11,8 +11,6 @@ import com.dfsek.terra.addons.chunkgenerator.config.NoiseChunkGeneratorPackConfi import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseConfigTemplate; import com.dfsek.terra.addons.chunkgenerator.config.palette.BiomePaletteTemplate; import com.dfsek.terra.addons.chunkgenerator.generation.NoiseChunkGenerator3D; -import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder; -import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolderLoader; import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder; import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolderLoader; import com.dfsek.terra.addons.manifest.api.AddonInitializer; @@ -47,8 +45,7 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer { pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(), config.getHorizontalRes(), config.getVerticalRes())); event.getPack() - .applyLoader(SlantHolder.class, new SlantHolderLoader()) - .applyLoader(PaletteHolder.class, new PaletteHolderLoader()); + .applyLoader(SlantHolder.class, new SlantHolderLoader()); }) .failThrough(); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java index 96626766d..9498f0728 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/palette/BiomePaletteTemplate.java @@ -12,17 +12,22 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder; +import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolderBuilder; import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.world.chunk.generation.util.Palette; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + public class BiomePaletteTemplate implements ObjectTemplate { @Value("slant") @Default private @Meta SlantHolder slant; @Value("palette") - private @Meta PaletteHolder palette; + private @Meta List<@Meta Map<@Meta Palette, @Meta Integer>> palettes; @Value("ocean.level") private @Meta int seaLevel; @@ -31,6 +36,12 @@ public class BiomePaletteTemplate implements ObjectTemplate { @Override public PaletteInfo get() { - return new PaletteInfo(palette, slant, oceanPalette, seaLevel); + PaletteHolderBuilder builder = new PaletteHolderBuilder(); + for(Map layer : palettes) { + for(Entry entry : layer.entrySet()) { + builder.add(entry.getValue(), entry.getKey()); + } + } + return new PaletteInfo(builder.build(), slant, oceanPalette, seaLevel); } } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolderLoader.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolderLoader.java deleted file mode 100644 index 5880fd9a3..000000000 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/palette/PaletteHolderLoader.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.chunkgenerator.palette; - -import com.dfsek.tectonic.exception.LoadException; -import com.dfsek.tectonic.loading.ConfigLoader; -import com.dfsek.tectonic.loading.TypeLoader; - -import java.lang.reflect.AnnotatedType; -import java.util.List; -import java.util.Map; - -import com.dfsek.terra.api.world.chunk.generation.util.Palette; - - -public class PaletteHolderLoader implements TypeLoader { - @SuppressWarnings("unchecked") - @Override - public PaletteHolder load(AnnotatedType type, Object o, ConfigLoader configLoader) throws LoadException { - List> palette = (List>) o; - PaletteHolderBuilder builder = new PaletteHolderBuilder(); - for(Map layer : palette) { - for(Map.Entry entry : layer.entrySet()) { - builder.add(entry.getValue(), configLoader.loadType(Palette.class, entry.getKey())); - } - } - return builder.build(); - } -}