SquareGrid2dPositionProvider class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.positionproviders

Файл: com/hypixel/hytale/builtin/hytalegenerator/positionproviders/SquareGrid2dPositionProvider.java

extends: PositionProvider

Поля (2)

МодификаторыТипИмя
final double Y
return

Методы (5)

МодификаторыВозвратСигнатура
for for(double var2 = this.rGridBounds.min.x; var2 < this.rGridBounds.max.x; var2++)
for for(double var4 = this.rGridBounds.min.z; var4 < this.rGridBounds.max.z; var4++)
if if(this.rGridBounds.min.x < var1.bounds.min.x)
if if(this.rGridBounds.min.z < var1.bounds.min.z)
if if(this.rControl.stop)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.positionproviders;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3d;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.pipe.Control;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class SquareGrid2dPositionProvider class="kw">extends PositionProvider {
   class="kw">private class="kw">static class="kw">final double Y = 0.0;
   @Nonnull
   class="kw">private class="kw">final Vector3d rPosition = new Vector3d();
   @Nonnull
   class="kw">private class="kw">final Bounds3d rGridBounds = new Bounds3d();
   @Nonnull
   class="kw">private class="kw">final Control rControl = new Control();

   class="kw">public SquareGrid2dPositionProvider() {
   }

   @Override
   class="kw">public void generate(@Nonnull PositionProvider.Context var1) {
      if (!(var1.bounds.min.y > 0.0) && !(var1.bounds.max.y <= 0.0)) {
         this.rGridBounds.min.set(Math.floor(var1.bounds.min.x), 0.0, Math.floor(var1.bounds.min.z));
         this.rGridBounds.max.set(Math.ceil(var1.bounds.max.x), 1.0, Math.ceil(var1.bounds.max.z));
         if (this.rGridBounds.min.x < var1.bounds.min.x) {
            this.rGridBounds.min.x++;
         }

         if (this.rGridBounds.min.z < var1.bounds.min.z) {
            this.rGridBounds.min.z++;
         }

         this.rControl.reset();

         for (double var2 = this.rGridBounds.min.x; var2 < this.rGridBounds.max.x; var2++) {
            for (double var4 = this.rGridBounds.min.z; var4 < this.rGridBounds.max.z; var4++) {
               assert var1.bounds.contains(var2, 0.0, var4);
               if (this.rControl.stop) {
                  class="kw">return;
               }

               this.rPosition.set(var2, 0.0, var4);
               var1.pipe.accept(this.rPosition, this.rControl);
            }
         }
      }
   }
}