RailPathRefreshResolver class

Пакет: com.hypixel.hytale.server.npc.movement.controllers

Файл: com/hypixel/hytale/server/npc/movement/controllers/RailPathRefreshResolver.java

Поля (11)

МодификаторыТипИмя
RailPath.SegmentCommitType var12
Vector3dc var13
var13
boolean var14
var14
int var15
boolean var16
boolean var17
var17
boolean var18
var3

Методы (6)

МодификаторыВозвратСигнатура
public record RefreshDecisionrecord RefreshDecision(boolean blocked, boolean unreachable, boolean replaced, boolean committedAnchor, @Nonnull RailPath.SegmentCommitType commitType)
if if(var3 <= 1.0E-6)
if if(var14)
if if(!var16)
abstract void probevoid probe(@Nonnull Vector3dc var1, double var2)
abstract double resolvedouble resolve(@Nonnull Vector3dc var1)

Исходный код

Показать/скрыть
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);
   }
}