MoveNodeAction class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions

Файл: com/hypixel/hytale/builtin/hytalegenerator/graph/nodeactions/MoveNodeAction.java

extends: NodeAction

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphSpace;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.vectorproviders.VectorProvider;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class MoveNodeAction class="kw">extends NodeAction {
   @Nonnull
   class="kw">private class="kw">final VectorProvider vectorProvider;
   class="kw">private class="kw">final double maxDistanceExclusive;
   class="kw">private class="kw">final double maxDistanceExclusiveSqr;
   @Nonnull
   class="kw">private class="kw">final Vector3d rMovementVec;
   @Nonnull
   class="kw">private class="kw">final Vector3d rNewPosition;
   @Nonnull
   class="kw">private class="kw">final VectorProvider.Context rVectorContext;

   class="kw">public MoveNodeAction(@Nonnull VectorProvider var1, double var2) {
      assert var2 >= 0.0;
      this.vectorProvider = var1;
      this.maxDistanceExclusive = var2;
      this.maxDistanceExclusiveSqr = var2 * var2;
      this.rMovementVec = new Vector3d();
      this.rNewPosition = new Vector3d();
      this.rVectorContext = new VectorProvider.Context();
   }

   @Override
   class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull GraphSpace.Node var2) {
      this.rVectorContext.position.set(var2.position());
      this.rVectorContext.graphNode = var2;
      this.vectorProvider.process(this.rVectorContext, this.rMovementVec);
      this.rVectorContext.clearReferences();
      if (!(this.rMovementVec.lengthSquared() >= this.maxDistanceExclusiveSqr)) {
         this.rNewPosition.set(var2.position());
         this.rNewPosition.add(this.rMovementVec);
         var1.scheduleMoveNode(var2, new Vector3d(this.rNewPosition));
      }
   }

   @Override
   class="kw">public double getInteractionRange(double var1) {
      class="kw">return 0.0;
   }

   @Override
   class="kw">public double getLongestCreatedEdgeLength() {
      class="kw">return 0.0;
   }

   @Override
   class="kw">public double getCausalRangeIncrement() {
      class="kw">return this.maxDistanceExclusive;
   }

   @Override
   class="kw">public void viewAllPossibleContent(@Nonnull Consumer<GraphSpace.Content> var1) {
   }
}