BoxProp class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/props/deprecated/BoxProp.java

extends: Prop

Поля (8)

МодификаторыТипИмя
PositionListScanResult var2
List var3
Vector3i var3
List var4
Bounds3i var4
Vector3i var4
Scanner.Context var5
Bounds3i var7

Методы (9)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("negative range")
abstract return new PositionListScanResultreturn new PositionListScanResult(var4)
for for(Vector3i var6 : var3)
for for(int var5 = var3.x; var5 <= var4.x; var5++)
for for(int var6 = var3.y; var6 <= var4.y; var6++)
for for(int var7 = var3.z; var7 <= var4.z; var7++)
if if(var3 != null)
private void placevoid place(@Nonnull Vector3i var1, @Nonnull VoxelSpace<Material> var2)
public void place_deprecatedvoid place_deprecated(@Nonnull Prop.Context var1, @Nonnull PositionListScanResult var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.props.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.material.Material;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.patterns.Pattern;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.Prop;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.scanners.Scanner;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.voxelspace.VoxelSpace;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.workerindexer.WorkerIndexer;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;

@Deprecated
class="kw">public class BoxProp class="kw">extends Prop {
   @Nonnull
   class="kw">private class="kw">final Vector3i range;
   @Nonnull
   class="kw">private class="kw">final Material material;
   @Nonnull
   class="kw">private class="kw">final Scanner scanner;
   @Nonnull
   class="kw">private class="kw">final Pattern pattern;
   @Nonnull
   class="kw">private class="kw">final Bounds3i readBounds_voxelGrid;
   @Nonnull
   class="kw">private class="kw">final Bounds3i writeBounds_voxelGrid;

   class="kw">public BoxProp(@Nonnull Vector3i var1, @Nonnull Material var2, @Nonnull Scanner var3, @Nonnull Pattern var4) {
      if (VectorUtil.isAnySmaller(var1, new Vector3i())) {
         throw new IllegalArgumentException("negative range");
      }

      this.range = new Vector3i(var1);
      this.material = var2;
      this.scanner = var3;
      this.pattern = var4;
      this.readBounds_voxelGrid = var3.getBoundsWithPattern_voxelGrid(var4);
      this.writeBounds_voxelGrid = new Bounds3i(new Vector3i(this.range).negate(), new Vector3i(this.range).add(Vector3iUtil.ALL_ONES));
      this.writeBounds_voxelGrid.stack(var4.getBounds_voxelGrid());
   }

   @Override
   class="kw">public boolean generate(@Nonnull Prop.Context var1) {
      PositionListScanResult var2 = this.scan_deprecated(var1.position, var1.materialReadSpace, WorkerIndexer.Id.MAIN);
      this.place_deprecated(var1, var2);
      class="kw">return !var2.isNegative();
   }

   @Nonnull
   class="kw">public PositionListScanResult scan_deprecated(@Nonnull Vector3i var1, @Nonnull VoxelSpace<Material> var2, @Nonnull WorkerIndexer.Id var3) {
      List var4 = new ArrayList<>();
      Scanner.Context var5 = new Scanner.Context(var1, this.pattern, var2, var4);
      this.scanner.scan(var5);
      class="kw">return new PositionListScanResult(var4);
   }

   class="kw">public void place_deprecated(@Nonnull Prop.Context var1, @Nonnull PositionListScanResult var2) {
      List var3 = var2.getPositions();
      if (var3 != null) {
         Bounds3i var4 = var1.materialWriteSpace.getBounds();

         for (Vector3i var6 : var3) {
            Bounds3i var7 = this.writeBounds_voxelGrid.clone().offset(var6);
            if (var7.intersects(var4)) {
               this.place(var6, var1.materialWriteSpace);
            }
         }
      }
   }

   class="kw">private void place(@Nonnull Vector3i var1, @Nonnull VoxelSpace<Material> var2) {
      Vector3i var3 = new Vector3i(var1).add(-this.range.x, 0, -this.range.z);
      Vector3i var4 = new Vector3i(var1).add(this.range.x, this.range.y + this.range.y, this.range.z);

      for (int var5 = var3.x; var5 <= var4.x; var5++) {
         for (int var6 = var3.y; var6 <= var4.y; var6++) {
            for (int var7 = var3.z; var7 <= var4.z; var7++) {
               if (var2.getBounds().contains(var5, var6, var7)) {
                  var2.set(this.material, var5, var6, var7);
               }
            }
         }
      }
   }

   @Nonnull
   @Override
   class="kw">public Bounds3i getReadBounds_voxelGrid() {
      class="kw">return this.readBounds_voxelGrid;
   }

   @Nonnull
   @Override
   class="kw">public Bounds3i getWriteBounds_voxelGrid() {
      class="kw">return this.writeBounds_voxelGrid;
   }
}