MoveNodeAction class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions
Файл: com/hypixel/hytale/builtin/hytalegenerator/graph/nodeactions/MoveNodeAction.java
extends: NodeAction
Исходный код
Показать/скрыть
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.vectorproviders.VectorProvider;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class MoveNodeAction class="kw">extends NodeAction {
@Nonnull
class="kw">private class="kw">final VectorProvider vectorProvider;
class="kw">private class="kw">final double maxDistanceExclusive;
class="kw">private class="kw">final double maxDistanceExclusiveSqr;
@Nonnull
class="kw">private class="kw">final Vector3d rMovementVec;
@Nonnull
class="kw">private class="kw">final Vector3d rNewPosition;
@Nonnull
class="kw">private class="kw">final VectorProvider.Context rVectorContext;
class="kw">public MoveNodeAction(@Nonnull VectorProvider var1, double var2) {
assert var2 >= 0.0;
this.vectorProvider = var1;
this.maxDistanceExclusive = var2;
this.maxDistanceExclusiveSqr = var2 * var2;
this.rMovementVec = new Vector3d();
this.rNewPosition = new Vector3d();
this.rVectorContext = new VectorProvider.Context();
}
@Override
class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull GraphSpace.Node var2) {
this.rVectorContext.position.set(var2.position());
this.rVectorContext.graphNode = var2;
this.vectorProvider.process(this.rVectorContext, this.rMovementVec);
this.rVectorContext.clearReferences();
if (!(this.rMovementVec.lengthSquared() >= this.maxDistanceExclusiveSqr)) {
this.rNewPosition.set(var2.position());
this.rNewPosition.add(this.rMovementVec);
var1.scheduleMoveNode(var2, new Vector3d(this.rNewPosition));
}
}
@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 this.maxDistanceExclusive;
}
@Override
class="kw">public void viewAllPossibleContent(@Nonnull Consumer<GraphSpace.Content> var1) {
}
}