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);
         }
      }
   }
}