Transform class

Пакет: com.hypixel.hytale.math.vector

Файл: com/hypixel/hytale/math/vector/Transform.java

Поля (13)

МодификаторыТипИмя
Vector3i var1
int var1
double var2
Transform var2
float var3
double var4
float var4
float var5
Vector3d var5
double var6
float var6
Rotation3f var6
double var8

Методы (10)

МодификаторыВозвратСигнатура
abstract throw new IllegalStateExceptionthrow new IllegalStateException("Pitch can't be NaN")
abstract throw new IllegalStateExceptionthrow new IllegalStateException("Yaw can't be NaN")
abstract return new Vector3dreturn new Vector3d(var4, var6, var8)
static void applyMaskedRelativeTransformvoid applyMaskedRelativeTransform(@Nonnull Transform var0, byte var1, @Nonnull Vector3dc var2, @Nonnull Rotation3fc var3, @Nonnull Vector3ic var4)
if if(this == var1)
if if(var1 != 0)
static BuilderCodec<Transform> newBuilderCodecBuilderCodec<Transform> newBuilderCodec(@Nonnull Supplier<Transform> var0)
public void setvoid set(@Nonnull Transform var1)
public void setPositionvoid setPosition(@Nonnull Vector3dc var1)
public void setRotationvoid setRotation(@Nonnull Rotation3fc var1)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import java.util.Objects;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">import org.joml.Vector3i;
class="kw">import org.joml.Vector3ic;

class="kw">public class Transform {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> CODEC = newBuilderCodec(Transform::new);
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> PARTIAL_TELEPORT_CODEC = newBuilderCodec(
      () -> new Transform(new Vector3d(), new Rotation3f(Float.NaN, Float.NaN, Float.NaN))
   );
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> CODEC_DEGREES = BuilderCodec.builder(Transform.class, Transform::new)
      .appendInherited(
         new KeyedCodec<>("X", Codec.DOUBLE),
         (var0, var1) -> var0.getPosition().x = var1,
         var0 -> var0.getPosition().x,
         (var0, var1) -> var0.getPosition().x = var1.getPosition().x
      )
      .addValidator(Validators.nonNull())
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("Y", Codec.DOUBLE),
         (var0, var1) -> var0.getPosition().y = var1,
         var0 -> var0.getPosition().y,
         (var0, var1) -> var0.getPosition().y = var1.getPosition().y
      )
      .addValidator(Validators.nonNull())
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("Z", Codec.DOUBLE),
         (var0, var1) -> var0.getPosition().z = var1,
         var0 -> var0.getPosition().z,
         (var0, var1) -> var0.getPosition().z = var1.getPosition().z
      )
      .addValidator(Validators.nonNull())
      .add()
      .appendInherited(
         new KeyedCodec<>("Pitch", Codec.FLOAT),
         (var0, var1) -> var0.getRotation().x = (float)Math.toRadians(var1.floatValue()),
         var0 -> Float.isNaN(var0.getRotation().x) ? null : (float)Math.toDegrees(var0.getRotation().x),
         (var0, var1) -> var0.getRotation().x = var1.getRotation().x
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("Yaw", Codec.FLOAT),
         (var0, var1) -> var0.getRotation().y = (float)Math.toRadians(var1.floatValue()),
         var0 -> Float.isNaN(var0.getRotation().y) ? null : (float)Math.toDegrees(var0.getRotation().y),
         (var0, var1) -> var0.getRotation().y = var1.getRotation().y
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("Roll", Codec.FLOAT),
         (var0, var1) -> var0.getRotation().z = (float)Math.toRadians(var1.floatValue()),
         var0 -> Float.isNaN(var0.getRotation().z) ? null : (float)Math.toDegrees(var0.getRotation().z),
         (var0, var1) -> var0.getRotation().z = var1.getRotation().z
      )
      .add()
      .build();
   @Nonnull
   class="kw">protected Vector3d position;
   @Nonnull
   class="kw">protected Rotation3f rotation;
   class="kw">public class="kw">static class="kw">final int X_IS_RELATIVE = 1;
   class="kw">public class="kw">static class="kw">final int Y_IS_RELATIVE = 2;
   class="kw">public class="kw">static class="kw">final int Z_IS_RELATIVE = 4;
   class="kw">public class="kw">static class="kw">final int YAW_IS_RELATIVE = 8;
   class="kw">public class="kw">static class="kw">final int PITCH_IS_RELATIVE = 16;
   class="kw">public class="kw">static class="kw">final int ROLL_IS_RELATIVE = 32;
   class="kw">public class="kw">static class="kw">final int RELATIVE_TO_BLOCK = 64;

   class="kw">private class="kw">static BuilderCodec<Transform> newBuilderCodec(@Nonnull Supplier<Transform> var0) {
      class="kw">return BuilderCodec.builder(Transform.class, var0)
         .appendInherited(
            new KeyedCodec<>("X", Codec.DOUBLE),
            (var0x, var1) -> var0x.getPosition().x = var1,
            var0x -> var0x.getPosition().x,
            (var0x, var1) -> var0x.getPosition().x = var1.getPosition().x
         )
         .addValidator(Validators.nonNull())
         .add()
         .<Double>appendInherited(
            new KeyedCodec<>("Y", Codec.DOUBLE),
            (var0x, var1) -> var0x.getPosition().y = var1,
            var0x -> var0x.getPosition().y,
            (var0x, var1) -> var0x.getPosition().y = var1.getPosition().y
         )
         .addValidator(Validators.nonNull())
         .add()
         .<Double>appendInherited(
            new KeyedCodec<>("Z", Codec.DOUBLE),
            (var0x, var1) -> var0x.getPosition().z = var1,
            var0x -> var0x.getPosition().z,
            (var0x, var1) -> var0x.getPosition().z = var1.getPosition().z
         )
         .addValidator(Validators.nonNull())
         .add()
         .appendInherited(
            new KeyedCodec<>("Pitch", Codec.FLOAT),
            (var0x, var1) -> var0x.getRotation().x = var1,
            var0x -> Float.isNaN(var0x.getRotation().x) ? null : var0x.getRotation().x,
            (var0x, var1) -> var0x.getRotation().x = var1.getRotation().x
         )
         .add()
         .appendInherited(
            new KeyedCodec<>("Yaw", Codec.FLOAT),
            (var0x, var1) -> var0x.getRotation().y = var1,
            var0x -> Float.isNaN(var0x.getRotation().y) ? null : var0x.getRotation().y,
            (var0x, var1) -> var0x.getRotation().y = var1.getRotation().y
         )
         .add()
         .appendInherited(
            new KeyedCodec<>("Roll", Codec.FLOAT),
            (var0x, var1) -> var0x.getRotation().z = var1,
            var0x -> Float.isNaN(var0x.getRotation().z) ? null : var0x.getRotation().z,
            (var0x, var1) -> var0x.getRotation().z = var1.getRotation().z
         )
         .add()
         .build();
   }

   class="kw">public Transform() {
      this(new Vector3d(), new Rotation3f());
   }

   class="kw">public Transform(@Nonnull Vector3ic var1) {
      this(new Vector3d(var1), new Rotation3f());
   }

   class="kw">public Transform(@Nonnull Vector3dc var1) {
      this(new Vector3d(var1), new Rotation3f());
   }

   class="kw">public Transform(double var1, double var3, double var5) {
      this(new Vector3d(var1, var3, var5), new Rotation3f());
   }

   class="kw">public Transform(double var1, double var3, double var5, float var7, float var8, float var9) {
      this(new Vector3d(var1, var3, var5), new Rotation3f(var7, var8, var9));
   }

   class="kw">public Transform(@Nonnull Transform var1) {
      this(new Vector3d(var1.position), new Rotation3f(var1.rotation));
   }

   class="kw">public Transform(@Nonnull Vector3dc var1, @Nonnull Rotation3fc var2) {
      this(new Vector3d(var1), new Rotation3f(var2));
   }

   class="kw">public Transform(@Nonnull Vector3d var1, @Nonnull Rotation3f var2) {
      this.position = var1;
      this.rotation = var2;
   }

   class="kw">public void set(@Nonnull Transform var1) {
      this.position.set(var1.position);
      this.rotation.set(var1.rotation);
   }

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

   class="kw">public void setPosition(@Nonnull Vector3dc var1) {
      this.position.set(var1);
   }

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

   class="kw">public void setRotation(@Nonnull Rotation3fc var1) {
      this.rotation.set(var1);
   }

   @Nonnull
   class="kw">public Vector3d getDirection() {
      class="kw">return getDirection(this.rotation.pitch(), this.rotation.yaw());
   }

   @Nonnull
   class="kw">public class="kw">static Vector3d getDirection(float var0, float var1) {
      if (Float.isNaN(var0)) {
         throw new IllegalStateException("Pitch can't be NaN");
      }

      if (Float.isNaN(var1)) {
         throw new IllegalStateException("Yaw can't be NaN");
      }

      double var2 = TrigMathUtil.cos(var0);
      double var4 = var2 * -TrigMathUtil.sin(var1);
      double var6 = TrigMathUtil.sin(var0);
      double var8 = var2 * -TrigMathUtil.cos(var1);
      class="kw">return new Vector3d(var4, var6, var8);
   }

   @Nonnull
   class="kw">public Vector3i getAxisDirection() {
      class="kw">return this.getAxisDirection(this.rotation.pitch(), this.rotation.yaw());
   }

   @Nonnull
   class="kw">public Vector3i getAxisDirection(float var1, float var2) {
      if (Float.isNaN(var1)) {
         throw new IllegalStateException("Pitch can't be NaN");
      }

      if (Float.isNaN(var2)) {
         throw new IllegalStateException("Yaw can't be NaN");
      }

      float var3 = TrigMathUtil.cos(var1);
      float var4 = var3 * -TrigMathUtil.sin(var2);
      float var5 = TrigMathUtil.sin(var1);
      float var6 = var3 * -TrigMathUtil.cos(var2);
      class="kw">return new Vector3i(MathUtil.fastRound(var4), MathUtil.fastRound(var5), MathUtil.fastRound(var6));
   }

   @Nonnull
   class="kw">public Axis getAxis() {
      Vector3i var1 = this.getAxisDirection();
      if (var1.x() != 0) {
         class="kw">return Axis.X;
      } else {
         class="kw">return var1.y() != 0 ? Axis.Y : Axis.Z;
      }
   }

   @Nonnull
   class="kw">public Transform clone() {
      class="kw">return new Transform(new Vector3d(this.position), new Rotation3f(this.rotation));
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      } else if (var1 != null && this.getClass() == var1.getClass()) {
         Transform var2 = (Transform)var1;
         class="kw">return !Objects.equals(this.position, var2.position) ? false : Objects.equals(this.rotation, var2.rotation);
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.position.hashCode();
      class="kw">return 31 * var1 + this.rotation.hashCode();
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Transform{position=" + this.position + ", rotation=" + this.rotation + "}";
   }

   class="kw">public class="kw">static void applyMaskedRelativeTransform(
      @Nonnull Transform var0, byte var1, @Nonnull Vector3dc var2, @Nonnull Rotation3fc var3, @Nonnull Vector3ic var4
   ) {
      if (var1 != 0) {
         Vector3d var5 = var0.position;
         if ((var1 & 64) != 0) {
            if ((var1 & 1) != 0) {
               var5.x = var5.x() + var4.x();
            }

            if ((var1 & 2) != 0) {
               var5.y = var5.y() + var4.y();
            }

            if ((var1 & 4) != 0) {
               var5.z = var5.z() + var4.z();
            }
         } else {
            if ((var1 & 1) != 0) {
               var5.x = var5.x() + var2.x();
            }

            if ((var1 & 2) != 0) {
               var5.y = var5.y() + var2.y();
            }

            if ((var1 & 4) != 0) {
               var5.z = var5.z() + var2.z();
            }
         }

         Rotation3f var6 = var0.rotation;
         if ((var1 & 8) != 0) {
            var6.setYaw(var6.yaw() + var3.yaw());
         }

         if ((var1 & 16) != 0) {
            var6.setPitch(var6.pitch() + var3.pitch());
         }

         if ((var1 & 32) != 0) {
            var6.setRoll(var6.roll() + var3.roll());
         }
      }
   }
}