FilterQuery class
Пакет: com.hypixel.hytale.builtin.portals.utils.posqueries.predicates.generic
Файл: com/hypixel/hytale/builtin/portals/utils/posqueries/predicates/generic/FilterQuery.java
implements: SpatialQuery
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
SpatialQuery |
query |
|
Stream |
var4 |
|
|
var4 |
|
AtomicBoolean |
var5 |
|
boolean |
var5 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.failFast) |
|
|
if if(var3 != null) |
|
|
if if(!var5) |
abstract |
|
this this(var1, var2, false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.portals.utils.posqueries.predicates.generic;
class="kw">import com.hypixel.hytale.builtin.portals.utils.posqueries.PositionPredicate;
class="kw">import com.hypixel.hytale.builtin.portals.utils.posqueries.SpatialQuery;
class="kw">import com.hypixel.hytale.builtin.portals.utils.posqueries.SpatialQueryDebug;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import java.util.concurrent.atomic.AtomicBoolean;
class="kw">import java.util.stream.Stream;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class FilterQuery class="kw">implements SpatialQuery {
class="kw">private class="kw">final SpatialQuery query;
class="kw">private class="kw">final PositionPredicate predicate;
class="kw">private class="kw">final boolean failFast;
class="kw">public FilterQuery(SpatialQuery var1, PositionPredicate var2) {
this(var1, var2, false);
}
class="kw">public FilterQuery(SpatialQuery var1, PositionPredicate var2, boolean var3) {
this.query = var1;
this.predicate = var2;
this.failFast = var3;
}
@Nonnull
@Override
class="kw">public Stream<Vector3d> createCandidates(@Nonnull World var1, @Nonnull Vector3d var2, @Nullable SpatialQueryDebug var3) {
Stream var4 = this.query.createCandidates(var1, var2, var3);
AtomicBoolean var5 = new AtomicBoolean();
if (this.failFast) {
var4 = var4.takeWhile(var1x -> !var5.get());
}
class="kw">return var4.filter(var4x -> {
boolean var5 = this.predicate.test(var1, var4x);
if (var3 != null) {
var3.appendLine(this.predicate.getClass().getSimpleName() + " on " + SpatialQueryDebug.fmt(var4x) + " = " + var5);
}
if (!var5) {
var5.set(true);
}
class="kw">return var5;
});
}
}