CuboidPattern class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.patterns
Файл: com/hypixel/hytale/builtin/hytalegenerator/patterns/CuboidPattern.java
extends: Pattern
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(this.rChildPosition.x = this.rScanMin.x; this.rChildPosition.x <= this.rScanMax.x; this.rChildPosition.x++) |
|
|
for for(this.rChildPosition.z = this.rScanMin.z; this.rChildPosition.z <= this.rScanMax.z; this.rChildPosition.z++) |
|
|
for for(this.rChildPosition.y = this.rScanMin.y; this.rChildPosition.y <= this.rScanMax.y; this.rChildPosition.y++) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.patterns;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class CuboidPattern class="kw">extends Pattern {
@Nonnull
class="kw">private class="kw">final Pattern subPattern;
@Nonnull
class="kw">private class="kw">final Vector3i min;
@Nonnull
class="kw">private class="kw">final Vector3i max;
@Nonnull
class="kw">private class="kw">final Bounds3i bounds_voxelGrid;
@Nonnull
class="kw">private class="kw">final Vector3i rScanMin;
@Nonnull
class="kw">private class="kw">final Vector3i rScanMax;
@Nonnull
class="kw">private class="kw">final Vector3i rChildPosition;
@Nonnull
class="kw">private class="kw">final Pattern.Context rChildContext;
class="kw">public CuboidPattern(@Nonnull Pattern var1, @Nonnull Vector3i var2, @Nonnull Vector3i var3) {
this.subPattern = var1;
this.min = var2;
this.max = var3;
this.bounds_voxelGrid = new Bounds3i(var2, new Vector3i(var3).add(Vector3iUtil.ALL_ONES));
this.bounds_voxelGrid.stack(var1.getBounds_voxelGrid());
this.rScanMin = new Vector3i();
this.rScanMax = new Vector3i();
this.rChildPosition = new Vector3i();
this.rChildContext = new Pattern.Context();
}
@Override
class="kw">public boolean matches(@Nonnull Pattern.Context var1) {
this.rScanMin.set(this.min).add(var1.position);
this.rScanMax.set(this.max).add(var1.position);
this.rChildPosition.set(var1.position);
this.rChildContext.assign(var1);
this.rChildContext.position = this.rChildPosition;
for (this.rChildPosition.x = this.rScanMin.x; this.rChildPosition.x <= this.rScanMax.x; this.rChildPosition.x++) {
for (this.rChildPosition.z = this.rScanMin.z; this.rChildPosition.z <= this.rScanMax.z; this.rChildPosition.z++) {
for (this.rChildPosition.y = this.rScanMin.y; this.rChildPosition.y <= this.rScanMax.y; this.rChildPosition.y++) {
if (!var1.materialSpace.getBounds().contains(this.rChildPosition)) {
this.rChildContext.clearReferences();
class="kw">return false;
}
if (!this.subPattern.matches(this.rChildContext)) {
this.rChildContext.clearReferences();
class="kw">return false;
}
}
}
}
this.rChildContext.clearReferences();
class="kw">return true;
}
@Nonnull
@Override
class="kw">public Bounds3i getBounds_voxelGrid() {
class="kw">return this.bounds_voxelGrid;
}
}