mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-25 21:40:08 +00:00
build biome config addon
This commit is contained in:
1 parent
19d482f249
commit
3364a75cec
16 files changed
+63
-156
No files matched your search
+22
-46
@@ -2,7 +2,6 @@ package com.dfsek.terra.addons.biome;
|
|||||||
|
|
||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
import com.dfsek.paralithic.eval.parser.Scope;
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
|
||||||
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;
|
||||||
@@ -14,18 +13,11 @@ import com.dfsek.terra.api.TerraPlugin;
|
|||||||
import com.dfsek.terra.api.block.BlockType;
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
import com.dfsek.terra.api.config.AbstractableTemplate;
|
import com.dfsek.terra.api.config.AbstractableTemplate;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.math.paralithic.BlankFunction;
|
|
||||||
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
||||||
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.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
|
||||||
import com.dfsek.terra.world.population.items.TerraStructure;
|
|
||||||
import com.dfsek.terra.addons.flora.flora.FloraLayer;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.OreHolder;
|
|
||||||
import com.dfsek.terra.addons.tree.tree.TreeLayer;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -54,7 +46,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Value("beta.carving.equation")
|
@Value("beta.carving.equation")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private NoiseSeeded carvingEquation = NoiseSeeded.zero(2);
|
private NoiseSeeded carvingEquation = NoiseSeeded.zero(3);
|
||||||
|
|
||||||
@Value("palette")
|
@Value("palette")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -98,10 +90,10 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Abstractable
|
@Abstractable
|
||||||
private NoiseSeeded noiseEquation;
|
private NoiseSeeded noiseEquation;
|
||||||
|
|
||||||
@Value("ores")
|
/*@Value("ores")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private OreHolder oreHolder = new OreHolder();
|
private OreHolder oreHolder = new OreHolder();*/
|
||||||
|
|
||||||
@Value("ocean.level")
|
@Value("ocean.level")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -115,22 +107,22 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Value("elevation.equation")
|
@Value("elevation.equation")
|
||||||
@Default
|
@Default
|
||||||
@Abstractable
|
@Abstractable
|
||||||
private String elevationEquation = null;
|
private NoiseSeeded elevationEquation = NoiseSeeded.zero(2);
|
||||||
|
|
||||||
@Value("elevation.weight")
|
@Value("elevation.weight")
|
||||||
@Default
|
@Default
|
||||||
@Abstractable
|
@Abstractable
|
||||||
private double elevationWeight = 1;
|
private double elevationWeight = 1;
|
||||||
|
|
||||||
@Value("flora")
|
/*@Value("flora")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private List<FloraLayer> flora = new GlueList<>();
|
private List<FloraLayer> flora = new ArrayList<>();
|
||||||
|
|
||||||
@Value("trees")
|
@Value("trees")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private List<TreeLayer> trees = new GlueList<>();
|
private List<TreeLayer> trees = new ArrayList<>();*/
|
||||||
|
|
||||||
@Value("slabs.enable")
|
@Value("slabs.enable")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -166,10 +158,10 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
@Abstractable
|
@Abstractable
|
||||||
private Set<String> tags = new HashSet<>();
|
private Set<String> tags = new HashSet<>();
|
||||||
|
|
||||||
@Value("carving")
|
/*@Value("carving")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@Default
|
@Default
|
||||||
private Map<UserDefinedCarver, Integer> carvers = new HashMap<>();
|
private Map<UserDefinedCarver, Integer> carvers = new HashMap<>();*/
|
||||||
|
|
||||||
@Value("colors")
|
@Value("colors")
|
||||||
@Abstractable
|
@Abstractable
|
||||||
@@ -188,10 +180,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return colors;
|
return colors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<UserDefinedCarver, Integer> getCarvers() {
|
|
||||||
return carvers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getBlendWeight() {
|
public double getBlendWeight() {
|
||||||
return blendWeight;
|
return blendWeight;
|
||||||
}
|
}
|
||||||
@@ -216,10 +204,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return slabThreshold;
|
return slabThreshold;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FloraLayer> getFlora() {
|
|
||||||
return flora;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean doSlabs() {
|
public boolean doSlabs() {
|
||||||
return doSlabs;
|
return doSlabs;
|
||||||
}
|
}
|
||||||
@@ -240,11 +224,11 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return biomeNoise;
|
return biomeNoise;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getElevationEquation() {
|
public NoiseSeeded getElevationEquation() {
|
||||||
return elevationEquation;
|
return elevationEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCarvingEquation() {
|
public NoiseSeeded getCarvingEquation() {
|
||||||
return carvingEquation;
|
return carvingEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,10 +252,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return palette;
|
return palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TreeLayer> getTrees() {
|
|
||||||
return trees;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProbabilityCollection<Biome> getVanilla() {
|
public ProbabilityCollection<Biome> getVanilla() {
|
||||||
return vanilla;
|
return vanilla;
|
||||||
}
|
}
|
||||||
@@ -284,10 +264,6 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
return noiseEquation;
|
return noiseEquation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OreHolder getOreHolder() {
|
|
||||||
return oreHolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getElevationWeight() {
|
public double getElevationWeight() {
|
||||||
return elevationWeight;
|
return elevationWeight;
|
||||||
}
|
}
|
||||||
@@ -304,7 +280,7 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
public boolean validate() throws ValidationException {
|
public boolean validate() throws ValidationException {
|
||||||
color |= 0xff000000; // Alpha adjustment
|
color |= 0xff000000; // Alpha adjustment
|
||||||
Parser tester = new Parser();
|
Parser tester = new Parser();
|
||||||
Scope testScope = new Scope().withParent(pack.getVarScope());
|
Scope testScope = new Scope();
|
||||||
|
|
||||||
variables.forEach(testScope::create);
|
variables.forEach(testScope::create);
|
||||||
|
|
||||||
@@ -313,24 +289,24 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
testScope.addInvocationVariable("z");
|
testScope.addInvocationVariable("z");
|
||||||
|
|
||||||
|
|
||||||
pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions
|
//pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tester.parse(noiseEquation, testScope);
|
noiseEquation.apply(0L);
|
||||||
} catch(ParseException e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid noise equation: ", e);
|
throw new ValidationException("Invalid noise sampler: ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tester.parse(carvingEquation, testScope);
|
carvingEquation.apply(0L);
|
||||||
} catch(ParseException e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid carving equation: ", e);
|
throw new ValidationException("Invalid carving sampler: ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(elevationEquation != null) tester.parse(elevationEquation, testScope);
|
elevationEquation.apply(0L);
|
||||||
} catch(ParseException e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid elevation equation: ", e);
|
throw new ValidationException("Invalid elevation sampler: ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.addons.noise.paralithic;
|
package com.dfsek.terra.addons.biome;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.paralithic.functions.dynamic.DynamicFunction;
|
import com.dfsek.paralithic.functions.dynamic.DynamicFunction;
|
||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
|
||||||
import com.dfsek.terra.api.math.range.ConstantRange;
|
|
||||||
import com.dfsek.terra.api.util.Range;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.OreConfig;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class OreConfigLoader implements TypeLoader<OreConfig> {
|
|
||||||
@Override
|
|
||||||
public OreConfig load(Type type, Object o, ConfigLoader configLoader) {
|
|
||||||
Map<String, Integer> map = (Map<String, Integer>) o;
|
|
||||||
Range amount = new ConstantRange(map.get("min"), map.get("max"));
|
|
||||||
Range height = new ConstantRange(map.get("min-height"), map.get("max-height"));
|
|
||||||
return new OreConfig(amount, height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-26
@@ -1,26 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.Ore;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.OreConfig;
|
|
||||||
import com.dfsek.terra.addons.ore.ores.OreHolder;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public class OreHolderLoader implements TypeLoader<OreHolder> {
|
|
||||||
@Override
|
|
||||||
public OreHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
|
||||||
OreHolder holder = new OreHolder();
|
|
||||||
Map<String, Object> map = (Map<String, Object>) o;
|
|
||||||
|
|
||||||
for(Map.Entry<String, Object> entry : map.entrySet()) {
|
|
||||||
holder.add(configLoader.loadClass(Ore.class, entry.getKey()), configLoader.loadClass(OreConfig.class, entry.getValue()), entry.getKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
return holder;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package com.dfsek.terra.addons.biome;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
|
||||||
|
import com.dfsek.terra.api.world.biome.PaletteSettings;
|
||||||
|
import com.dfsek.terra.api.world.generator.Palette;
|
||||||
|
|
||||||
|
public class PaletteSettingsImpl implements PaletteSettings {
|
||||||
|
private final PaletteHolder palette;
|
||||||
|
|
||||||
|
public PaletteSettingsImpl(PaletteHolder palette) {
|
||||||
|
this.palette = palette;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Palette getPalette(int y) {
|
||||||
|
return palette.getPalette(y);
|
||||||
|
}
|
||||||
|
}
|
||||||
-2
@@ -5,8 +5,6 @@ import com.dfsek.terra.api.world.World;
|
|||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
import com.dfsek.terra.api.world.biome.Generator;
|
import com.dfsek.terra.api.world.biome.Generator;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
|
||||||
import com.dfsek.terra.world.generation.WorldGenerator;
|
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
|||||||
+1
-30
@@ -1,21 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
package com.dfsek.terra.addons.biome;
|
||||||
|
|
||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
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.BiomeBuilder;
|
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
|
||||||
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
|
|
||||||
import com.dfsek.terra.config.pack.ConfigPackImpl;
|
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
|
||||||
import com.dfsek.terra.noise.samplers.ExpressionSampler;
|
|
||||||
import com.dfsek.terra.world.generation.WorldGenerator;
|
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
@@ -35,25 +24,7 @@ public class UserDefinedBiomeBuilder implements BiomeBuilder {
|
|||||||
synchronized(biomeMap) {
|
synchronized(biomeMap) {
|
||||||
return biomeMap.computeIfAbsent(seed,
|
return biomeMap.computeIfAbsent(seed,
|
||||||
s -> {
|
s -> {
|
||||||
NoiseSampler noise;
|
WorldGenerator generator = new WorldGenerator(template.getPalette(), template.getSlant(), template.getNoiseEquation().apply(seed), template.getElevationEquation().apply(seed), template.getCarvingEquation().apply(seed), template.getBiomeNoise().apply(seed), template.getElevationWeight(),
|
||||||
NoiseSampler elevation;
|
|
||||||
NoiseSampler carving;
|
|
||||||
Scope varScope = new Scope().withParent(pack.getVarScope());
|
|
||||||
|
|
||||||
template.getVariables().forEach(varScope::create);
|
|
||||||
|
|
||||||
Map<String, NoiseSeeded> noiseBuilderMap = pack.getTemplate().getNoiseBuilderMap();
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
noise = new ExpressionSampler(template.getNoiseEquation(), varScope, seed, noiseBuilderMap);
|
|
||||||
elevation = template.getElevationEquation() == null ? NoiseSampler.zero() : new ExpressionSampler(template.getElevationEquation(), varScope, seed, noiseBuilderMap);
|
|
||||||
carving = new ExpressionSampler(template.getCarvingEquation(), varScope, seed, noiseBuilderMap);
|
|
||||||
} catch(ParseException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
WorldGenerator generator = new WorldGenerator(template.getPalette(), template.getSlant(), noise, elevation, carving, template.getBiomeNoise().apply(seed), template.getElevationWeight(),
|
|
||||||
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
||||||
return new UserDefinedBiome(template.getVanilla(), generator, template);
|
return new UserDefinedBiome(template.getVanilla(), generator, template);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-12
@@ -4,12 +4,10 @@ import com.dfsek.terra.addons.biome.holder.PaletteHolder;
|
|||||||
import com.dfsek.terra.addons.biome.slant.SlantHolder;
|
import com.dfsek.terra.addons.biome.slant.SlantHolder;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.world.biome.Generator;
|
import com.dfsek.terra.api.world.biome.Generator;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.biome.PaletteSettings;
|
||||||
|
|
||||||
public class WorldGenerator implements Generator {
|
public class WorldGenerator implements Generator {
|
||||||
@SuppressWarnings({"unchecked", "rawtypes", "RedundantSuppression"})
|
private final PaletteSettings paletteSettings;
|
||||||
private final PaletteHolder palettes;
|
|
||||||
@SuppressWarnings({"unchecked", "rawtypes", "RedundantSuppression"})
|
|
||||||
private final SlantHolder slantPalettes;
|
private final SlantHolder slantPalettes;
|
||||||
|
|
||||||
private final NoiseSampler noise;
|
private final NoiseSampler noise;
|
||||||
@@ -23,7 +21,7 @@ public class WorldGenerator implements Generator {
|
|||||||
private final double blendWeight;
|
private final double blendWeight;
|
||||||
|
|
||||||
public WorldGenerator(PaletteHolder palettes, SlantHolder slantPalettes, NoiseSampler noise, NoiseSampler elevation, NoiseSampler carving, NoiseSampler biomeNoise, double elevationWeight, int blendDistance, int blendStep, double blendWeight) {
|
public WorldGenerator(PaletteHolder palettes, SlantHolder slantPalettes, NoiseSampler noise, NoiseSampler elevation, NoiseSampler carving, NoiseSampler biomeNoise, double elevationWeight, int blendDistance, int blendStep, double blendWeight) {
|
||||||
this.palettes = palettes;
|
this.paletteSettings = new PaletteSettingsImpl(palettes);
|
||||||
this.slantPalettes = slantPalettes;
|
this.slantPalettes = slantPalettes;
|
||||||
this.noise = noise;
|
this.noise = noise;
|
||||||
this.elevation = elevation;
|
this.elevation = elevation;
|
||||||
@@ -61,14 +59,9 @@ public class WorldGenerator implements Generator {
|
|||||||
return blendWeight;
|
return blendWeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the BlockPalette to generate the biome with.
|
|
||||||
*
|
|
||||||
* @return BlockPalette - The biome's palette.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public Palette getPalette(int y) {
|
public PaletteSettings getPaletteSettings() {
|
||||||
return palettes.getPalette(y);
|
return paletteSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.world.locate;
|
package com.dfsek.terra.addons.biome.command.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.world.locate;
|
package com.dfsek.terra.addons.biome.command.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
+2
-3
@@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.biome.command.biome;
|
package com.dfsek.terra.addons.biome.command.biome;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.command.CommandTemplate;
|
import com.dfsek.terra.api.command.CommandTemplate;
|
||||||
import com.dfsek.terra.api.command.annotation.Command;
|
import com.dfsek.terra.api.command.annotation.Command;
|
||||||
@@ -9,9 +10,7 @@ import com.dfsek.terra.api.command.annotation.type.WorldCommand;
|
|||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.entity.Player;
|
import com.dfsek.terra.api.entity.Player;
|
||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
|
||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
subcommands = {
|
subcommands = {
|
||||||
@@ -40,6 +39,6 @@ public class BiomeCommand implements CommandTemplate {
|
|||||||
|
|
||||||
BiomeProvider provider = main.getWorld(player.world()).getBiomeProvider();
|
BiomeProvider provider = main.getWorld(player.world()).getBiomeProvider();
|
||||||
UserDefinedBiome biome = (UserDefinedBiome) provider.getBiome(player.position());
|
UserDefinedBiome biome = (UserDefinedBiome) provider.getBiome(player.position());
|
||||||
LangUtil.send("command.biome.in", sender, biome.getID());
|
sender.sendMessage("You are standing in " + biome.getID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
-5
@@ -1,5 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.biome.command.biome;
|
package com.dfsek.terra.addons.biome.command.biome;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.BiomeTemplate;
|
||||||
|
import com.dfsek.terra.addons.biome.UserDefinedBiome;
|
||||||
|
import com.dfsek.terra.addons.biome.command.biome.arg.BiomeArgumentParser;
|
||||||
|
import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter;
|
||||||
import com.dfsek.terra.api.command.CommandTemplate;
|
import com.dfsek.terra.api.command.CommandTemplate;
|
||||||
import com.dfsek.terra.api.command.annotation.Argument;
|
import com.dfsek.terra.api.command.annotation.Argument;
|
||||||
import com.dfsek.terra.api.command.annotation.Command;
|
import com.dfsek.terra.api.command.annotation.Command;
|
||||||
@@ -7,9 +11,6 @@ import com.dfsek.terra.api.command.annotation.inject.ArgumentTarget;
|
|||||||
import com.dfsek.terra.api.entity.CommandSender;
|
import com.dfsek.terra.api.entity.CommandSender;
|
||||||
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
import com.dfsek.terra.api.structure.ConfiguredStructure;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
|
||||||
import com.dfsek.terra.world.population.items.TerraStructure;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -47,8 +48,8 @@ public class BiomeInfoCommand implements CommandTemplate {
|
|||||||
sender.sendMessage("No Structures");
|
sender.sendMessage("No Structures");
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("-------Structures-------");
|
sender.sendMessage("-------Structures-------");
|
||||||
for(TerraStructure c : structureConfigs) {
|
for(ConfiguredStructure c : structureConfigs) {
|
||||||
sender.sendMessage(" - " + c.getTemplate().getID());
|
sender.sendMessage(" - " + c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-4
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.addons.biome.command.biome;
|
package com.dfsek.terra.addons.biome.command.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.biome.command.biome.arg.BiomeArgumentParser;
|
import com.dfsek.terra.addons.biome.command.biome.arg.BiomeArgumentParser;
|
||||||
|
import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.command.CommandTemplate;
|
import com.dfsek.terra.api.command.CommandTemplate;
|
||||||
import com.dfsek.terra.api.command.annotation.Argument;
|
import com.dfsek.terra.api.command.annotation.Argument;
|
||||||
@@ -16,9 +17,6 @@ import com.dfsek.terra.api.entity.Player;
|
|||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.locate.AsyncBiomeFinder;
|
|
||||||
import com.dfsek.terra.addons.biome.command.biome.tab.BiomeTabCompleter;
|
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@@ -70,7 +68,7 @@ public class BiomeLocateCommand implements CommandTemplate {
|
|||||||
if(teleport) {
|
if(teleport) {
|
||||||
main.runPossiblyUnsafeTask(() -> player.position(new Vector3(location.getX(), player.position().getY(), location.getZ())));
|
main.runPossiblyUnsafeTask(() -> player.position(new Vector3(location.getX(), player.position().getY(), location.getZ())));
|
||||||
}
|
}
|
||||||
} else LangUtil.send("command.biome.unable-to-locate", sender);
|
} else sender.sendMessage("Unable to locate biome \"" + biome.getID() + "\"");
|
||||||
}, main), "Biome Location Thread").start();
|
}, main), "Biome Location Thread").start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
package com.dfsek.terra.addons.biome.pipeline.config;
|
||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.util.ProbabilityCollection;
|
import com.dfsek.terra.api.util.ProbabilityCollection;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.addons.biome;
|
package com.dfsek.terra.addons.biome.pipeline.config;
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.SourceSeeded;
|
import com.dfsek.terra.api.util.seeded.SourceSeeded;
|
||||||
+2
-2
@@ -4,6 +4,8 @@ import com.dfsek.paralithic.Expression;
|
|||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
import com.dfsek.paralithic.eval.parser.Scope;
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
||||||
|
import com.dfsek.terra.addons.carver.carving.Carver;
|
||||||
|
import com.dfsek.terra.addons.carver.carving.Worm;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
||||||
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
|
||||||
@@ -15,8 +17,6 @@ import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
|||||||
import com.dfsek.terra.api.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.api.world.carving.Carver;
|
|
||||||
import com.dfsek.terra.api.world.carving.Worm;
|
|
||||||
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
|
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|||||||
Reference in new issue
Block a user