Steering class

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

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

Поля (14)

МодификаторыТипИмя
final double DIRECTION_VECTOR_MIN_LENGTH_SQUARED
int var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
Steering var2
long var2

Методы (30)

МодификаторыВозвратСигнатура
public void clearMaxDistancevoid clearMaxDistance()
public void clearMaxDistanceComponentSelectorvoid clearMaxDistanceComponentSelector()
public void clearPitchvoid clearPitch()
public void clearRollvoid clearRoll()
public void clearYawvoid clearYaw()
public double getMaxDistancedouble getMaxDistance()
public Vector3d getMaxDistanceComponentSelectorVector3d getMaxDistanceComponentSelector()
public float getPitchfloat getPitch()
public float getPitchOrDirectionfloat getPitchOrDirection()
public double getRelativeTurnSpeeddouble getRelativeTurnSpeed()
public float getRollfloat getRoll()
public float getRollOrDirectionfloat getRollOrDirection()
public double getSpeeddouble getSpeed()
public double getXdouble getX()
public double getYdouble getY()
public float getYawfloat getYaw()
public float getYawOrDirectionfloat getYawOrDirection()
public double getZdouble getZ()
public boolean hasDirectionHintboolean hasDirectionHint()
public boolean hasPitchboolean hasPitch()
public boolean hasPitchOrDirectionboolean hasPitchOrDirection()
public boolean hasRollboolean hasRoll()
public boolean hasRollOrDirectionboolean hasRollOrDirection()
public boolean hasTranslationboolean hasTranslation()
public boolean hasYawboolean hasYaw()
public boolean hasYawOrDirectionboolean hasYawOrDirection()
if if(this == var1)
if if(!var3 && this.hasDirectionHint)
public void setMaxDistancevoid setMaxDistance(double var1)
public void setMaxDistanceComponentSelectorvoid setMaxDistanceComponentSelector(Vector3d var1)

Исходный код

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

class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.server.core.modules.physics.util.PhysicsMath;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class Steering {
   class="kw">public class="kw">static class="kw">final double DIRECTION_VECTOR_MIN_LENGTH_SQUARED = 0.1;
   class="kw">public class="kw">static class="kw">final Steering NULL = new Steering().clear();
   class="kw">private class="kw">final Vector3d translation = new Vector3d();
   class="kw">private double maxDistance = Double.MAX_VALUE;
   class="kw">private Vector3d maxDistanceComponentSelector;
   class="kw">private boolean hasTranslation;
   class="kw">private class="kw">final Rotation3f directionHint = new Rotation3f();
   class="kw">private boolean hasDirectionHint;
   class="kw">private float yaw;
   class="kw">private boolean hasYaw;
   class="kw">private float pitch;
   class="kw">private boolean hasPitch;
   class="kw">private float roll;
   class="kw">private boolean hasRoll;
   class="kw">private double relativeTurnSpeed;
   class="kw">private boolean hasRelativeTurnSpeed;

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

   @Nonnull
   class="kw">public Steering clear() {
      this.clearTranslation();
      this.clearRotation();
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering assign(@Nonnull Steering var1) {
      this.translation.set(var1.translation);
      this.maxDistance = var1.maxDistance;
      this.maxDistanceComponentSelector = var1.maxDistanceComponentSelector;
      this.hasTranslation = var1.hasTranslation;
      this.directionHint.set(var1.directionHint);
      this.hasDirectionHint = var1.hasDirectionHint;
      this.yaw = var1.yaw;
      this.hasYaw = var1.hasYaw;
      this.pitch = var1.pitch;
      this.hasPitch = var1.hasPitch;
      this.roll = var1.roll;
      this.hasRoll = var1.hasRoll;
      this.relativeTurnSpeed = var1.relativeTurnSpeed;
      this.hasRelativeTurnSpeed = var1.hasRelativeTurnSpeed;
      class="kw">return this;
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         Steering var2 = (Steering)var1;
         if (Double.compare(var2.maxDistance, this.maxDistance) != 0) {
            class="kw">return false;
         } else if (this.hasTranslation != var2.hasTranslation) {
            class="kw">return false;
         } else if (Float.compare(var2.yaw, this.yaw) != 0) {
            class="kw">return false;
         } else if (this.hasYaw != var2.hasYaw) {
            class="kw">return false;
         } else if (Float.compare(var2.pitch, this.pitch) != 0) {
            class="kw">return false;
         } else if (this.hasPitch != var2.hasPitch) {
            class="kw">return false;
         } else if (Float.compare(var2.roll, this.roll) != 0) {
            class="kw">return false;
         } else if (this.hasRoll != var2.hasRoll) {
            class="kw">return false;
         } else if (!this.translation.equals(var2.translation)) {
            class="kw">return false;
         } else if (this.hasDirectionHint != var2.hasDirectionHint) {
            class="kw">return false;
         } else if (!this.directionHint.equals(var2.directionHint)) {
            class="kw">return false;
         } else if (Double.compare(var2.relativeTurnSpeed, this.relativeTurnSpeed) != 0) {
            class="kw">return false;
         } else {
            class="kw">return this.hasRelativeTurnSpeed != var2.hasRelativeTurnSpeed ? false : this.maxDistanceComponentSelector.equals(var2.maxDistanceComponentSelector);
         }
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.translation.hashCode();
      long var2 = Double.doubleToLongBits(this.maxDistance);
      var1 = 31 * var1 + (int)(var2 ^ var2 >>> 32);
      var1 = 31 * var1 + this.maxDistanceComponentSelector.hashCode();
      var1 = 31 * var1 + (this.hasTranslation ? 1 : 0);
      var1 = 31 * var1 + this.directionHint.hashCode();
      var1 = 31 * var1 + (this.hasDirectionHint ? 1 : 0);
      var1 = 31 * var1 + (this.yaw != 0.0F ? Float.floatToIntBits(this.yaw) : 0);
      var1 = 31 * var1 + (this.hasYaw ? 1 : 0);
      var1 = 31 * var1 + (this.pitch != 0.0F ? Float.floatToIntBits(this.pitch) : 0);
      var1 = 31 * var1 + (this.hasPitch ? 1 : 0);
      var1 = 31 * var1 + (this.roll != 0.0F ? Float.floatToIntBits(this.roll) : 0);
      class="kw">return 31 * var1 + (this.hasRoll ? 1 : 0);
   }

   @Nonnull
   class="kw">public Steering clearTranslation() {
      this.translation.zero();
      this.maxDistance = Double.MAX_VALUE;
      this.hasTranslation = false;
      this.directionHint.set(Rotation3f.ZERO);
      this.hasDirectionHint = false;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering clearRotation() {
      this.yaw = 0.0F;
      this.hasYaw = false;
      this.pitch = 0.0F;
      this.hasPitch = false;
      this.roll = 0.0F;
      this.hasRoll = false;
      this.relativeTurnSpeed = 0.0;
      this.hasRelativeTurnSpeed = false;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Vector3d getTranslation() {
      class="kw">return this.translation;
   }

   class="kw">public double getX() {
      class="kw">return this.translation.x;
   }

   @Nonnull
   class="kw">public Steering setX(double var1) {
      this.hasTranslation = true;
      this.translation.x = var1;
      class="kw">return this;
   }

   class="kw">public double getY() {
      class="kw">return this.translation.y;
   }

   @Nonnull
   class="kw">public Steering setY(double var1) {
      this.hasTranslation = true;
      this.translation.y = var1;
      class="kw">return this;
   }

   class="kw">public double getZ() {
      class="kw">return this.translation.z;
   }

   @Nonnull
   class="kw">public Steering setZ(double var1) {
      this.hasTranslation = true;
      this.translation.z = var1;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering setTranslation(@Nonnull Vector3d var1) {
      this.hasTranslation = true;
      this.translation.set(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering setTranslation(double var1, double var3, double var5) {
      this.hasTranslation = true;
      this.translation.set(var1, var3, var5);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering setTranslationRelativeSpeed(double var1) {
      this.translation.normalize(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering scaleTranslation(double var1) {
      this.translation.mul(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Steering ensureMinTranslation(double var1) {
      if (this.translation.lengthSquared() < var1 * var1 && this.translation.lengthSquared() > 0.0) {
         this.translation.normalize(var1);
      }

      class="kw">return this;
   }

   class="kw">public double getMaxDistance() {
      class="kw">return this.maxDistance;
   }

   class="kw">public void setMaxDistance(double var1) {
      this.maxDistance = var1;
   }

   class="kw">public void clearMaxDistance() {
      this.setMaxDistance(Double.MAX_VALUE);
   }

   class="kw">public Vector3d getMaxDistanceComponentSelector() {
      class="kw">return this.maxDistanceComponentSelector;
   }

   class="kw">public void setMaxDistanceComponentSelector(Vector3d var1) {
      this.maxDistanceComponentSelector = var1;
   }

   class="kw">public void clearMaxDistanceComponentSelector() {
      this.setMaxDistanceComponentSelector(null);
   }

   class="kw">public float getYaw() {
      class="kw">return this.yaw;
   }

   @Nonnull
   class="kw">public Steering setYaw(float var1) {
      this.yaw = var1;
      this.hasYaw = true;
      class="kw">return this;
   }

   class="kw">public void clearYaw() {
      this.hasYaw = false;
   }

   class="kw">public float getPitch() {
      class="kw">return this.pitch;
   }

   @Nonnull
   class="kw">public Steering setPitch(float var1) {
      this.pitch = var1;
      this.hasPitch = true;
      class="kw">return this;
   }

   class="kw">public void clearPitch() {
      this.hasPitch = false;
   }

   class="kw">public float getRoll() {
      class="kw">return this.roll;
   }

   @Nonnull
   class="kw">public Steering setRoll(float var1) {
      this.roll = var1;
      this.hasRoll = true;
      class="kw">return this;
   }

   class="kw">public void clearRoll() {
      this.hasRoll = false;
   }

   @Nonnull
   class="kw">public Steering setRelativeTurnSpeed(double var1) {
      this.relativeTurnSpeed = var1;
      this.hasRelativeTurnSpeed = true;
      class="kw">return this;
   }

   class="kw">public boolean hasTranslation() {
      class="kw">return this.hasTranslation;
   }

   @Nonnull
   class="kw">public Rotation3f getDirectionHint() {
      class="kw">return this.directionHint;
   }

   class="kw">public boolean hasDirectionHint() {
      class="kw">return this.hasDirectionHint;
   }

   @Nonnull
   class="kw">public Steering setDirectionHint(@Nonnull Vector3d var1, @Nonnull Rotation3f var2, boolean var3) {
      if (!var3 && this.hasDirectionHint) {
         class="kw">return this;
      } else if (var1.lengthSquared() < 0.1) {
         this.directionHint.set(var2);
         this.hasDirectionHint = true;
         class="kw">return this;
      } else {
         this.directionHint.setYaw(PhysicsMath.headingFromDirection(var1.x, var1.z));
         this.directionHint.setPitch(PhysicsMath.pitchFromDirection(var1.x, var1.y, var1.z));
         this.directionHint.setRoll(var2.roll());
         this.hasDirectionHint = true;
         class="kw">return this;
      }
   }

   @Nonnull
   class="kw">public Steering setDirectionHint(@Nonnull Rotation3f var1) {
      class="kw">return this.setDirectionHint(var1, false);
   }

   @Nonnull
   class="kw">public Steering setDirectionHint(@Nonnull Rotation3f var1, boolean var2) {
      class="kw">return this.setDirectionHint(this.translation, var1, var2);
   }

   class="kw">public boolean hasYaw() {
      class="kw">return this.hasYaw;
   }

   class="kw">public boolean hasYawOrDirection() {
      class="kw">return this.hasYaw || this.hasDirectionHint;
   }

   class="kw">public float getYawOrDirection() {
      class="kw">return this.hasYaw ? this.yaw : this.directionHint.yaw();
   }

   class="kw">public boolean hasPitch() {
      class="kw">return this.hasPitch;
   }

   class="kw">public boolean hasPitchOrDirection() {
      class="kw">return this.hasPitch || this.hasDirectionHint;
   }

   class="kw">public float getPitchOrDirection() {
      class="kw">return this.hasPitch ? this.pitch : this.directionHint.pitch();
   }

   class="kw">public boolean hasRoll() {
      class="kw">return this.hasRoll;
   }

   class="kw">public boolean hasRollOrDirection() {
      class="kw">return this.hasRoll || this.hasDirectionHint;
   }

   class="kw">public float getRollOrDirection() {
      class="kw">return this.hasRoll ? this.roll : this.directionHint.roll();
   }

   class="kw">public double getSpeed() {
      class="kw">return !this.hasTranslation() ? 0.0 : this.translation.length();
   }

   class="kw">public double getRelativeTurnSpeed() {
      class="kw">return !this.hasRelativeTurnSpeed ? 1.0 : this.relativeTurnSpeed;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Steering{translation="
         + this.translation
         + ", hasTranslation="
         + this.hasTranslation
         + ", yaw="
         + this.yaw
         + ", hasYaw="
         + this.hasYaw
         + ", pitch="
         + this.pitch
         + ", hasPitch="
         + this.hasPitch
         + ", roll="
         + this.roll
         + ", hasRoll="
         + this.hasRoll
         + ", relativeTurnSpeed="
         + this.relativeTurnSpeed
         + ", hasRelativeTurnSpeed="
         + this.hasRelativeTurnSpeed
         + "}";
   }
}