mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
refactor, cleanup, and perf improvements
This commit is contained in:
parent
4ad2db3ca8
commit
47cad8a30b
@ -1,4 +0,0 @@
|
|||||||
package com.dfsek.terra;
|
|
||||||
|
|
||||||
public interface CommandHandler {
|
|
||||||
}
|
|
@ -13,7 +13,6 @@ public class TerraProfiler extends WorldProfiler {
|
|||||||
.addMeasurement(new Measurement(10000000, DataType.PERIOD_MILLISECONDS), "TreeTime")
|
.addMeasurement(new Measurement(10000000, DataType.PERIOD_MILLISECONDS), "TreeTime")
|
||||||
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "OreTime")
|
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "OreTime")
|
||||||
.addMeasurement(new Measurement(5000000, DataType.PERIOD_MILLISECONDS), "CaveTime")
|
.addMeasurement(new Measurement(5000000, DataType.PERIOD_MILLISECONDS), "CaveTime")
|
||||||
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "StructureTime")
|
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "StructureTime");
|
||||||
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "ElevationTime");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api;
|
package com.dfsek.terra.api;
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||||
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
@ -22,14 +23,13 @@ import com.dfsek.terra.config.loaders.palette.CarverPaletteLoader;
|
|||||||
import com.dfsek.terra.config.loaders.palette.PaletteHolderLoader;
|
import com.dfsek.terra.config.loaders.palette.PaletteHolderLoader;
|
||||||
import com.dfsek.terra.config.loaders.palette.PaletteLayerLoader;
|
import com.dfsek.terra.config.loaders.palette.PaletteLayerLoader;
|
||||||
import com.dfsek.terra.generation.config.NoiseBuilder;
|
import com.dfsek.terra.generation.config.NoiseBuilder;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
|
||||||
import com.dfsek.terra.generation.items.flora.TerraFlora;
|
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
|
||||||
import com.dfsek.terra.generation.items.ores.OreConfig;
|
|
||||||
import com.dfsek.terra.generation.items.ores.OreHolder;
|
|
||||||
import com.dfsek.terra.generation.items.tree.TreeLayer;
|
|
||||||
import com.dfsek.terra.image.ImageLoader;
|
import com.dfsek.terra.image.ImageLoader;
|
||||||
import com.dfsek.terra.procgen.GridSpawn;
|
import com.dfsek.terra.population.items.flora.FloraLayer;
|
||||||
|
import com.dfsek.terra.population.items.flora.TerraFlora;
|
||||||
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
|
import com.dfsek.terra.population.items.ores.OreConfig;
|
||||||
|
import com.dfsek.terra.population.items.ores.OreHolder;
|
||||||
|
import com.dfsek.terra.population.items.tree.TreeLayer;
|
||||||
import com.dfsek.terra.util.MaterialSet;
|
import com.dfsek.terra.util.MaterialSet;
|
||||||
|
|
||||||
public class GenericLoaders implements LoaderRegistrar {
|
public class GenericLoaders implements LoaderRegistrar {
|
||||||
@ -51,7 +51,7 @@ public class GenericLoaders implements LoaderRegistrar {
|
|||||||
.registerLoader(Ore.Type.class, (t, o, l) -> Ore.Type.valueOf((String) o))
|
.registerLoader(Ore.Type.class, (t, o, l) -> Ore.Type.valueOf((String) o))
|
||||||
.registerLoader(OreConfig.class, new OreConfigLoader())
|
.registerLoader(OreConfig.class, new OreConfigLoader())
|
||||||
.registerLoader(NoiseBuilder.class, new NoiseBuilderLoader())
|
.registerLoader(NoiseBuilder.class, new NoiseBuilderLoader())
|
||||||
.registerLoader(TreeLayer.class, new TreeLayerLoader(main))
|
.registerLoader(TreeLayer.class, new TreeLayerLoader())
|
||||||
.registerLoader(MaterialSet.class, new MaterialSetLoader())
|
.registerLoader(MaterialSet.class, new MaterialSetLoader())
|
||||||
.registerLoader(OreHolder.class, new OreHolderLoader())
|
.registerLoader(OreHolder.class, new OreHolderLoader())
|
||||||
.registerLoader(ImageLoader.class, new ImageLoaderLoader())
|
.registerLoader(ImageLoader.class, new ImageLoaderLoader())
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.lang;
|
package com.dfsek.terra.api.language;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.config.Configuration;
|
import com.dfsek.tectonic.config.Configuration;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.lang;
|
package com.dfsek.terra.api.language;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.CommandSender;
|
import com.dfsek.terra.api.platform.CommandSender;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.lang;
|
package com.dfsek.terra.api.language;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.CommandSender;
|
import com.dfsek.terra.api.platform.CommandSender;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.lang;
|
package com.dfsek.terra.api.language;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.CommandSender;
|
import com.dfsek.terra.api.platform.CommandSender;
|
@ -1,6 +1,5 @@
|
|||||||
package com.dfsek.terra.procgen;
|
package com.dfsek.terra.api.math;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.MathUtil;
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api.math;
|
package com.dfsek.terra.api.math;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
|
import com.dfsek.terra.generation.math.Sampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@ -9,7 +10,14 @@ import java.util.Random;
|
|||||||
* Utility class for mathematical functions.
|
* Utility class for mathematical functions.
|
||||||
*/
|
*/
|
||||||
public final class MathUtil {
|
public final class MathUtil {
|
||||||
private static final double EPSILON = 0.1E-5;
|
/**
|
||||||
|
* Epsilon for fuzzy floating point comparisons.
|
||||||
|
*/
|
||||||
|
public static final double EPSILON = 1.0E-5;
|
||||||
|
/**
|
||||||
|
* Derivative constant.
|
||||||
|
*/
|
||||||
|
private static final double DERIVATIVE_DIST = 0.55;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the standard deviation of an array of doubles.
|
* Gets the standard deviation of an array of doubles.
|
||||||
@ -68,4 +76,17 @@ public final class MathUtil {
|
|||||||
public static boolean equals(double a, double b) {
|
public static boolean equals(double a, double b) {
|
||||||
return a == b || FastMath.abs(a - b) < EPSILON;
|
return a == b || FastMath.abs(a - b) < EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double derivative(Sampler sampler, double x, double y, double z) {
|
||||||
|
double baseSample = sampler.sample(x, y, z);
|
||||||
|
|
||||||
|
double xVal1 = (sampler.sample(x + DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
double xVal2 = (sampler.sample(x - DERIVATIVE_DIST, y, z) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
double zVal1 = (sampler.sample(x, y, z + DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
double zVal2 = (sampler.sample(x, y, z - DERIVATIVE_DIST) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
double yVal1 = (sampler.sample(x, y + DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
double yVal2 = (sampler.sample(x, y - DERIVATIVE_DIST, z) - baseSample) / DERIVATIVE_DIST;
|
||||||
|
|
||||||
|
return Math.sqrt(((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math;
|
package com.dfsek.terra.api.math;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.world.biome.NormalizationUtil;
|
import com.dfsek.terra.api.world.biome.NormalizationUtil;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math;// MIT License
|
package com.dfsek.terra.api.math.noise;// MIT License
|
||||||
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
@ -58,6 +58,7 @@ perform a file-wide replace on the following strings (including / * FNLdouble *
|
|||||||
/ *FNLdouble* / double
|
/ *FNLdouble* / double
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("ManualMinMaxCalculation")
|
||||||
public class FastNoiseLite {
|
public class FastNoiseLite {
|
||||||
private static final double[] Gradients2D = {
|
private static final double[] Gradients2D = {
|
||||||
0.130526192220052f, 0.99144486137381f, 0.38268343236509f, 0.923879532511287f, 0.608761429008721f, 0.793353340291235f,
|
0.130526192220052f, 0.99144486137381f, 0.38268343236509f, 0.923879532511287f, 0.608761429008721f, 0.793353340291235f,
|
||||||
@ -328,14 +329,14 @@ public class FastNoiseLite {
|
|||||||
private TransformType3D mWarpTransformType3D = TransformType3D.DefaultOpenSimplex2;
|
private TransformType3D mWarpTransformType3D = TransformType3D.DefaultOpenSimplex2;
|
||||||
private double mDomainWarpAmp = 1.0f;
|
private double mDomainWarpAmp = 1.0f;
|
||||||
|
|
||||||
private static final com.dfsek.terra.api.math.FastNoiseLite CELLULAR_LOOKUP_DEFAULT = new com.dfsek.terra.api.math.FastNoiseLite();
|
private static final FastNoiseLite CELLULAR_LOOKUP_DEFAULT = new FastNoiseLite();
|
||||||
private com.dfsek.terra.api.math.FastNoiseLite cellularNoiseLookup = CELLULAR_LOOKUP_DEFAULT;
|
private FastNoiseLite cellularNoiseLookup = CELLULAR_LOOKUP_DEFAULT;
|
||||||
|
|
||||||
public com.dfsek.terra.api.math.FastNoiseLite getCellularNoiseLookup() {
|
public FastNoiseLite getCellularNoiseLookup() {
|
||||||
return cellularNoiseLookup;
|
return cellularNoiseLookup;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCellularNoiseLookup(com.dfsek.terra.api.math.FastNoiseLite cellularNoiseLookup) {
|
public void setCellularNoiseLookup(FastNoiseLite cellularNoiseLookup) {
|
||||||
this.cellularNoiseLookup = cellularNoiseLookup;
|
this.cellularNoiseLookup = cellularNoiseLookup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1442,7 +1443,6 @@ public class FastNoiseLite {
|
|||||||
|
|
||||||
if (mCellularDistanceFunction == CellularDistanceFunction.Euclidean && mCellularReturnType != CellularReturnType.CellValue) {
|
if (mCellularDistanceFunction == CellularDistanceFunction.Euclidean && mCellularReturnType != CellularReturnType.CellValue) {
|
||||||
distance0 = FastSqrt(distance0);
|
distance0 = FastSqrt(distance0);
|
||||||
//noinspection ConstantConditions
|
|
||||||
if (mCellularReturnType != CellularReturnType.CellValue) {
|
if (mCellularReturnType != CellularReturnType.CellValue) {
|
||||||
distance1 = FastSqrt(distance1);
|
distance1 = FastSqrt(distance1);
|
||||||
}
|
}
|
||||||
@ -1593,8 +1593,6 @@ public class FastNoiseLite {
|
|||||||
|
|
||||||
if (mCellularDistanceFunction == CellularDistanceFunction.Euclidean && mCellularReturnType != CellularReturnType.CellValue) {
|
if (mCellularDistanceFunction == CellularDistanceFunction.Euclidean && mCellularReturnType != CellularReturnType.CellValue) {
|
||||||
distance0 = FastSqrt(distance0);
|
distance0 = FastSqrt(distance0);
|
||||||
|
|
||||||
//noinspection ConstantConditions
|
|
||||||
if (mCellularReturnType != CellularReturnType.CellValue) {
|
if (mCellularReturnType != CellularReturnType.CellValue) {
|
||||||
distance1 = FastSqrt(distance1);
|
distance1 = FastSqrt(distance1);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.math;
|
package com.dfsek.terra.api.math.noise;
|
||||||
|
|
||||||
import parsii.eval.Function;
|
import parsii.eval.Function;
|
||||||
|
|
@ -1,6 +1,5 @@
|
|||||||
package com.dfsek.terra.math;
|
package com.dfsek.terra.api.math.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.generation.config.NoiseBuilder;
|
import com.dfsek.terra.generation.config.NoiseBuilder;
|
||||||
import com.dfsek.terra.util.hash.HashMapDoubleDouble;
|
import com.dfsek.terra.util.hash.HashMapDoubleDouble;
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
@ -1,6 +1,5 @@
|
|||||||
package com.dfsek.terra.math;
|
package com.dfsek.terra.api.math.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.generation.config.NoiseBuilder;
|
import com.dfsek.terra.generation.config.NoiseBuilder;
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.math;
|
package com.dfsek.terra.api.math.parsii;
|
||||||
|
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
||||||
import parsii.eval.Function;
|
import parsii.eval.Function;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.math;
|
package com.dfsek.terra.api.math.parsii;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.pixel;
|
package com.dfsek.terra.api.math.pixel;
|
||||||
|
|
||||||
public class Distribution {
|
public class Distribution {
|
||||||
public Distribution(Rectangle bound, int numPoints, double minRad) {
|
public Distribution(Rectangle bound, int numPoints, double minRad) {
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.pixel;
|
package com.dfsek.terra.api.math.pixel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.pixel;
|
package com.dfsek.terra.api.math.pixel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
@ -163,6 +163,6 @@ public class Location implements Cloneable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "(" + getX() + ", " + getY() + ", " + getZ() + ")";
|
return "[" + world + ": (" + getX() + ", " + getY() + ", " + getZ() + ")]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.vector;
|
package com.dfsek.terra.api.math.vector;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.MathUtil;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -157,11 +158,9 @@ public class Vector2 implements Cloneable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if(!(obj instanceof Vector2)) {
|
if(!(obj instanceof Vector2)) return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Vector2 other = (Vector2) obj;
|
Vector2 other = (Vector2) obj;
|
||||||
return other.x == this.x && other.z == this.z;
|
return MathUtil.equals(this.x, other.x) && MathUtil.equals(this.z, other.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
package com.dfsek.terra.api.math.vector;
|
package com.dfsek.terra.api.math.vector;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.MathUtil;
|
||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.platform.world.World;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class Vector3 implements Cloneable {
|
public class Vector3 implements Cloneable {
|
||||||
|
|
||||||
/**
|
|
||||||
* Threshold for fuzzy equals().
|
|
||||||
*/
|
|
||||||
private static final double epsilon = 0.000001;
|
|
||||||
|
|
||||||
private double x;
|
private double x;
|
||||||
private double y;
|
private double y;
|
||||||
@ -21,15 +18,6 @@ public class Vector3 implements Cloneable {
|
|||||||
this.z = z;
|
this.z = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the threshold used for equals().
|
|
||||||
*
|
|
||||||
* @return The epsilon.
|
|
||||||
*/
|
|
||||||
public static double getEpsilon() {
|
|
||||||
return epsilon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getZ() {
|
public double getZ() {
|
||||||
return z;
|
return z;
|
||||||
}
|
}
|
||||||
@ -119,7 +107,7 @@ public class Vector3 implements Cloneable {
|
|||||||
* @return whether the vector is normalised
|
* @return whether the vector is normalised
|
||||||
*/
|
*/
|
||||||
public boolean isNormalized() {
|
public boolean isNormalized() {
|
||||||
return Math.abs(this.lengthSquared() - 1) < getEpsilon();
|
return MathUtil.equals(this.lengthSquared(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -333,12 +321,14 @@ public class Vector3 implements Cloneable {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if(!(obj instanceof Vector3)) {
|
if(!(obj instanceof Vector3)) return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector3 other = (Vector3) obj;
|
Vector3 other = (Vector3) obj;
|
||||||
|
return MathUtil.equals(x, other.x) && MathUtil.equals(y, other.y) && MathUtil.equals(x, other.z);
|
||||||
|
}
|
||||||
|
|
||||||
return Math.abs(x - other.x) < epsilon && Math.abs(y - other.y) < epsilon && Math.abs(z - other.z) < epsilon && (this.getClass().equals(obj.getClass()));
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "(" + getX() + ", " + getY() + ", " + getZ() + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.voxel;
|
package com.dfsek.terra.api.math.voxel;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.procgen.voxel;
|
package com.dfsek.terra.api.math.voxel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
|
||||||
public class DeformedSphere extends VoxelGeometry {
|
public class DeformedSphere extends VoxelGeometry {
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.voxel;
|
package com.dfsek.terra.api.math.voxel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.voxel;
|
package com.dfsek.terra.api.math.voxel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.procgen.voxel;
|
package com.dfsek.terra.api.math.voxel;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
@ -2,7 +2,7 @@ package com.dfsek.terra.api.platform;
|
|||||||
|
|
||||||
import com.dfsek.terra.TerraWorld;
|
import com.dfsek.terra.TerraWorld;
|
||||||
import com.dfsek.terra.api.LoaderRegistrar;
|
import com.dfsek.terra.api.LoaderRegistrar;
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.language.Language;
|
||||||
import com.dfsek.terra.api.platform.handle.ItemHandle;
|
import com.dfsek.terra.api.platform.handle.ItemHandle;
|
||||||
import com.dfsek.terra.api.platform.handle.WorldHandle;
|
import com.dfsek.terra.api.platform.handle.WorldHandle;
|
||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.platform.world.World;
|
||||||
|
@ -15,10 +15,7 @@ public class WorldProfiler {
|
|||||||
public WorldProfiler(World w) {
|
public WorldProfiler(World w) {
|
||||||
if(w.getGenerator().getTerraGenerator() == null)
|
if(w.getGenerator().getTerraGenerator() == null)
|
||||||
throw new IllegalArgumentException("Attempted to instantiate profiler on non-Gaea managed world!");
|
throw new IllegalArgumentException("Attempted to instantiate profiler on non-Gaea managed world!");
|
||||||
this.addMeasurement(new Measurement(2500000, DataType.PERIOD_MILLISECONDS), "TotalChunkGenTime")
|
this.addMeasurement(new Measurement(2500000, DataType.PERIOD_MILLISECONDS), "TotalChunkGenTime");
|
||||||
.addMeasurement(new Measurement(2500000, DataType.PERIOD_MILLISECONDS), "ChunkBaseGenTime")
|
|
||||||
.addMeasurement(new Measurement(2000000, DataType.PERIOD_MILLISECONDS), "BiomeApplyTime")
|
|
||||||
.addMeasurement(new Measurement(2000000, DataType.PERIOD_MILLISECONDS), "PopulationManagerTime");
|
|
||||||
isProfiling = false;
|
isProfiling = false;
|
||||||
this.world = w;
|
this.world = w;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ import org.apache.commons.io.IOUtils;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@ -42,7 +43,7 @@ public class StructureScript {
|
|||||||
private final Block block;
|
private final Block block;
|
||||||
private final String id;
|
private final String id;
|
||||||
String tempID;
|
String tempID;
|
||||||
private final LinkedHashMap<Location, StructureBuffer> cache;
|
private final Map<Location, StructureBuffer> cache;
|
||||||
|
|
||||||
public StructureScript(InputStream inputStream, TerraPlugin main, ScriptRegistry registry, LootRegistry lootRegistry, SamplerCache cache) throws ParseException {
|
public StructureScript(InputStream inputStream, TerraPlugin main, ScriptRegistry registry, LootRegistry lootRegistry, SamplerCache cache) throws ParseException {
|
||||||
Parser parser;
|
Parser parser;
|
||||||
@ -79,12 +80,12 @@ public class StructureScript {
|
|||||||
block = parser.parse();
|
block = parser.parse();
|
||||||
this.id = parser.getID();
|
this.id = parser.getID();
|
||||||
tempID = id;
|
tempID = id;
|
||||||
this.cache = new LinkedHashMap<Location, StructureBuffer>() {
|
this.cache = Collections.synchronizedMap(new LinkedHashMap<Location, StructureBuffer>() {
|
||||||
@Override
|
@Override
|
||||||
protected boolean removeEldestEntry(Map.Entry<Location, StructureBuffer> eldest) {
|
protected boolean removeEldestEntry(Map.Entry<Location, StructureBuffer> eldest) {
|
||||||
return this.size() > main.getTerraConfig().getStructureCache();
|
return this.size() > main.getTerraConfig().getStructureCache();
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -113,6 +114,7 @@ public class StructureScript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) {
|
private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) {
|
||||||
|
synchronized(cache) {
|
||||||
return cache.computeIfAbsent(location, loc -> {
|
return cache.computeIfAbsent(location, loc -> {
|
||||||
StructureBuffer buf = new StructureBuffer(loc);
|
StructureBuffer buf = new StructureBuffer(loc);
|
||||||
Block.ReturnInfo<?> level = block.apply(new TerraImplementationArguments(buf, rotation, random, 0));
|
Block.ReturnInfo<?> level = block.apply(new TerraImplementationArguments(buf, rotation, random, 0));
|
||||||
@ -120,6 +122,7 @@ public class StructureScript {
|
|||||||
return buf;
|
return buf;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
||||||
return !block.apply(new TerraImplementationArguments(buffer, rotation, random, recursions)).getLevel().equals(Block.ReturnLevel.FAIL);
|
return !block.apply(new TerraImplementationArguments(buffer, rotation, random, recursions)).getLevel().equals(Block.ReturnLevel.FAIL);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.world.biome;
|
package com.dfsek.terra.api.world.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
||||||
import com.dfsek.terra.api.world.generation.GenerationPhase;
|
import com.dfsek.terra.api.world.generation.GenerationPhase;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.world.palette;
|
package com.dfsek.terra.api.world.palette;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.world.palette;
|
package com.dfsek.terra.api.world.palette;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import com.dfsek.terra.api.structures.structure.Rotation;
|
|||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.biome;
|
package com.dfsek.terra.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.world.biome.BiomeGrid;
|
import com.dfsek.terra.api.world.biome.BiomeGrid;
|
||||||
import com.dfsek.terra.api.world.biome.NormalizationUtil;
|
import com.dfsek.terra.api.world.biome.NormalizationUtil;
|
||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.biome.postprocessing;
|
package com.dfsek.terra.biome.postprocessing;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.biome.postprocessing;
|
package com.dfsek.terra.biome.postprocessing;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.carving;
|
package com.dfsek.terra.carving;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.parsii.RandomFunction;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.platform.world.World;
|
||||||
@ -11,7 +12,6 @@ import com.dfsek.terra.api.world.generation.GenerationPhase;
|
|||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import com.dfsek.terra.config.templates.CarverTemplate;
|
import com.dfsek.terra.config.templates.CarverTemplate;
|
||||||
import com.dfsek.terra.math.RandomFunction;
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
||||||
import parsii.eval.Parser;
|
import parsii.eval.Parser;
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
package com.dfsek.terra.command;
|
|
||||||
|
|
||||||
public class Command {
|
|
||||||
|
|
||||||
}
|
|
@ -40,9 +40,9 @@ import com.dfsek.terra.config.templates.OreTemplate;
|
|||||||
import com.dfsek.terra.config.templates.PaletteTemplate;
|
import com.dfsek.terra.config.templates.PaletteTemplate;
|
||||||
import com.dfsek.terra.config.templates.StructureTemplate;
|
import com.dfsek.terra.config.templates.StructureTemplate;
|
||||||
import com.dfsek.terra.config.templates.TreeTemplate;
|
import com.dfsek.terra.config.templates.TreeTemplate;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
|
||||||
import com.dfsek.terra.generation.math.SamplerCache;
|
import com.dfsek.terra.generation.math.SamplerCache;
|
||||||
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
import com.dfsek.terra.registry.BiomeGridRegistry;
|
import com.dfsek.terra.registry.BiomeGridRegistry;
|
||||||
import com.dfsek.terra.registry.BiomeRegistry;
|
import com.dfsek.terra.registry.BiomeRegistry;
|
||||||
import com.dfsek.terra.registry.CarverRegistry;
|
import com.dfsek.terra.registry.CarverRegistry;
|
||||||
|
@ -8,7 +8,7 @@ import com.dfsek.terra.api.world.palette.Palette;
|
|||||||
import com.dfsek.terra.api.world.palette.RandomPalette;
|
import com.dfsek.terra.api.world.palette.RandomPalette;
|
||||||
import com.dfsek.terra.biome.palette.PaletteLayer;
|
import com.dfsek.terra.biome.palette.PaletteLayer;
|
||||||
import com.dfsek.terra.config.templates.FloraTemplate;
|
import com.dfsek.terra.config.templates.FloraTemplate;
|
||||||
import com.dfsek.terra.generation.items.flora.TerraFlora;
|
import com.dfsek.terra.population.items.flora.TerraFlora;
|
||||||
|
|
||||||
public class FloraFactory implements TerraFactory<FloraTemplate, Flora> {
|
public class FloraFactory implements TerraFactory<FloraTemplate, Flora> {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3,9 +3,9 @@ package com.dfsek.terra.config.factories;
|
|||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.config.templates.OreTemplate;
|
import com.dfsek.terra.config.templates.OreTemplate;
|
||||||
import com.dfsek.terra.generation.items.ores.DeformedSphereOre;
|
import com.dfsek.terra.population.items.ores.DeformedSphereOre;
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
import com.dfsek.terra.generation.items.ores.VanillaOre;
|
import com.dfsek.terra.population.items.ores.VanillaOre;
|
||||||
|
|
||||||
public class OreFactory implements TerraFactory<OreTemplate, Ore> {
|
public class OreFactory implements TerraFactory<OreTemplate, Ore> {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.config.factories;
|
package com.dfsek.terra.config.factories;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package com.dfsek.terra.config.factories;
|
package com.dfsek.terra.config.factories;
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.config.templates.StructureTemplate;
|
import com.dfsek.terra.config.templates.StructureTemplate;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
|
|
||||||
public class StructureFactory implements TerraFactory<StructureTemplate, TerraStructure> {
|
public class StructureFactory implements TerraFactory<StructureTemplate, TerraStructure> {
|
||||||
@Override
|
@Override
|
||||||
public TerraStructure build(StructureTemplate config, TerraPlugin main) throws LoadException {
|
public TerraStructure build(StructureTemplate config, TerraPlugin main) {
|
||||||
return new TerraStructure(config.getStructures(), config.getY(), config.getSpawn(), config);
|
return new TerraStructure(config.getStructures(), config.getY(), config.getSpawn(), config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
package com.dfsek.terra.config.factories;
|
package com.dfsek.terra.config.factories;
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.world.tree.Tree;
|
import com.dfsek.terra.api.world.tree.Tree;
|
||||||
import com.dfsek.terra.config.templates.TreeTemplate;
|
import com.dfsek.terra.config.templates.TreeTemplate;
|
||||||
import com.dfsek.terra.generation.items.tree.TerraTree;
|
import com.dfsek.terra.population.items.tree.TerraTree;
|
||||||
|
|
||||||
public class TreeFactory implements TerraFactory<TreeTemplate, Tree> {
|
public class TreeFactory implements TerraFactory<TreeTemplate, Tree> {
|
||||||
@Override
|
@Override
|
||||||
public Tree build(TreeTemplate config, TerraPlugin main) throws LoadException {
|
public Tree build(TreeTemplate config, TerraPlugin main) {
|
||||||
return new TerraTree(config.getSpawnable(), config.getyOffset(), config.getStructures());
|
return new TerraTree(config.getSpawnable(), config.getyOffset(), config.getStructures());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.config.lang;
|
package com.dfsek.terra.config.lang;
|
||||||
|
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.language.Language;
|
||||||
import com.dfsek.terra.api.platform.CommandSender;
|
import com.dfsek.terra.api.platform.CommandSender;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.debug.Debug;
|
import com.dfsek.terra.debug.Debug;
|
||||||
|
@ -18,8 +18,7 @@ public class MaterialSetLoader implements TypeLoader<MaterialSet> {
|
|||||||
|
|
||||||
for(String string : stringData) {
|
for(String string : stringData) {
|
||||||
try {
|
try {
|
||||||
if(string.startsWith("#")) set.addTag(string.substring(1));
|
set.add((MaterialData) configLoader.loadType(MaterialData.class, string));
|
||||||
else set.add((MaterialData) configLoader.loadType(MaterialData.class, string));
|
|
||||||
} catch(NullPointerException e) {
|
} catch(NullPointerException e) {
|
||||||
throw new LoadException("Invalid data identifier \"" + string + "\"", e);
|
throw new LoadException("Invalid data identifier \"" + string + "\"", e);
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,12 @@ package com.dfsek.terra.config.loaders.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.world.flora.Flora;
|
import com.dfsek.terra.api.world.flora.Flora;
|
||||||
import com.dfsek.terra.config.loaders.Types;
|
import com.dfsek.terra.config.loaders.Types;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
import com.dfsek.terra.population.items.flora.FloraLayer;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -2,7 +2,7 @@ package com.dfsek.terra.config.loaders.config;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.procgen.GridSpawn;
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.tectonic.exception.ConfigException;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.generation.config.NoiseBuilder;
|
import com.dfsek.terra.generation.config.NoiseBuilder;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.dfsek.terra.config.loaders.config;
|
package com.dfsek.terra.config.loaders.config;
|
||||||
|
|
||||||
import com.dfsek.tectonic.exception.LoadException;
|
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.generation.items.ores.OreConfig;
|
import com.dfsek.terra.population.items.ores.OreConfig;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -12,7 +11,7 @@ import java.util.Map;
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class OreConfigLoader implements TypeLoader<OreConfig> {
|
public class OreConfigLoader implements TypeLoader<OreConfig> {
|
||||||
@Override
|
@Override
|
||||||
public OreConfig load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
public OreConfig load(Type type, Object o, ConfigLoader configLoader) {
|
||||||
Map<String, Integer> map = (Map<String, Integer>) o;
|
Map<String, Integer> map = (Map<String, Integer>) o;
|
||||||
Range amount = new Range(map.get("min"), map.get("max"));
|
Range amount = new Range(map.get("min"), map.get("max"));
|
||||||
Range height = new Range(map.get("min-height"), map.get("max-height"));
|
Range height = new Range(map.get("min-height"), map.get("max-height"));
|
||||||
|
@ -3,9 +3,9 @@ package com.dfsek.terra.config.loaders.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
import com.dfsek.terra.generation.items.ores.OreConfig;
|
import com.dfsek.terra.population.items.ores.OreConfig;
|
||||||
import com.dfsek.terra.generation.items.ores.OreHolder;
|
import com.dfsek.terra.population.items.ores.OreHolder;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -3,23 +3,20 @@ package com.dfsek.terra.config.loaders.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.world.tree.Tree;
|
import com.dfsek.terra.api.world.tree.Tree;
|
||||||
import com.dfsek.terra.config.loaders.Types;
|
import com.dfsek.terra.config.loaders.Types;
|
||||||
import com.dfsek.terra.generation.items.tree.TreeLayer;
|
import com.dfsek.terra.population.items.tree.TreeLayer;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class TreeLayerLoader implements TypeLoader<TreeLayer> {
|
public class TreeLayerLoader implements TypeLoader<TreeLayer> {
|
||||||
private final TerraPlugin main;
|
|
||||||
|
|
||||||
public TreeLayerLoader(TerraPlugin main) {
|
public TreeLayerLoader() {
|
||||||
this.main = main;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
import com.dfsek.tectonic.config.ValidatedConfigTemplate;
|
||||||
import com.dfsek.tectonic.exception.ValidationException;
|
import com.dfsek.tectonic.exception.ValidationException;
|
||||||
|
import com.dfsek.terra.api.math.parsii.BlankFunction;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
@ -15,11 +16,10 @@ import com.dfsek.terra.biome.palette.PaletteHolder;
|
|||||||
import com.dfsek.terra.biome.palette.SinglePalette;
|
import com.dfsek.terra.biome.palette.SinglePalette;
|
||||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
import com.dfsek.terra.carving.UserDefinedCarver;
|
||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
import com.dfsek.terra.population.items.flora.FloraLayer;
|
||||||
import com.dfsek.terra.generation.items.ores.OreHolder;
|
import com.dfsek.terra.population.items.ores.OreHolder;
|
||||||
import com.dfsek.terra.generation.items.tree.TreeLayer;
|
import com.dfsek.terra.population.items.tree.TreeLayer;
|
||||||
import com.dfsek.terra.math.BlankFunction;
|
|
||||||
import parsii.eval.Parser;
|
import parsii.eval.Parser;
|
||||||
import parsii.eval.Scope;
|
import parsii.eval.Scope;
|
||||||
import parsii.tokenizer.ParseException;
|
import parsii.tokenizer.ParseException;
|
||||||
|
@ -4,7 +4,7 @@ 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.biome.palette.PaletteLayer;
|
import com.dfsek.terra.biome.palette.PaletteLayer;
|
||||||
import com.dfsek.terra.generation.items.flora.TerraFlora;
|
import com.dfsek.terra.population.items.flora.TerraFlora;
|
||||||
import com.dfsek.terra.util.MaterialSet;
|
import com.dfsek.terra.util.MaterialSet;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.tectonic.annotations.Default;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
import com.dfsek.terra.util.MaterialSet;
|
import com.dfsek.terra.util.MaterialSet;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
@SuppressWarnings({"unused", "FieldMayBeFinal"})
|
||||||
|
@ -4,11 +4,11 @@ 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.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
import com.dfsek.terra.procgen.GridSpawn;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -90,7 +90,6 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
|
|||||||
TerraWorld tw = main.getWorld(world);
|
TerraWorld tw = main.getWorld(world);
|
||||||
com.dfsek.terra.api.world.biome.BiomeGrid grid = tw.getGrid();
|
com.dfsek.terra.api.world.biome.BiomeGrid grid = tw.getGrid();
|
||||||
try(ProfileFuture ignore = tw.getProfiler().measure("TotalChunkGenTime")) {
|
try(ProfileFuture ignore = tw.getProfiler().measure("TotalChunkGenTime")) {
|
||||||
try(ProfileFuture ignored = tw.getProfiler().measure("ChunkBaseGenTime")) {
|
|
||||||
if(!tw.isSafe()) return chunk;
|
if(!tw.isSafe()) return chunk;
|
||||||
int xOrig = (chunkX << 4);
|
int xOrig = (chunkX << 4);
|
||||||
int zOrig = (chunkZ << 4);
|
int zOrig = (chunkZ << 4);
|
||||||
@ -139,8 +138,6 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return chunk;
|
return chunk;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package com.dfsek.terra.generation.config;
|
|||||||
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.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
|
|
||||||
public class NoiseBuilder implements ConfigTemplate {
|
public class NoiseBuilder implements ConfigTemplate {
|
||||||
@Value("type")
|
@Value("type")
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.dfsek.terra.generation.config;
|
package com.dfsek.terra.generation.config;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.noise.NoiseFunction2;
|
||||||
|
import com.dfsek.terra.api.math.noise.NoiseFunction3;
|
||||||
|
import com.dfsek.terra.api.math.parsii.RandomFunction;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.world.biome.Generator;
|
import com.dfsek.terra.api.world.biome.Generator;
|
||||||
import com.dfsek.terra.api.world.palette.Palette;
|
import com.dfsek.terra.api.world.palette.Palette;
|
||||||
import com.dfsek.terra.biome.palette.PaletteHolder;
|
import com.dfsek.terra.biome.palette.PaletteHolder;
|
||||||
import com.dfsek.terra.math.NoiseFunction2;
|
|
||||||
import com.dfsek.terra.math.NoiseFunction3;
|
|
||||||
import com.dfsek.terra.math.RandomFunction;
|
|
||||||
import parsii.eval.Expression;
|
import parsii.eval.Expression;
|
||||||
import parsii.eval.Parser;
|
import parsii.eval.Parser;
|
||||||
import parsii.eval.Scope;
|
import parsii.eval.Scope;
|
||||||
|
@ -3,6 +3,7 @@ package com.dfsek.terra.generation.math;
|
|||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.platform.world.World;
|
||||||
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.generation.math.interpolation.ChunkInterpolator;
|
import com.dfsek.terra.generation.math.interpolation.ChunkInterpolator;
|
||||||
|
import com.dfsek.terra.generation.math.interpolation.ElevationInterpolator;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class Sampler {
|
public class Sampler {
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.dfsek.terra.generation.math;
|
package com.dfsek.terra.generation.math.interpolation;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.platform.world.World;
|
||||||
import com.dfsek.terra.api.world.biome.BiomeGrid;
|
import com.dfsek.terra.api.world.biome.BiomeGrid;
|
||||||
import com.dfsek.terra.api.world.generation.GenerationPhase;
|
import com.dfsek.terra.api.world.generation.GenerationPhase;
|
||||||
import com.dfsek.terra.generation.config.WorldGenerator;
|
import com.dfsek.terra.generation.config.WorldGenerator;
|
||||||
import com.dfsek.terra.generation.math.interpolation.Interpolator;
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class ElevationInterpolator {
|
public class ElevationInterpolator {
|
@ -1,20 +0,0 @@
|
|||||||
package com.dfsek.terra.math;
|
|
||||||
|
|
||||||
import com.dfsek.terra.generation.math.Sampler;
|
|
||||||
|
|
||||||
public final class MathUtil {
|
|
||||||
private static final double CONST = 0.55;
|
|
||||||
|
|
||||||
public static double derivative(Sampler sampler, double x, double y, double z) {
|
|
||||||
double baseSample = sampler.sample(x, y, z);
|
|
||||||
|
|
||||||
double xVal1 = (sampler.sample(x + CONST, y, z) - baseSample) / CONST;
|
|
||||||
double xVal2 = (sampler.sample(x - CONST, y, z) - baseSample) / CONST;
|
|
||||||
double zVal1 = (sampler.sample(x, y, z + CONST) - baseSample) / CONST;
|
|
||||||
double zVal2 = (sampler.sample(x, y, z - CONST) - baseSample) / CONST;
|
|
||||||
double yVal1 = (sampler.sample(x, y + CONST, z) - baseSample) / CONST;
|
|
||||||
double yVal2 = (sampler.sample(x, y - CONST, z) - baseSample) / CONST;
|
|
||||||
|
|
||||||
return Math.sqrt(((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1)));
|
|
||||||
}
|
|
||||||
}
|
|
@ -10,7 +10,7 @@ import com.dfsek.terra.api.world.generation.GenerationPhase;
|
|||||||
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
|
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.generation.items.flora.FloraLayer;
|
import com.dfsek.terra.population.items.flora.FloraLayer;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -13,7 +13,7 @@ import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
|
|||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import com.dfsek.terra.api.world.generation.GenerationPhase;
|
|||||||
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
|
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
import com.dfsek.terra.biome.grid.master.TerraBiomeGrid;
|
||||||
import com.dfsek.terra.generation.items.tree.TreeLayer;
|
import com.dfsek.terra.population.items.tree.TreeLayer;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.generation.items;
|
package com.dfsek.terra.population.items;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import com.dfsek.terra.api.platform.world.Chunk;
|
import com.dfsek.terra.api.platform.world.Chunk;
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.generation.items;
|
package com.dfsek.terra.population.items;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.GridSpawn;
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.config.templates.StructureTemplate;
|
import com.dfsek.terra.config.templates.StructureTemplate;
|
||||||
import com.dfsek.terra.procgen.GridSpawn;
|
|
||||||
|
|
||||||
public class TerraStructure {
|
public class TerraStructure {
|
||||||
private final ProbabilityCollection<StructureScript> structure;
|
private final ProbabilityCollection<StructureScript> structure;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.flora;
|
package com.dfsek.terra.population.items.flora;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.flora;
|
package com.dfsek.terra.population.items.flora;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
@ -1,12 +1,12 @@
|
|||||||
package com.dfsek.terra.generation.items.flora;
|
package com.dfsek.terra.population.items.flora;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import com.dfsek.terra.api.platform.world.Chunk;
|
import com.dfsek.terra.api.platform.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.flora.Flora;
|
import com.dfsek.terra.api.world.flora.Flora;
|
||||||
import com.dfsek.terra.generation.items.PlaceableLayer;
|
import com.dfsek.terra.population.items.PlaceableLayer;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.flora;
|
package com.dfsek.terra.population.items.flora;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.generation.items.ores;
|
package com.dfsek.terra.population.items.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.Block;
|
import com.dfsek.terra.api.platform.block.Block;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.ores;
|
package com.dfsek.terra.population.items.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.ores;
|
package com.dfsek.terra.population.items.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.ores;
|
package com.dfsek.terra.population.items.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.ores;
|
package com.dfsek.terra.population.items.ores;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.generation.items.tree;
|
package com.dfsek.terra.population.items.tree;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
@ -1,14 +1,14 @@
|
|||||||
package com.dfsek.terra.generation.items.tree;
|
package com.dfsek.terra.population.items.tree;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
|
||||||
import com.dfsek.terra.api.math.ProbabilityCollection;
|
import com.dfsek.terra.api.math.ProbabilityCollection;
|
||||||
import com.dfsek.terra.api.math.Range;
|
import com.dfsek.terra.api.math.Range;
|
||||||
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import com.dfsek.terra.api.platform.block.Block;
|
import com.dfsek.terra.api.platform.block.Block;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||||
import com.dfsek.terra.api.platform.world.Chunk;
|
import com.dfsek.terra.api.platform.world.Chunk;
|
||||||
import com.dfsek.terra.api.world.tree.Tree;
|
import com.dfsek.terra.api.world.tree.Tree;
|
||||||
import com.dfsek.terra.generation.items.PlaceableLayer;
|
import com.dfsek.terra.population.items.PlaceableLayer;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
@ -4,7 +4,7 @@ import com.dfsek.terra.api.platform.TerraPlugin;
|
|||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
import com.dfsek.terra.api.world.flora.Flora;
|
import com.dfsek.terra.api.world.flora.Flora;
|
||||||
import com.dfsek.terra.generation.items.flora.ConstantFlora;
|
import com.dfsek.terra.population.items.flora.ConstantFlora;
|
||||||
import com.dfsek.terra.util.MaterialSet;
|
import com.dfsek.terra.util.MaterialSet;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.registry;
|
package com.dfsek.terra.registry;
|
||||||
|
|
||||||
import com.dfsek.terra.generation.items.ores.Ore;
|
import com.dfsek.terra.population.items.ores.Ore;
|
||||||
|
|
||||||
public class OreRegistry extends TerraRegistry<Ore> {
|
public class OreRegistry extends TerraRegistry<Ore> {
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.registry;
|
package com.dfsek.terra.registry;
|
||||||
|
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
|
|
||||||
public class StructureRegistry extends TerraRegistry<TerraStructure> {
|
public class StructureRegistry extends TerraRegistry<TerraStructure> {
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,6 @@ public class MaterialSet extends HashSet<MaterialData> {
|
|||||||
return set;
|
return set;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addTag(String tag) {
|
|
||||||
this.addAll(TagUtil.getTag(tag));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void add(BlockData data) {
|
private void add(BlockData data) {
|
||||||
add(data.getMaterial());
|
add(data.getMaterial());
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.dfsek.terra.util;
|
package com.dfsek.terra.util;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.math.MathUtil;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.world.palette.Palette;
|
import com.dfsek.terra.api.world.palette.Palette;
|
||||||
import com.dfsek.terra.biome.palette.PaletteHolder;
|
import com.dfsek.terra.biome.palette.PaletteHolder;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import com.dfsek.terra.generation.math.Sampler;
|
import com.dfsek.terra.generation.math.Sampler;
|
||||||
import com.dfsek.terra.math.MathUtil;
|
|
||||||
|
|
||||||
public final class PaletteUtil {
|
public final class PaletteUtil {
|
||||||
public static Palette<BlockData> getPalette(int x, int y, int z, BiomeTemplate c, Sampler sampler) {
|
public static Palette<BlockData> getPalette(int x, int y, int z, BiomeTemplate c, Sampler sampler) {
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
package com.dfsek.terra.util;
|
|
||||||
|
|
||||||
public final class StringUtils {
|
|
||||||
/**
|
|
||||||
* Strip Minecraft namespace from string
|
|
||||||
*
|
|
||||||
* @param in String to strip namespace of
|
|
||||||
* @return Stripped string/
|
|
||||||
*/
|
|
||||||
public static String stripMinecraftNamespace(String in) {
|
|
||||||
if(!in.startsWith("minecraft:")) return in;
|
|
||||||
return in.substring(10);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,77 +0,0 @@
|
|||||||
package com.dfsek.terra.util;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
|
||||||
import com.dfsek.terra.debug.Debug;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public final class TagUtil {
|
|
||||||
private static final Map<String, Set<MaterialData>> tagMap;
|
|
||||||
|
|
||||||
static {
|
|
||||||
Debug.info("Loading tags...");
|
|
||||||
tagMap = new HashMap<>();
|
|
||||||
|
|
||||||
/*
|
|
||||||
Field[] tags = Tag.class.getFields(); // Add Bukkit tags
|
|
||||||
for(Field field : tags) {
|
|
||||||
if(Modifier.isStatic(field.getModifiers())) {
|
|
||||||
try {
|
|
||||||
Tag<Material> tag = (Tag<Material>) field.get(new Object());
|
|
||||||
tagMap.put(tag.getKey().toString(), tag.getValues());
|
|
||||||
} catch(IllegalAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch(ClassCastException ignore) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
putCustomSet("minecraft:base_stone_nether", Material.NETHERRACK, Material.BASALT, Material.BLACKSTONE);
|
|
||||||
putCustomSet("minecraft:base_stone_overworld", Material.STONE, Material.GRANITE, Material.DIORITE, Material.ANDESITE);
|
|
||||||
|
|
||||||
Set<Material> snow = new HashSet<>();
|
|
||||||
Set<Material> solid = new HashSet<>();
|
|
||||||
for(Material m : Material.values()) {
|
|
||||||
if(m.isSolid()) solid.add(m);
|
|
||||||
String name = m.toString().toLowerCase();
|
|
||||||
if(name.contains("slab")
|
|
||||||
|| name.contains("stair")
|
|
||||||
|| name.contains("wall")
|
|
||||||
|| name.contains("fence")
|
|
||||||
|| name.contains("lantern")
|
|
||||||
|| name.contains("chest")
|
|
||||||
|| name.contains("door")
|
|
||||||
|| name.contains("repeater")
|
|
||||||
|| name.equals("lily_pad")
|
|
||||||
|| name.equals("snow")
|
|
||||||
|| name.equals("pane")
|
|
||||||
|| !m.isSolid()) snow.add(m);
|
|
||||||
}
|
|
||||||
tagMap.put("com.dfsek.terra:snow_blacklist", snow);
|
|
||||||
tagMap.put("com.dfsek.terra:solid", solid);
|
|
||||||
Debug.info("Added " + snow.size() + " materials to snow blacklist");
|
|
||||||
Debug.info("Added " + solid.size() + " materials to solid list");
|
|
||||||
Debug.info("Loaded " + tagMap.size() + " tags.");
|
|
||||||
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Set<MaterialData> getSet(MaterialData... materials) {
|
|
||||||
return Stream.of(materials).collect(Collectors.toSet());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void putCustomSet(String key, MaterialData... materials) {
|
|
||||||
tagMap.put(key, getSet(materials));
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static Set<MaterialData> getTag(String tag) {
|
|
||||||
return Objects.requireNonNull(tagMap.get(tag));
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,7 +3,7 @@ package com.dfsek.terra.bukkit;
|
|||||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||||
import com.dfsek.terra.TerraWorld;
|
import com.dfsek.terra.TerraWorld;
|
||||||
import com.dfsek.terra.api.GenericLoaders;
|
import com.dfsek.terra.api.GenericLoaders;
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.language.Language;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
@ -30,7 +30,6 @@ import com.dfsek.terra.config.lang.LangUtil;
|
|||||||
import com.dfsek.terra.debug.Debug;
|
import com.dfsek.terra.debug.Debug;
|
||||||
import com.dfsek.terra.generation.MasterChunkGenerator;
|
import com.dfsek.terra.generation.MasterChunkGenerator;
|
||||||
import com.dfsek.terra.registry.ConfigRegistry;
|
import com.dfsek.terra.registry.ConfigRegistry;
|
||||||
import com.dfsek.terra.util.StringUtils;
|
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.TreeType;
|
import org.bukkit.TreeType;
|
||||||
@ -107,7 +106,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin {
|
|||||||
.add("OAK", new BukkitTree(TreeType.TREE, this))
|
.add("OAK", new BukkitTree(TreeType.TREE, this))
|
||||||
.add("MEGA_SPRUCE", new BukkitTree(TreeType.MEGA_REDWOOD, this))
|
.add("MEGA_SPRUCE", new BukkitTree(TreeType.MEGA_REDWOOD, this))
|
||||||
.add("SWAMP_OAK", new BukkitTree(TreeType.SWAMP, this)))
|
.add("SWAMP_OAK", new BukkitTree(TreeType.SWAMP, this)))
|
||||||
.addTransform(id -> new BukkitTree(TreeType.valueOf(StringUtils.stripMinecraftNamespace(id)), this)) // Finally, try stripping minecraft namespace.
|
.addTransform(id -> new BukkitTree(TreeType.valueOf(id), this)) // Finally, try stripping minecraft namespace.
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.carving.UserDefinedCarver;
|
|||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.config.base.ConfigPack;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
import com.dfsek.terra.config.lang.LangUtil;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package com.dfsek.terra.bukkit.command.command.geometry;
|
package com.dfsek.terra.bukkit.command.command.geometry;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.FastNoiseLite;
|
import com.dfsek.terra.api.math.noise.FastNoiseLite;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
import com.dfsek.terra.api.math.voxel.DeformedSphere;
|
||||||
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
||||||
import com.dfsek.terra.bukkit.BukkitPlayer;
|
import com.dfsek.terra.bukkit.BukkitPlayer;
|
||||||
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
import com.dfsek.terra.config.lang.LangUtil;
|
||||||
import com.dfsek.terra.procgen.voxel.DeformedSphere;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.dfsek.terra.bukkit.command.command.geometry;
|
package com.dfsek.terra.bukkit.command.command.geometry;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
import com.dfsek.terra.api.math.voxel.Sphere;
|
||||||
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
||||||
import com.dfsek.terra.bukkit.BukkitPlayer;
|
import com.dfsek.terra.bukkit.BukkitPlayer;
|
||||||
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
import com.dfsek.terra.config.lang.LangUtil;
|
||||||
import com.dfsek.terra.procgen.voxel.Sphere;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package com.dfsek.terra.bukkit.command.command.geometry;
|
package com.dfsek.terra.bukkit.command.command.geometry;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
import com.dfsek.terra.api.math.voxel.Tube;
|
||||||
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
import com.dfsek.terra.bukkit.BukkitCommandSender;
|
||||||
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
import com.dfsek.terra.bukkit.command.PlayerCommand;
|
||||||
import com.dfsek.terra.bukkit.structure.WorldEditUtil;
|
import com.dfsek.terra.bukkit.structure.WorldEditUtil;
|
||||||
import com.dfsek.terra.bukkit.util.BukkitConversions;
|
import com.dfsek.terra.bukkit.util.BukkitConversions;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
import com.dfsek.terra.config.lang.LangUtil;
|
||||||
import com.dfsek.terra.procgen.voxel.Tube;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -7,7 +7,7 @@ import com.dfsek.terra.bukkit.TerraBukkitPlugin;
|
|||||||
import com.dfsek.terra.bukkit.command.WorldCommand;
|
import com.dfsek.terra.bukkit.command.WorldCommand;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.config.lang.LangUtil;
|
import com.dfsek.terra.config.lang.LangUtil;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
import net.md_5.bungee.api.chat.ClickEvent;
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
@ -32,7 +32,7 @@ public class LocateCommand extends WorldCommand {
|
|||||||
super(parent);
|
super(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("DuplicatedCode")
|
@SuppressWarnings({"DuplicatedCode", "deprecation"})
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) {
|
public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) {
|
||||||
String id = args[0];
|
String id = args[0];
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.terra.api.platform.TerraPlugin;
|
|||||||
import com.dfsek.terra.async.AsyncStructureFinder;
|
import com.dfsek.terra.async.AsyncStructureFinder;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
import com.dfsek.terra.debug.Debug;
|
import com.dfsek.terra.debug.Debug;
|
||||||
import com.dfsek.terra.generation.items.TerraStructure;
|
import com.dfsek.terra.population.items.TerraStructure;
|
||||||
import org.bukkit.entity.EnderSignal;
|
import org.bukkit.entity.EnderSignal;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
@ -99,4 +99,9 @@ public class BukkitWorld implements World {
|
|||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return delegate.hashCode();
|
return delegate.hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return delegate.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ public class BukkitMobSpawner extends BukkitBlockState implements MobSpawner {
|
|||||||
SerialState.parse(state).forEach((k, v) -> {
|
SerialState.parse(state).forEach((k, v) -> {
|
||||||
switch(k) {
|
switch(k) {
|
||||||
case "type":
|
case "type":
|
||||||
setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v)));
|
setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v.toUpperCase())));
|
||||||
return;
|
return;
|
||||||
case "delay":
|
case "delay":
|
||||||
setDelay(Integer.parseInt(v));
|
setDelay(Integer.parseInt(v));
|
||||||
|
@ -6,6 +6,6 @@ biome-search-resolution: 4
|
|||||||
cache:
|
cache:
|
||||||
carver: 512
|
carver: 512
|
||||||
structure: 32
|
structure: 32
|
||||||
sampler: 512
|
sampler: 128
|
||||||
master-disable:
|
master-disable:
|
||||||
caves: false
|
caves: false
|
@ -3,7 +3,7 @@ package com.dfsek.terra.fabric;
|
|||||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||||
import com.dfsek.terra.TerraWorld;
|
import com.dfsek.terra.TerraWorld;
|
||||||
import com.dfsek.terra.api.GenericLoaders;
|
import com.dfsek.terra.api.GenericLoaders;
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.language.Language;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
@ -25,7 +25,6 @@ import com.dfsek.terra.fabric.world.TerraBiomeSource;
|
|||||||
import com.dfsek.terra.fabric.world.features.PopulatorFeature;
|
import com.dfsek.terra.fabric.world.features.PopulatorFeature;
|
||||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGeneratorWrapper;
|
import com.dfsek.terra.fabric.world.generator.FabricChunkGeneratorWrapper;
|
||||||
import com.dfsek.terra.registry.ConfigRegistry;
|
import com.dfsek.terra.registry.ConfigRegistry;
|
||||||
import com.dfsek.terra.util.StringUtils;
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
@ -82,7 +81,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
private File config;
|
private File config;
|
||||||
private static final Transformer<String, ConfiguredFeature<?, ?>> TREE_TRANSFORMER = new Transformer.Builder<String, ConfiguredFeature<?, ?>>()
|
private static final Transformer<String, ConfiguredFeature<?, ?>> TREE_TRANSFORMER = new Transformer.Builder<String, ConfiguredFeature<?, ?>>()
|
||||||
.addTransform(TerraFabricPlugin::getFeature)
|
.addTransform(TerraFabricPlugin::getFeature)
|
||||||
.addTransform(id -> getFeature(StringUtils.stripMinecraftNamespace(id)))
|
|
||||||
.addTransform(new MapTransform<String, ConfiguredFeature<?, ?>>()
|
.addTransform(new MapTransform<String, ConfiguredFeature<?, ?>>()
|
||||||
.add("BROWN_MUSHROOM", ConfiguredFeatures.BROWN_MUSHROOM_GIANT)
|
.add("BROWN_MUSHROOM", ConfiguredFeatures.BROWN_MUSHROOM_GIANT)
|
||||||
.add("RED_MUSHROOM", ConfiguredFeatures.RED_MUSHROOM_GIANT)
|
.add("RED_MUSHROOM", ConfiguredFeatures.RED_MUSHROOM_GIANT)
|
||||||
|
@ -2,7 +2,7 @@ package com.dfsek.terra;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||||
import com.dfsek.terra.api.GenericLoaders;
|
import com.dfsek.terra.api.GenericLoaders;
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.language.Language;
|
||||||
import com.dfsek.terra.api.platform.TerraPlugin;
|
import com.dfsek.terra.api.platform.TerraPlugin;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user