ProximityConnectorNodeAction class

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

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

extends: NodeAction

Поля (3)

МодификаторыТипИмя
GraphSpace.Node var4
GraphSpace.Node var7
GraphSpace.Node var8

Методы (4)

МодификаторыВозвратСигнатура
abstract for for(int var6 = 0; var6 < this.rResultList.size()
abstract for for(int var3 = 0; var3 < this.rResultList.size()
abstract for for(int var5 = 0; var5 < this.rCappedList.size()
if if(this.cap < 0)

Исходный код

Показать/скрыть
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.graph.nodeselectors.NodeSelector;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.RngField;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.RngUtil;
class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ProximityConnectorNodeAction class="kw">extends NodeAction {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Comparator<GraphSpace.Node> NODE_COMPARATOR = GraphSpace.Node.DETERMINISTIC_ORDER;
   class="kw">public class="kw">static class="kw">final int NO_CAP = -1;
   @Nonnull
   class="kw">private class="kw">final NodeSelector nodeSelector;
   class="kw">private class="kw">final double range;
   class="kw">private class="kw">final int cap;
   @Nonnull
   class="kw">private class="kw">final RngField rngField;
   @Nonnull
   class="kw">private class="kw">final FastRandom random;
   @Nonnull
   class="kw">private class="kw">final List<GraphSpace.Node> rResultList;
   @Nonnull
   class="kw">private class="kw">final List<GraphSpace.Node> rCappedList;
   @Nonnull
   class="kw">private class="kw">final List<GraphSpace.Node> rNodeList;

   class="kw">public ProximityConnectorNodeAction(double var1, @Nonnull NodeSelector var3, int var4, int var5) {
      assert var1 >= 0.0 && var5 >= -1;
      this.range = var1;
      this.nodeSelector = var3;
      this.cap = var5;
      this.rngField = new RngField(var4);
      this.random = new FastRandom();
      this.rResultList = new ArrayList<>(1);
      this.rCappedList = new ArrayList<>(1);
      this.rNodeList = new ArrayList<>(1);
   }

   @Override
   class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull GraphSpace.Node var2) {
      this.rResultList.clear();
      if (this.cap < 0) {
         var1.getNodes(var2.position(), this.range, this.rResultList);

         for (int var6 = 0; var6 < this.rResultList.size(); var6++) {
            GraphSpace.Node var8 = this.rResultList.get(var6);
            if (this.nodeSelector.isSelected(var1, var8) && var2 != var8) {
               var1.scheduleEdgeCreation(var2, var8);
            }
         }

         this.rResultList.clear();
      } else {
         this.rNodeList.clear();
         var1.getNodes(var2.position(), this.range, this.rResultList);

         for (int var3 = 0; var3 < this.rResultList.size(); var3++) {
            GraphSpace.Node var4 = this.rResultList.get(var3);
            if (this.nodeSelector.isSelected(var1, var4) && var2 != var4) {
               this.rNodeList.add(var4);
            }
         }

         this.rResultList.clear();
         this.random.setSeed(this.rngField.get(var2.position()));
         this.rCappedList.clear();
         this.rNodeList.sort(NODE_COMPARATOR);
         RngUtil.pickElements(this.random, this.cap, this.rNodeList, this.rCappedList);

         for (int var5 = 0; var5 < this.rCappedList.size(); var5++) {
            GraphSpace.Node var7 = this.rCappedList.get(var5);
            var1.scheduleEdgeCreation(var2, var7);
         }

         this.rCappedList.clear();
         this.rNodeList.clear();
      }
   }

   @Override
   class="kw">public double getInteractionRange(double var1) {
      class="kw">return this.range + this.nodeSelector.getInteractionRange(var1);
   }

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

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

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