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