mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 06:11:24 +00:00
move palette loading to BiomePaletteTemplate
This commit is contained in:
+1
-4
@@ -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.noise.BiomeNoiseConfigTemplate;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.config.palette.BiomePaletteTemplate;
|
import com.dfsek.terra.addons.chunkgenerator.config.palette.BiomePaletteTemplate;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.generation.NoiseChunkGenerator3D;
|
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.SlantHolder;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolderLoader;
|
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolderLoader;
|
||||||
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
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(),
|
pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(), config.getHorizontalRes(),
|
||||||
config.getVerticalRes()));
|
config.getVerticalRes()));
|
||||||
event.getPack()
|
event.getPack()
|
||||||
.applyLoader(SlantHolder.class, new SlantHolderLoader())
|
.applyLoader(SlantHolder.class, new SlantHolderLoader());
|
||||||
.applyLoader(PaletteHolder.class, new PaletteHolderLoader());
|
|
||||||
})
|
})
|
||||||
.failThrough();
|
.failThrough();
|
||||||
|
|
||||||
|
|||||||
+13
-2
@@ -12,17 +12,22 @@ import com.dfsek.tectonic.annotations.Value;
|
|||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder;
|
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.addons.chunkgenerator.palette.SlantHolder;
|
||||||
import com.dfsek.terra.api.config.meta.Meta;
|
import com.dfsek.terra.api.config.meta.Meta;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
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<PaletteInfo> {
|
public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> {
|
||||||
@Value("slant")
|
@Value("slant")
|
||||||
@Default
|
@Default
|
||||||
private @Meta SlantHolder slant;
|
private @Meta SlantHolder slant;
|
||||||
@Value("palette")
|
@Value("palette")
|
||||||
private @Meta PaletteHolder palette;
|
private @Meta List<@Meta Map<@Meta Palette, @Meta Integer>> palettes;
|
||||||
@Value("ocean.level")
|
@Value("ocean.level")
|
||||||
private @Meta int seaLevel;
|
private @Meta int seaLevel;
|
||||||
|
|
||||||
@@ -31,6 +36,12 @@ public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PaletteInfo get() {
|
public PaletteInfo get() {
|
||||||
return new PaletteInfo(palette, slant, oceanPalette, seaLevel);
|
PaletteHolderBuilder builder = new PaletteHolderBuilder();
|
||||||
|
for(Map<Palette, Integer> layer : palettes) {
|
||||||
|
for(Entry<Palette, Integer> entry : layer.entrySet()) {
|
||||||
|
builder.add(entry.getValue(), entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new PaletteInfo(builder.build(), slant, oceanPalette, seaLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-34
@@ -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<PaletteHolder> {
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override
|
|
||||||
public PaletteHolder load(AnnotatedType type, Object o, ConfigLoader configLoader) throws LoadException {
|
|
||||||
List<Map<String, Integer>> palette = (List<Map<String, Integer>>) o;
|
|
||||||
PaletteHolderBuilder builder = new PaletteHolderBuilder();
|
|
||||||
for(Map<String, Integer> layer : palette) {
|
|
||||||
for(Map.Entry<String, Integer> entry : layer.entrySet()) {
|
|
||||||
builder.add(entry.getValue(), configLoader.loadType(Palette.class, entry.getKey()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return builder.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user