TransientPath class

Пакет: com.hypixel.hytale.builtin.path.path

Файл: com/hypixel/hytale/builtin/path/path/TransientPath.java

implements: IPath<SimplePathWaypoint>

Поля (6)

МодификаторыТипИмя
TransientPath var5
Vector3d var6
Vector3d var7
Rotation3f var8
RelativeWaypointDefinition var9
final List<SimplePathWaypoint> waypoints

Методы (2)

МодификаторыВозвратСигнатура
public void addWaypointvoid addWaypoint(@Nonnull Vector3d var1, @Nonnull Rotation3f var2)
public SimplePathWaypoint getSimplePathWaypoint get(int var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.path.path;

class="kw">import com.hypixel.hytale.builtin.path.waypoint.RelativeWaypointDefinition;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.modules.physics.util.PhysicsMath;
class="kw">import com.hypixel.hytale.server.core.universe.world.path.IPath;
class="kw">import com.hypixel.hytale.server.core.universe.world.path.SimplePathWaypoint;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.Queue;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class TransientPath class="kw">implements IPath<SimplePathWaypoint> {
   class="kw">protected class="kw">final List<SimplePathWaypoint> waypoints = new ObjectArrayList();

   class="kw">public TransientPath() {
   }

   class="kw">public void addWaypoint(@Nonnull Vector3d var1, @Nonnull Rotation3f var2) {
      this.waypoints.add(new SimplePathWaypoint((short)this.waypoints.size(), new Transform(var1.x, var1.y, var1.z, var2.pitch(), var2.yaw(), var2.roll())));
   }

   @Nullable
   @Override
   class="kw">public UUID getId() {
      class="kw">return null;
   }

   @Nullable
   @Override
   class="kw">public String getName() {
      class="kw">return null;
   }

   @Nonnull
   @Override
   class="kw">public List<SimplePathWaypoint> getPathWaypoints() {
      class="kw">return Collections.unmodifiableList(this.waypoints);
   }

   @Override
   class="kw">public int length() {
      class="kw">return this.waypoints.size();
   }

   class="kw">public SimplePathWaypoint get(int var1) {
      class="kw">return this.waypoints.get(var1);
   }

   @Nonnull
   class="kw">public class="kw">static IPath<SimplePathWaypoint> buildPath(
      @Nonnull Vector3d var0, @Nonnull Rotation3f var1, @Nonnull Queue<RelativeWaypointDefinition> var2, double var3
   ) {
      TransientPath var5 = new TransientPath();
      var5.addWaypoint(var0, var1);
      Vector3d var6 = new Vector3d(var0);
      Vector3d var7 = new Vector3d();
      Rotation3f var8 = new Rotation3f(var1);

      while (!var2.isEmpty()) {
         RelativeWaypointDefinition var9 = var2.poll();
         var8.addYaw(var9.getRotation());
         var7.set(PhysicsMath.headingX(var8.yaw()), 0.0, PhysicsMath.headingZ(var8.yaw()));
         var7.normalize(var9.getDistance() * var3);
         var6.add(var7);
         var5.addWaypoint(var6, var8);
      }

      class="kw">return var5;
   }
}