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