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