Verticality enum

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

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

Поля (1)

МодификаторыТипИмя
GLOBAL, LOCAL

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.math.Calculator;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.pipe.Pipe;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.scanners.Scanner;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2i;
class="kw">import org.joml.Vector3i;

class="kw">public class AreaScanner class="kw">extends Scanner {
   class="kw">private class="kw">final int resultCap;
   @Nonnull
   class="kw">private class="kw">final Scanner childScanner;
   @Nonnull
   class="kw">private class="kw">final List<Vector2i> scanOrder;
   @Nonnull
   class="kw">private class="kw">final Bounds3i bounds_voxelGrid;

   class="kw">public AreaScanner(int var1, @Nonnull AreaScanner.ScanShape var2, int var3, @Nonnull Scanner var4) {
      if (var1 >= 0 && var3 >= 0) {
         this.resultCap = var1;
         this.childScanner = var4;
         this.bounds_voxelGrid = var4.getBounds_voxelGrid().clone();
         Bounds3i var5 = var4.getBounds_voxelGrid().clone();
         ArrayList var6 = new ArrayList<>();
         Vector3i var7 = new Vector3i();

         for (var7.x = -var3; var7.x <= var3; var7.x++) {
            for (var7.z = -var3; var7.z <= var3; var7.z++) {
               if (var2 != AreaScanner.ScanShape.CIRCLE || !(Calculator.distance(var7.x, var7.z, 0.0, 0.0) > var3)) {
                  var6.add(new Vector2i(var7.x, var7.z));
                  var5.offset(var7);
                  this.bounds_voxelGrid.encompass(var5);
                  var5.offset(var7.negate());
                  var7.negate();
               }
            }
         }

         this.scanOrder = VectorUtil.orderByDistanceFrom(new Vector2i(), var6);
      } else {
         throw new IllegalArgumentException();
      }
   }

   @Override
   class="kw">public void scan(@Nonnull Scanner.Context var1) {
      if (this.resultCap != 0) {
         for (Vector2i var3 : this.scanOrder) {
            Vector3i var4 = new Vector3i(var1.position.x + var3.x, var1.position.y, var1.position.z + var3.y);
            Scanner.Context var5 = new Scanner.Context(var1);
            var5.position = var4;
            this.childScanner.scan(var5);
            if (var1.validPositions_out.size() >= this.resultCap) {
               while (var1.validPositions_out.size() > this.resultCap) {
                  var1.validPositions_out.removeLast();
               }

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

   class="kw">public enum ScanShape {
      CIRCLE,
      SQUARE;

      @Nonnull
      class="kw">public class="kw">static class="kw">final Codec<AreaScanner.ScanShape> CODEC = new EnumCodec<>(AreaScanner.ScanShape.class, EnumCodec.EnumStyle.LEGACY);

      ScanShape() {
      }
   }

   class="kw">public enum Verticality {
      GLOBAL,
      LOCAL;

      Verticality() {
      }
   }
}