mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 14:50:56 +00:00
slant palette loading
This commit is contained in:
+3
@@ -1,6 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator;
|
package com.dfsek.terra.addons.chunkgenerator;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.chunkgenerator.generation.generators.NoiseChunkGenerator3D;
|
import com.dfsek.terra.addons.chunkgenerator.generation.generators.NoiseChunkGenerator3D;
|
||||||
|
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder;
|
||||||
|
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolderLoader;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
import com.dfsek.terra.api.addon.annotations.Addon;
|
import com.dfsek.terra.api.addon.annotations.Addon;
|
||||||
@@ -26,5 +28,6 @@ public class NoiseChunkGenerator3DAddon extends TerraAddon implements EventListe
|
|||||||
|
|
||||||
public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException {
|
public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException {
|
||||||
event.getPack().getOrCreateRegistry(ChunkGeneratorProvider.class).register("NOISE_3D", pack -> new NoiseChunkGenerator3D(pack, main));
|
event.getPack().getOrCreateRegistry(ChunkGeneratorProvider.class).register("NOISE_3D", pack -> new NoiseChunkGenerator3D(pack, main));
|
||||||
|
event.getPack().applyLoader(SlantHolder.class, new SlantHolderLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
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 java.util.TreeMap;
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public class SlantHolderLoader implements TypeLoader<SlantHolder> {
|
||||||
|
@Override
|
||||||
|
public SlantHolder load(AnnotatedType type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||||
|
List<Map<Object, Object>> layers = (List<Map<Object, Object>>) o;
|
||||||
|
TreeMap<Double, PaletteHolder> slantLayers = new TreeMap<>();
|
||||||
|
double minThreshold = Double.MAX_VALUE;
|
||||||
|
|
||||||
|
for(Map<Object, Object> layer : layers) {
|
||||||
|
double threshold = ((Number) layer.get("threshold")).doubleValue();
|
||||||
|
if(threshold < minThreshold) minThreshold = threshold;
|
||||||
|
slantLayers.put(threshold, (PaletteHolder) configLoader.loadType(PaletteHolder.class, layer.get("palette")));
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SlantHolder(slantLayers, minThreshold);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user