ColumnLinearScanner class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/scanners/deprecated/ColumnLinearScanner.java

extends: Scanner

Поля (15)

МодификаторыТипИмя
final int minY
return
return
Bounds3i var2
int var3
var3
var3
int var4
var4
var4
int var5
Pattern.Context var6
Vector3i var7
int var8
int var9

Методы (7)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException()
for for(var7.y = var4 - 1; var7.y >= var3; var7.y--)
for for(var7.y = var3; var7.y < var4; var7.y++)
if if(var3 < 0)
if if(!var5)
if if(this.isRelativeToPosition)
if if(this.topDownOrder)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.patterns.Pattern;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.pipe.Pipe;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.scanners.Scanner;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;

class="kw">public class ColumnLinearScanner class="kw">extends Scanner {
   class="kw">private class="kw">final int minY;
   class="kw">private class="kw">final int maxY;
   class="kw">private class="kw">final boolean isRelativeToPosition;
   class="kw">private class="kw">final double baseHeight;
   class="kw">private class="kw">final int resultsCap;
   class="kw">private class="kw">final boolean topDownOrder;
   @Nonnull
   class="kw">private class="kw">final Bounds3i bounds_voxelGrid;

   class="kw">public ColumnLinearScanner(int var1, int var2, int var3, boolean var4, boolean var5, double var6) {
      if (var3 < 0) {
         throw new IllegalArgumentException();
      }

      this.baseHeight = var6;
      this.minY = var1;
      this.maxY = var2;
      this.isRelativeToPosition = var5;
      this.resultsCap = var3;
      this.topDownOrder = var4;
      if (!var5) {
         int var8 = -1073741824;
         int var9 = 1073741823;
         this.bounds_voxelGrid = new Bounds3i(new Vector3i(0, -1073741824, 0), new Vector3i(1, 1073741823, 1));
      } else {
         this.bounds_voxelGrid = new Bounds3i(new Vector3i(0, var1, 0), new Vector3i(1, var2, 1));
      }
   }

   @Override
   class="kw">public void scan(@Nonnull Scanner.Context var1) {
      Bounds3i var2 = var1.materialSpace.getBounds();
      int var3;
      int var4;
      if (this.isRelativeToPosition) {
         var3 = Math.max(var1.position.y + this.minY, var2.min.y);
         var4 = Math.min(var1.position.y + this.maxY, var2.max.y);
      } else {
         int var5 = (int)this.baseHeight;
         var3 = Math.max(var5 + this.minY, var2.min.y);
         var4 = Math.min(var5 + this.maxY, var2.max.y);
      }

      Vector3i var7 = new Vector3i(var1.position);
      Pattern.Context var6 = new Pattern.Context(var7, var1.materialSpace);
      if (this.topDownOrder) {
         for (var7.y = var4 - 1; var7.y >= var3; var7.y--) {
            if (var1.pattern.matches(var6)) {
               var1.validPositions_out.add(new Vector3i(var7));
               if (var1.validPositions_out.size() >= this.resultsCap) {
                  class="kw">return;
               }
            }
         }
      } else {
         for (var7.y = var3; var7.y < var4; var7.y++) {
            if (var1.pattern.matches(var6)) {
               var1.validPositions_out.add(new Vector3i(var7));
               if (var1.validPositions_out.size() >= this.resultsCap) {
                  class="kw">return;
               }
            }
         }
      }
   }

   @Override
   class="kw">public void scan(@Nonnull Vector3i var1, @Nonnull Pipe.One<Vector3i> var2) {
   }

   @Override
   class="kw">public Bounds3i getBounds_voxelGrid() {
      class="kw">return this.bounds_voxelGrid;
   }
}