CandidateRailProbe interface
Пакет: com.hypixel.hytale.server.npc.movement.controllers
Файл: com/hypixel/hytale/server/npc/movement/controllers/RailPathRefreshResolver.java
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
void |
probevoid probe(@Nonnull Vector3dc var1, double var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.movement.controllers;
class="kw">import java.util.function.BooleanSupplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">public class="kw">final class RailPathRefreshResolver {
class="kw">private RailPathRefreshResolver() {
}
@Nonnull
class="kw">public class="kw">static RailPathRefreshResolver.RefreshDecision resolve(
@Nonnull RailPath var0,
@Nonnull RailPath var1,
@Nonnull Vector3dc var2,
double var3,
double var5,
@Nonnull Vector3d var7,
@Nonnull RailPathRefreshResolver.RemainingDistanceResolver var8,
@Nonnull RailPathRefreshResolver.CandidateRailProbe var9,
@Nonnull BooleanSupplier var10,
@Nonnull BooleanSupplier var11
) {
RailPath.SegmentCommitType var12 = var0.getActiveSegmentCommitType();
Vector3dc var13 = var2;
boolean var14 = false;
if (var0.isOnCommittedSegment()) {
int var15 = var0.getCommittedSegmentEndWaypointIndex();
if (var15 >= 0 && var15 < var0.getWaypointCount()) {
var7.set(var0.getWaypoint(var15));
var13 = var7;
var14 = true;
var3 = var8.resolve(var13);
}
}
if (var3 <= 1.0E-6) {
class="kw">return new RailPathRefreshResolver.RefreshDecision(false, false, false, var14, var12);
}
var9.probe(var13, var3);
boolean var18 = var10.getAsBoolean();
if (var14) {
class="kw">return new RailPathRefreshResolver.RefreshDecision(false, var18, false, var14, var12);
}
if (var18 && var1.getWaypointCount() <= 1) {
class="kw">return new RailPathRefreshResolver.RefreshDecision(true, true, false, false, var12);
}
if (!var11.getAsBoolean()) {
class="kw">return new RailPathRefreshResolver.RefreshDecision(false, var18, false, false, var12);
}
boolean var16 = var0.remainingEquivalentTo(var1, var2, var5);
boolean var17 = false;
if (!var16) {
var0.capture(var1);
var17 = true;
}
class="kw">return new RailPathRefreshResolver.RefreshDecision(false, var18, var17, false, var12);
}
@FunctionalInterface
class="kw">public class="kw">interface CandidateRailProbe {
void probe(@Nonnull Vector3dc var1, double var2);
}
class="kw">public record RefreshDecision(
boolean blocked, boolean unreachable, boolean replaced, boolean committedAnchor, @Nonnull RailPath.SegmentCommitType commitType
) {
class="kw">public RefreshDecision {
}
}
@FunctionalInterface
class="kw">public class="kw">interface RemainingDistanceResolver {
double resolve(@Nonnull Vector3dc var1);
}
}