SplitterEdgeAction class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/graph/edgeactions/SplitterEdgeAction.java

extends: EdgeAction

Поля (8)

МодификаторыТипИмя
final int nodeCount
GraphSpace.Content var10
boolean var11
double var3
double var5
GraphSpace.Node var7
var7
GraphSpace.Node var9

Методы (4)

МодификаторыВозвратСигнатура
for for(int var8 = 0; var8 < this.nodeCount; var8++)
if if(this.nodeCount != 0)
if if(var3 != 0.0)
if if(var11)

Исходный код

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

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

class="kw">public class SplitterEdgeAction class="kw">extends EdgeAction {
   class="kw">private class="kw">final int nodeCount;
   class="kw">private class="kw">final int segmentCount;
   @Nonnull
   class="kw">private class="kw">final ContentSupplier contentSupplier;
   @Nonnull
   class="kw">private class="kw">final Vector3d rEdgeVector;
   @Nonnull
   class="kw">private class="kw">final Vector3d rNodePosition;

   class="kw">public SplitterEdgeAction(@Nonnull ContentSupplier var1, int var2) {
      assert var2 >= 0;
      this.nodeCount = var2;
      this.segmentCount = var2 + 1;
      this.contentSupplier = var1;
      this.rEdgeVector = new Vector3d();
      this.rNodePosition = new Vector3d();
   }

   @Override
   class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull GraphSpace.Edge var2) {
      if (this.nodeCount != 0) {
         var1.schedule(() -> {
            this.rEdgeVector.set(var2.nodeB().position()).sub(var2.nodeA().position());
            double var3 = this.rEdgeVector.length();
            if (var3 != 0.0) {
               double var5 = var3 / this.segmentCount;
               this.rEdgeVector.normalize(var5);
               var1.deleteEdge(var2);
               this.rNodePosition.set(var2.nodeA().position());
               GraphSpace.Node var7 = var2.nodeA();

               for (int var8 = 0; var8 < this.nodeCount; var8++) {
                  this.rNodePosition.add(this.rEdgeVector);
                  GraphSpace.Node var9 = var1.createNode(this.rNodePosition);
                  GraphSpace.Content var10 = this.contentSupplier.get(var9);
                  var9.setContent(var10);
                  var1.getOrCreateEdge(var7, var9);
                  var7 = var9;
                  boolean var11 = var8 == this.nodeCount - 1;
                  if (var11) {
                     var1.getOrCreateEdge(var9, var2.nodeB());
                  }
               }
            }
         });
      }
   }

   @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 0.0;
   }

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