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