SquareGrid3dPositionProvider class

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

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

extends: PositionProvider

Поля (1)

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

Методы (7)

МодификаторыВозвратСигнатура
for for(double var2 = this.rGridBounds.min.x; var2 < this.rGridBounds.max.x; var2++)
for for(double var4 = this.rGridBounds.min.y; var4 < this.rGridBounds.max.y; var4++)
for for(double var6 = this.rGridBounds.min.z; var6 < this.rGridBounds.max.z; var6++)
if if(this.rGridBounds.min.x < var1.bounds.min.x)
if if(this.rGridBounds.min.y < var1.bounds.min.y)
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 SquareGrid3dPositionProvider class="kw">extends PositionProvider {
   @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 SquareGrid3dPositionProvider() {
   }

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

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

      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.y; var4 < this.rGridBounds.max.y; var4++) {
            for (double var6 = this.rGridBounds.min.z; var6 < this.rGridBounds.max.z; var6++) {
               assert var1.bounds.contains(var2, var4, var6);
               if (this.rControl.stop) {
                  class="kw">return;
               }

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