ManualGraphPass class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.graph.passes
Файл: com/hypixel/hytale/builtin/hytalegenerator/graph/passes/ManualGraphPass.java
extends: GraphPass
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final String[] |
connections |
|
private final GraphSpace.Content |
content |
|
private final String |
name |
|
private final String |
name0 |
|
private final String |
name1 |
|
private final Vector3d |
position |
|
double |
var1 |
|
|
var1 |
|
Vector3d |
var13 |
|
GraphSpace.Node |
var14 |
|
Vector3d |
var14 |
|
GraphSpace.Node |
var15 |
|
double |
var15 |
|
GraphSpace.Edge |
var16 |
|
Map |
var3 |
|
Map |
var3 |
|
List |
var4 |
|
List |
var4 |
|
GraphSpace.Node |
var7 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
ConnectionEntrypublic ConnectionEntry(@Nonnull String var1, @Nonnull String var2) |
|
public |
NodeEntrypublic NodeEntry(@Nonnull Vector3d var1, @Nonnull GraphSpace.Content var2, @Nonnull String var3, @Nonnull String[] var4) |
|
|
for for(ManualGraphPass.NodeEntry var6 : this.nodeEntries) |
|
|
for for(String var11 : var6.connections) |
|
|
for for(ManualGraphPass.ConnectionEntry var13 : var4) |
|
|
for for(ManualGraphPass.NodeEntry var3 : this.nodeEntries) |
|
|
for for(ManualGraphPass.NodeEntry var6 : this.nodeEntries) |
|
|
for for(String var10 : var6.connections) |
|
|
for for(ManualGraphPass.ConnectionEntry var12 : var4) |
private |
double |
getLongestEdgeLengthdouble getLongestEdgeLength() |
|
|
if if(var14 != null && var15 != null) |
|
|
if if(var13 != null && var14 != null) |
abstract |
|
super super(var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.graph.passes;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3d;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphSpace;
class="kw">import java.util.ArrayList;
class="kw">import java.util.HashMap;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class ManualGraphPass class="kw">extends GraphPass {
@Nonnull
class="kw">private class="kw">final List<ManualGraphPass.NodeEntry> nodeEntries;
class="kw">private class="kw">final double longestEdgeLength;
class="kw">public ManualGraphPass(@Nonnull List<ManualGraphPass.NodeEntry> var1, @Nonnull String var2) {
super(var2);
this.nodeEntries = new ArrayList<>(var1);
this.longestEdgeLength = this.getLongestEdgeLength();
}
@Override
class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull Bounds3d var2) {
Map var3 = new HashMap<>();
List var4 = new ArrayList<>();
for (ManualGraphPass.NodeEntry var6 : this.nodeEntries) {
if (var2.contains(var6.position)) {
GraphSpace.Node var7 = var1.createNode(var6.position);
var3.put(var6.name, var7);
for (String var11 : var6.connections) {
if (!var6.name.equals(var11)) {
var4.add(new ManualGraphPass.ConnectionEntry(var6.name, var11));
}
}
var7.setContent(var6.content);
}
}
for (ManualGraphPass.ConnectionEntry var13 : var4) {
GraphSpace.Node var14 = var3.get(var13.name0);
GraphSpace.Node var15 = var3.get(var13.name1);
if (var14 != null && var15 != null) {
GraphSpace.Edge var16 = var1.getOrCreateEdge(var14, var15);
}
}
}
@Nonnull
@Override
class="kw">public Bounds3d getReadBounds(double var1) {
class="kw">return Bounds3d.ZERO;
}
@Override
class="kw">public double getLongestEdgeLength(double var1) {
class="kw">return Math.max(var1, this.longestEdgeLength);
}
@Override
class="kw">public void viewAllPossibleContent(@Nonnull Consumer<GraphSpace.Content> var1) {
for (ManualGraphPass.NodeEntry var3 : this.nodeEntries) {
var1.accept(var3.content);
}
}
class="kw">private double getLongestEdgeLength() {
double var1 = 0.0;
Map var3 = new HashMap<>();
List var4 = new ArrayList<>();
for (ManualGraphPass.NodeEntry var6 : this.nodeEntries) {
var3.put(var6.name, var6.position);
for (String var10 : var6.connections) {
if (!var6.name.equals(var10)) {
var4.add(new ManualGraphPass.ConnectionEntry(var6.name, var10));
}
}
}
for (ManualGraphPass.ConnectionEntry var12 : var4) {
Vector3d var13 = var3.get(var12.name0);
Vector3d var14 = var3.get(var12.name1);
if (var13 != null && var14 != null) {
double var15 = Vector3d.distance(var13.x(), var13.y(), var13.z(), var14.x(), var14.y(), var14.z());
var1 = Math.max(var1, var15);
}
}
class="kw">return var1;
}
class="kw">public class="kw">static class ConnectionEntry {
@Nonnull
class="kw">private class="kw">final String name0;
@Nonnull
class="kw">private class="kw">final String name1;
class="kw">public ConnectionEntry(@Nonnull String var1, @Nonnull String var2) {
this.name0 = var1;
this.name1 = var2;
}
}
class="kw">public class="kw">static class NodeEntry {
@Nonnull
class="kw">private class="kw">final Vector3d position;
@Nonnull
class="kw">private class="kw">final GraphSpace.Content content;
@Nonnull
class="kw">private class="kw">final String name;
@Nonnull
class="kw">private class="kw">final String[] connections;
class="kw">public NodeEntry(@Nonnull Vector3d var1, @Nonnull GraphSpace.Content var2, @Nonnull String var3, @Nonnull String[] var4) {
this.position = var1;
this.content = var2;
this.name = var3;
this.connections = var4;
}
}
}