JitterPointField class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.noise.pointprovider
Файл: com/hypixel/hytale/builtin/hytalegenerator/noise/pointprovider/JitterPointField.java
extends: PointField
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Vector2d |
var10 |
|
Vector3d |
var12 |
|
Vector3d |
var4 |
|
Vector2d |
var4 |
|
Vector3d |
var5 |
|
Vector2d |
var5 |
|
double |
var8 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(double var6 = var4.x; var6 <= var5.x + 0.25; var6++) |
|
|
for for(double var8 = var4.y; var8 <= var5.y + 0.25; var8++) |
|
|
for for(double var10 = var4.z; var10 <= var5.z + 0.25; var10++) |
|
|
for for(double var6 = var4.x; var6 <= var5.x + 0.25; var6++) |
|
|
for for(double var8 = var4.y; var8 <= var5.y + 0.25; var8++) |
|
|
for for(double var6 = var1 - this.scaleX; var6 < var3 + this.scaleX; var6 += this.scaleX) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.noise.pointprovider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.noise.FastNoiseLite;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;
class="kw">import org.joml.Vector2i;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class JitterPointField class="kw">extends PointField {
@Nonnull
class="kw">private class="kw">final FastNoiseLite noise;
class="kw">private class="kw">final int seed;
class="kw">private class="kw">final double jitter;
@Nonnull
class="kw">private class="kw">final Vector3d scaleDown3d;
@Nonnull
class="kw">private class="kw">final Vector3d scaleUp3d;
@Nonnull
class="kw">private class="kw">final Vector2d scaleDown2d;
@Nonnull
class="kw">private class="kw">final Vector2d scaleUp2d;
class="kw">public JitterPointField(int var1, double var2) {
this.jitter = var2;
this.seed = var1;
this.noise = new FastNoiseLite();
this.scaleDown3d = new Vector3d(1.0, 1.0, 1.0);
this.scaleUp3d = new Vector3d(1.0, 1.0, 1.0);
this.scaleDown2d = new Vector2d(1.0, 1.0);
this.scaleUp2d = new Vector2d(1.0, 1.0);
}
@Override
class="kw">public PointField setScale(double var1, double var3, double var5, double var7) {
this.scaleDown3d.x = 1.0 / var1;
this.scaleDown3d.y = 1.0 / var3;
this.scaleDown3d.z = 1.0 / var5;
this.scaleUp3d.x = var1;
this.scaleUp3d.y = var3;
this.scaleUp3d.z = var5;
this.scaleDown2d.x = 1.0 / var1;
this.scaleDown2d.y = 1.0 / var5;
this.scaleUp2d.x = var1;
this.scaleUp2d.y = var5;
class="kw">return super.setScale(var1, var3, var5, var7);
}
@Override
class="kw">public void points3i(@Nonnull Vector3i var1, @Nonnull Vector3i var2, @Nonnull Consumer<Vector3i> var3) {
this.points3d(Vector3iUtil.toVector3d(var1), Vector3iUtil.toVector3d(var2), var1x -> var3.accept(Vector3dUtil.toVector3i(var1x)));
}
@Override
class="kw">public void points2i(@Nonnull Vector2i var1, @Nonnull Vector2i var2, @Nonnull Consumer<Vector2i> var3) {
this.points2d(new Vector2d(var1.x, var1.y), new Vector2d(var2.x, var2.y), var1x -> var3.accept(new Vector2i((int)var1x.x, (int)var1x.y)));
}
@Override
class="kw">public void points1i(int var1, int var2, @Nonnull Consumer<Integer> var3) {
this.points1d(var1, var2, var1x -> var3.accept(FastNoiseLite.fastRound(var1x)));
}
@Override
class="kw">public void points3d(@Nonnull Vector3d var1, @Nonnull Vector3d var2, @Nonnull Consumer<Vector3d> var3) {
Vector3d var4 = new Vector3d(var1).mul(this.scaleDown3d);
Vector3d var5 = new Vector3d(var2).mul(this.scaleDown3d);
var4.x = FastNoiseLite.fastRound(var4.x);
var4.y = FastNoiseLite.fastRound(var4.y);
var4.z = FastNoiseLite.fastRound(var4.z);
var5.x = FastNoiseLite.fastRound(var5.x);
var5.y = FastNoiseLite.fastRound(var5.y);
var5.z = FastNoiseLite.fastRound(var5.z);
for (double var6 = var4.x; var6 <= var5.x + 0.25; var6++) {
for (double var8 = var4.y; var8 <= var5.y + 0.25; var8++) {
for (double var10 = var4.z; var10 <= var5.z + 0.25; var10++) {
Vector3d var12 = this.noise.pointFor(this.seed, this.jitter, var6, var8, var10);
var12.mul(this.scaleUp3d);
if (VectorUtil.isInside(var12, var1, var2)) {
var3.accept(var12);
}
}
}
}
}
@Override
class="kw">public void points2d(@Nonnull Vector2d var1, @Nonnull Vector2d var2, @Nonnull Consumer<Vector2d> var3) {
Vector2d var4 = new Vector2d(var1).mul(this.scaleDown2d);
Vector2d var5 = new Vector2d(var2).mul(this.scaleDown2d);
var4.x = FastNoiseLite.fastRound(var4.x);
var4.y = FastNoiseLite.fastRound(var4.y);
var5.x = FastNoiseLite.fastRound(var5.x);
var5.y = FastNoiseLite.fastRound(var5.y);
for (double var6 = var4.x; var6 <= var5.x + 0.25; var6++) {
for (double var8 = var4.y; var8 <= var5.y + 0.25; var8++) {
Vector2d var10 = this.noise.pointFor(this.seed, this.jitter, var6, var8);
var10.mul(this.scaleUp2d);
if (VectorUtil.isInside(var10, var1, var2)) {
var3.accept(var10);
}
}
}
}
@Override
class="kw">public void points1d(double var1, double var3, @Nonnull Consumer<Double> var5) {
for (double var6 = var1 - this.scaleX; var6 < var3 + this.scaleX; var6 += this.scaleX) {
double var8 = this.noise.pointFor(this.seed, this.jitter, var6);
if (!(var8 < var1) && !(var8 >= var3)) {
var5.accept(var8);
}
}
}
}