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