HyCodeYourTale
classpublicPriority 3

FlatMapQuery

com.hypixel.hytale.builtin.portals.utils.posqueries.predicates.generic.FlatMapQuery

implements SpatialQuery

1

Methods

1

Public Methods

2

Fields

1

Constructors

Constructors

public
FlatMapQuery(SpatialQuery generator, SpatialQuery expand)

Methods

Public Methods (1)

public
Stream<Vector3d> createCandidates(World world, Vector3d origin, SpatialQueryDebug debug)
@Override

Fields

Private/Package Fields (2)

privateSpatialQuery expand
privateSpatialQuery generator

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.builtin.portals.utils.posqueries.predicates.generic;

import com.hypixel.hytale.builtin.portals.utils.posqueries.SpatialQuery;
import com.hypixel.hytale.builtin.portals.utils.posqueries.SpatialQueryDebug;
import com.hypixel.hytale.math.vector.Vector3d;
import com.hypixel.hytale.server.core.universe.world.World;
import java.util.stream.Stream;
import javax.annotation.Nullable;

public class FlatMapQuery implements SpatialQuery {
   private final SpatialQuery generator;
   private final SpatialQuery expand;

   public FlatMapQuery(SpatialQuery generator, SpatialQuery expand) {
      this.generator = generator;
      this.expand = expand;
   }

   @Override
   public Stream<Vector3d> createCandidates(World world, Vector3d origin, @Nullable SpatialQueryDebug debug) {
      return this.generator.createCandidates(world, origin, debug).flatMap(candidate -> {
         Stream<Vector3d> candidates = this.expand.createCandidates(world, candidate, debug);
         if (debug != null) {
            debug.indent("Flat-map expand from " + debug.fmt(candidate) + ":");
            return Stream.concat(candidates, Stream.of((Vector3d)null).peek(x -> debug.unindent()).flatMap(x -> Stream.empty()));
         } else {
            return candidates;
         }
      });
   }
}