mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-25 13:30:10 +00:00
simply noise context api
This commit is contained in:
1 parent
9ff23a9458
commit
e0328a3c89
27 files changed
+124
-158
No files matched your search
@@ -21,29 +21,16 @@ import java.util.List;
|
||||
public interface NoiseSampler {
|
||||
static NoiseSampler zero() {
|
||||
return new NoiseSampler() {
|
||||
|
||||
|
||||
@Override
|
||||
public double noise(long seed, double x, double y, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
public double noise(long seed, double x, double y, double[] context, int contextRadius) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double noise(long seed, double x, double y, double z, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
public double noise(long seed, double x, double y, double z, double[] context, int contextRadius) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateContext(long seed, double x, double y, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
//no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateContext(long seed, double x, double y, double z, List<double[]> context, int contextLayer,
|
||||
int contextRadius) {
|
||||
//no-op
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getContextRadius() {
|
||||
return 0;
|
||||
@@ -68,29 +55,28 @@ public interface NoiseSampler {
|
||||
return noise(seed, vector2.getX(), vector2.getZ());
|
||||
}
|
||||
|
||||
default double noise(Vector3 vector3, long seed, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, vector3.getX(), vector3.getY(), vector3.getZ(), context, contextLayer, contextRadius);
|
||||
default double noise(Vector3 vector3, long seed, double[] context, int contextRadius) {
|
||||
return noise(seed, vector3.getX(), vector3.getY(), vector3.getZ(), context, contextRadius);
|
||||
}
|
||||
|
||||
default double noise(Vector3Int vector3, long seed, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, vector3.getX(), vector3.getY(), vector3.getZ(), context, contextLayer, contextRadius);
|
||||
default double noise(Vector3Int vector3, long seed, double[] context, int contextRadius) {
|
||||
return noise(seed, vector3.getX(), vector3.getY(), vector3.getZ(), context, contextRadius);
|
||||
}
|
||||
|
||||
|
||||
default double noise(Vector2 vector2, long seed, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, vector2.getX(), vector2.getZ(), context, contextLayer, contextRadius);
|
||||
default double noise(Vector2 vector2, long seed, double[] context, int contextRadius) {
|
||||
return noise(seed, vector2.getX(), vector2.getZ(), context, contextRadius);
|
||||
}
|
||||
|
||||
default double noise(Vector2Int vector2, long seed, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, vector2.getX(), vector2.getZ(), context, contextLayer, contextRadius);
|
||||
default double noise(Vector2Int vector2, long seed, double[] context, int contextRadius) {
|
||||
return noise(seed, vector2.getX(), vector2.getZ(), context, contextRadius);
|
||||
}
|
||||
|
||||
default double noise(long seed, double x, double y) {
|
||||
int contextRadius = getContextRadius();
|
||||
|
||||
ArrayList<double[]> list = new ArrayList<>();
|
||||
generateContext(seed, x, y, list, 0, contextRadius);
|
||||
return noise(seed, x, y, list, 0, contextRadius);
|
||||
double[] context = generateContext(seed, x, y, contextRadius);
|
||||
return noise(seed, x, y, context, contextRadius);
|
||||
}
|
||||
|
||||
default double noise(long seed, int x, int y) {
|
||||
@@ -100,87 +86,82 @@ public interface NoiseSampler {
|
||||
default double noise(long seed, double x, double y, double z) {
|
||||
int contextRadius = getContextRadius();
|
||||
|
||||
ArrayList<double[]> list = new ArrayList<>();
|
||||
generateContext(seed, x, y, z, list, 0, contextRadius);
|
||||
return noise(seed, x, y, z, list, 0, contextRadius);
|
||||
double[] context = generateContext(seed, x, y, z, contextRadius);
|
||||
return noise(seed, x, y, z, context, contextRadius);
|
||||
}
|
||||
|
||||
default double noise(long seed, int x, int y, int z) {
|
||||
return noise(seed, (double) x, y, z);
|
||||
}
|
||||
|
||||
double noise(long seed, double x, double y, List<double[]> context, int contextLayer, int contextRadius);
|
||||
double noise(long seed, double x, double y, double[] context, int contextRadius);
|
||||
|
||||
default double noise(long seed, int x, int y, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, (double) x, y, context, contextLayer, contextRadius);
|
||||
default double noise(long seed, int x, int y, double[] context, int contextRadius) {
|
||||
return noise(seed, (double) x, y, context, contextRadius);
|
||||
}
|
||||
|
||||
double noise(long seed, double x, double y, double z, List<double[]> context, int contextLayer, int contextRadius);
|
||||
double noise(long seed, double x, double y, double z, double[] context, int contextRadius);
|
||||
|
||||
default double noise(long seed, int x, int y, int z, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
return noise(seed, (double) x, y, z, context, contextLayer, contextRadius);
|
||||
default double noise(long seed, int x, int y, int z, double[] context, int contextRadius) {
|
||||
return noise(seed, (double) x, y, z, context, contextRadius);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector2 vector2, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
//no-op
|
||||
default double[] generateContext(long seed, Vector2 vector2, int contextRadius) {
|
||||
return new double[0];
|
||||
}
|
||||
default void generateContext(long seed, Vector2 vector2, List<double[]> context) {
|
||||
generateContext(seed, vector2.getX(), vector2.getZ(), context);
|
||||
default double[] generateContext(long seed, Vector2 vector2) {
|
||||
return generateContext(seed, vector2.getX(), vector2.getZ());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector2Int vector2, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
generateContext(seed, (double) vector2.getX(), vector2.getZ(), context, contextLayer, contextRadius);
|
||||
default double[] generateContext(long seed, Vector2Int vector2, int contextRadius) {
|
||||
return generateContext(seed, (double) vector2.getX(), vector2.getZ(), contextRadius);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector2Int vector2, List<double[]> context) {
|
||||
generateContext(seed, (double) vector2.getX(), vector2.getZ(), context);
|
||||
default double[] generateContext(long seed, Vector2Int vector2) {
|
||||
return generateContext(seed, (double) vector2.getX(), vector2.getZ());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector3 vector3, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
//no-op
|
||||
default double[] generateContext(long seed, Vector3 vector3, int contextRadius) {
|
||||
return new double[0];
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector3 vector3, List<double[]> context) {
|
||||
generateContext(seed, vector3.getX(), vector3.getY(), vector3.getZ(), context);
|
||||
default double[] generateContext(long seed, Vector3 vector3) {
|
||||
return generateContext(seed, vector3.getX(), vector3.getY(), vector3.getZ());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector3Int vector3, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
generateContext(seed, (double) vector3.getX(), vector3.getY(), vector3.getZ(), context, contextLayer, contextRadius);
|
||||
default double[] generateContext(long seed, Vector3Int vector3, int contextRadius) {
|
||||
return generateContext(seed, (double) vector3.getX(), vector3.getY(), vector3.getZ(), contextRadius);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, Vector3Int vector3, List<double[]> context) {
|
||||
generateContext(seed, (double) vector3.getX(), vector3.getY(), vector3.getZ(), context);
|
||||
default double[] generateContext(long seed, Vector3Int vector3) {
|
||||
return generateContext(seed, (double) vector3.getX(), vector3.getY(), vector3.getZ());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, double x, double y, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
//no-op
|
||||
default double[] generateContext(long seed, double x, double y, int contextRadius) {
|
||||
return new double[0];
|
||||
}
|
||||
default void generateContext(long seed, double x, double y, List<double[]> context) {
|
||||
generateContext(seed, x, y, context, 0, getContextRadius());
|
||||
default double[] generateContext(long seed, double x, double y) {
|
||||
return generateContext(seed, x, y, getContextRadius());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, int x, int y, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
generateContext(seed, (double) x, y, context, contextLayer, contextRadius);
|
||||
default double[] generateContext(long seed, int x, int y) {
|
||||
return generateContext(seed, (double) x, y);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, int x, int y, List<double[]> context) {
|
||||
generateContext(seed, (double) x, y, context);
|
||||
default double[] generateContext(long seed, double x, double y, double z, int contextRadius) {
|
||||
return new double[0];
|
||||
}
|
||||
|
||||
default void generateContext(long seed, double x, double y, double z, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
//no-op
|
||||
default double[] generateContext(long seed, double x, double y, double z) {
|
||||
return generateContext(seed, x, y, z, getContextRadius());
|
||||
}
|
||||
|
||||
default void generateContext(long seed, double x, double y, double z, List<double[]> context) {
|
||||
generateContext(seed, x, y, z, context, 0, getContextRadius());
|
||||
default double[] generateContext(long seed, int x, int y, int z, int contextRadius) {
|
||||
return generateContext(seed, (double) x, y, z, contextRadius);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, int x, int y, int z, List<double[]> context, int contextLayer, int contextRadius) {
|
||||
generateContext(seed, (double) x, y, z, context, contextLayer, contextRadius);
|
||||
}
|
||||
|
||||
default void generateContext(long seed, int x, int y, int z, List<double[]> context) {
|
||||
generateContext(seed, (double) x, y, z, context);
|
||||
default double[] generateContext(long seed, int x, int y, int z) {
|
||||
return generateContext(seed, (double) x, y, z);
|
||||
}
|
||||
|
||||
default int getContextRadius() {
|
||||
|
||||
+4
-4
@@ -51,25 +51,25 @@ public class ProbabilityCollection<E> implements Collection<E> {
|
||||
@SuppressWarnings("unchecked")
|
||||
public E get(NoiseSampler n, double x, double y, double z, long seed) {
|
||||
if(array.length == 0) return null;
|
||||
return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, x, y, z), array.length)];
|
||||
return (E) array[MathUtil.normalizeIndex(n.noise(seed, x, y, z), array.length)];
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public E get(NoiseSampler n, Vector3Int vector3Int, long seed) {
|
||||
if(array.length == 0) return null;
|
||||
return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)];
|
||||
return (E) array[MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)];
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public E get(NoiseSampler n, Vector3 vector3Int, long seed) {
|
||||
if(array.length == 0) return null;
|
||||
return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)];
|
||||
return (E) array[MathUtil.normalizeIndex(n.noise(seed, vector3Int.getX(), vector3Int.getY(), vector3Int.getZ()), array.length)];
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public E get(NoiseSampler n, double x, double z, long seed) {
|
||||
if(array.length == 0) return null;
|
||||
return (E) array[(int) MathUtil.normalizeIndex(n.noise(seed, x, z), array.length)];
|
||||
return (E) array[MathUtil.normalizeIndex(n.noise(seed, x, z), array.length)];
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
Reference in new issue
Block a user