mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 06:11:24 +00:00
compile palette addon
This commit is contained in:
+2
-3
@@ -1,11 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.palette;
|
package com.dfsek.terra.addons.palette;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.palette.palette.NoisePalette;
|
||||||
|
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.config.ConfigFactory;
|
import com.dfsek.terra.api.config.ConfigFactory;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
import com.dfsek.terra.api.world.palette.NoisePalette;
|
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
|
|
||||||
import com.dfsek.terra.config.templates.PaletteTemplate;
|
|
||||||
|
|
||||||
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.palette;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
|
||||||
import com.dfsek.terra.api.world.palette.PaletteImpl;
|
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
|
||||||
|
|
||||||
public class PaletteRegistry extends OpenRegistryImpl<Palette> {
|
|
||||||
private final TerraPlugin main;
|
|
||||||
|
|
||||||
public PaletteRegistry(TerraPlugin main) {
|
|
||||||
this.main = main;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Palette get(String identifier) {
|
|
||||||
if(identifier.startsWith("BLOCK:"))
|
|
||||||
return new PaletteImpl.Singleton(main.getWorldHandle().createBlockData(identifier.substring(6))); // Return single palette for BLOCK: shortcut.
|
|
||||||
return super.get(identifier);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+2
-18
@@ -3,11 +3,9 @@ package com.dfsek.terra.addons.palette;
|
|||||||
import com.dfsek.tectonic.annotations.Abstractable;
|
import com.dfsek.tectonic.annotations.Abstractable;
|
||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
|
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
import com.dfsek.terra.api.config.AbstractableTemplate;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
|
|
||||||
import com.dfsek.terra.noise.samplers.noise.random.WhiteNoiseSampler;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -16,7 +14,7 @@ public class PaletteTemplate implements AbstractableTemplate {
|
|||||||
@Value("noise")
|
@Value("noise")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private NoiseSeeded noise;
|
private NoiseSeeded noise = NoiseSeeded.zero(2);
|
||||||
|
|
||||||
@Value("id")
|
@Value("id")
|
||||||
private String id;
|
private String id;
|
||||||
@@ -25,20 +23,6 @@ public class PaletteTemplate implements AbstractableTemplate {
|
|||||||
@Abstractable
|
@Abstractable
|
||||||
private List<PaletteLayerHolder> palette;
|
private List<PaletteLayerHolder> palette;
|
||||||
|
|
||||||
public PaletteTemplate() {
|
|
||||||
this.noise = new NoiseSeeded() {
|
|
||||||
@Override
|
|
||||||
public NoiseSampler apply(Long seed) {
|
|
||||||
return new WhiteNoiseSampler((int) (long) seed);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getDimensions() {
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getID() {
|
public String getID() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.palette.palette;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.config.Configuration;
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
|
||||||
import com.dfsek.terra.api.util.ProbabilityCollection;
|
|
||||||
import com.dfsek.terra.api.util.collections.MaterialSet;
|
|
||||||
import com.dfsek.terra.carving.CarverPalette;
|
|
||||||
import com.dfsek.terra.config.loaders.Types;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class CarverPaletteLoader implements TypeLoader<CarverPalette> {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CarverPalette load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
|
||||||
Configuration configuration = new Configuration((Map<String, Object>) o);
|
|
||||||
CarverPalette palette = new CarverPalette((MaterialSet) configLoader.loadType(MaterialSet.class, configuration.get("replace")), (Boolean) configuration.get("replace-blacklist"));
|
|
||||||
|
|
||||||
for(Map<String, Object> map : (List<Map<String, Object>>) configuration.get("layers")) {
|
|
||||||
ProbabilityCollection<BlockState> layer = (ProbabilityCollection<BlockState>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
|
|
||||||
palette.add(layer, (Integer) map.get("y"));
|
|
||||||
}
|
|
||||||
palette.build();
|
|
||||||
return palette;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.palette.palette;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
|
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteHolderBuilder;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
|
|
||||||
@Override
|
|
||||||
public PaletteHolder load(Type 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(), (Palette) configLoader.loadType(Palette.class, entry.getKey()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return builder.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-1
@@ -2,7 +2,6 @@ package com.dfsek.terra.addons.palette.palette;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
|
||||||
import com.dfsek.terra.api.util.ProbabilityCollection;
|
import com.dfsek.terra.api.util.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.addons.biome.holder;
|
package com.dfsek.terra.addons.palette.palette;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
+1
-3
@@ -7,8 +7,6 @@ import com.dfsek.terra.api.block.state.BlockState;
|
|||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.ProbabilityCollection;
|
import com.dfsek.terra.api.util.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteLayerHolder;
|
|
||||||
import com.dfsek.terra.config.loaders.Types;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -18,7 +16,7 @@ public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
|
|||||||
@Override
|
@Override
|
||||||
public PaletteLayerHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
public PaletteLayerHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||||
Map<String, Object> map = (Map<String, Object>) o;
|
Map<String, Object> map = (Map<String, Object>) o;
|
||||||
ProbabilityCollection<BlockState> collection = (ProbabilityCollection<BlockState>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
|
ProbabilityCollection<BlockState> collection = (ProbabilityCollection<BlockState>) configLoader.loadType(/*Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE*/null, map.get("materials"));
|
||||||
|
|
||||||
NoiseSampler sampler = null;
|
NoiseSampler sampler = null;
|
||||||
if(map.containsKey("noise")) {
|
if(map.containsKey("noise")) {
|
||||||
|
|||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.palette.palette.slant;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
|
||||||
import com.dfsek.terra.api.world.palette.holder.PaletteHolder;
|
|
||||||
import com.dfsek.terra.api.world.palette.slant.SlantHolder;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.TreeMap;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class SlantHolderLoader implements TypeLoader<SlantHolder> {
|
|
||||||
@Override
|
|
||||||
public SlantHolder load(Type 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