Rotation enum
Пакет: com.hypixel.hytale.server.core.asset.type.blocktype.config
Файл: com/hypixel/hytale/server/core/asset/type/blocktype/config/Rotation.java
implements: NetworkSerializable<com.hypixel.hytale.protocol.Rotation>
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Rotation[] |
VALUES |
|
|
var0 |
|
|
var0 |
|
Vector3i |
var3 |
|
Vector3i |
var4 |
|
Vector3f |
var4 |
|
Vector3d |
var4 |
|
Rotation3f |
var4 |
Методы (34)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
void |
applyRotationTovoid applyRotationTo(@Nonnull Vector3i var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
static |
void |
applyRotationTovoid applyRotationTo(@Nonnull Vector3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
static |
void |
applyRotationTovoid applyRotationTo(@Nonnull Rotation3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
static |
void |
applyRotationTovoid applyRotationTo(@Nonnull Vector3d var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
abstract |
|
applyRotationTo applyRotationTo(var4, var1, var2, var3) |
static |
Rotation |
closestOfDegreesRotation closestOfDegrees(float var0) |
public |
Vector3ic |
getAxisDirectionVector3ic getAxisDirection() |
public |
Axis |
getAxisOfAlignmentAxis getAxisOfAlignment() |
public |
int |
getDegreesint getDegrees() |
public |
double |
getRadiansdouble getRadians() |
|
|
if if(var0 < 0.0F) |
public |
int |
rotateXint rotateX(int var1) |
public |
int |
rotateYint rotateY(int var1) |
public |
int |
rotateZint rotateZ(int var1) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(this) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(this) |
public |
Rotation |
toInverseRotation toInverse() |
public |
com.hypixel.hytale.protocol.Rotation |
toPacketcom.hypixel.hytale.protocol.Rotation toPacket() |
static |
void |
undoRotationTovoid undoRotationTo(@Nonnull Vector3i var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
static |
void |
undoRotationTovoid undoRotationTo(@Nonnull Vector3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
static |
void |
undoRotationTovoid undoRotationTo(@Nonnull Vector3d var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.blocktype.config;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import com.hypixel.hytale.server.core.util.FillerBlockUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Quaterniond;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">import org.joml.Vector3f;
class="kw">import org.joml.Vector3fc;
class="kw">import org.joml.Vector3i;
class="kw">import org.joml.Vector3ic;
class="kw">public enum Rotation class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.Rotation> {
None(0, com.hypixel.hytale.protocol.Rotation.None, Axis.Z, Vector3iUtil.NEG_Z),
Ninety(90, com.hypixel.hytale.protocol.Rotation.Ninety, Axis.X, Vector3iUtil.NEG_X),
OneEighty(180, com.hypixel.hytale.protocol.Rotation.OneEighty, Axis.Z, Vector3iUtil.POS_Z),
TwoSeventy(270, com.hypixel.hytale.protocol.Rotation.TwoSeventy, Axis.X, Vector3iUtil.POS_X);
class="kw">public class="kw">static class="kw">final Rotation[] VALUES = values();
class="kw">public class="kw">static class="kw">final Rotation[] NORMAL = new Rotation[]{None, Ninety, OneEighty, TwoSeventy};
class="kw">public class="kw">static class="kw">final Codec<Rotation> CODEC = new EnumCodec<>(Rotation.class);
class="kw">private class="kw">final int degrees;
class="kw">private class="kw">final com.hypixel.hytale.protocol.Rotation packet;
class="kw">private class="kw">final Axis axisOfAlignment;
class="kw">private class="kw">final Vector3ic axisDirection;
Rotation(int nullxx, com.hypixel.hytale.protocol.Rotation nullxxx, Axis nullxxxx, Vector3ic nullxxxxx) {
this.degrees = nullxx;
this.packet = nullxxx;
this.axisOfAlignment = nullxxxx;
this.axisDirection = nullxxxxx;
}
class="kw">public com.hypixel.hytale.protocol.Rotation toPacket() {
class="kw">return this.packet;
}
class="kw">public int getDegrees() {
class="kw">return this.degrees;
}
class="kw">public double getRadians() {
class="kw">return Math.toRadians(this.degrees);
}
class="kw">public Axis getAxisOfAlignment() {
class="kw">return this.axisOfAlignment;
}
class="kw">public Vector3ic getAxisDirection() {
class="kw">return this.axisDirection;
}
@Nonnull
class="kw">public Rotation flip() {
class="kw">return this.add(OneEighty);
}
@Nonnull
class="kw">public Rotation flip(Axis var1) {
class="kw">return this.axisOfAlignment != var1 ? this : this.flip();
}
@Nonnull
class="kw">public Rotation subtract(@Nullable Rotation var1) {
class="kw">return var1 == null ? this : ofDegrees(this.degrees - var1.degrees);
}
@Nonnull
class="kw">public Rotation add(@Nullable Rotation var1) {
class="kw">return var1 == null ? this : ofDegrees(this.degrees + var1.degrees);
}
@Nonnull
class="kw">public Vector3i rotatePitch(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return this.rotateX(var1, var2);
}
@Nonnull
class="kw">public Vector3f rotatePitch(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return this.rotateX(var1, var2);
}
class="kw">public int rotateX(int var1) {
class="kw">return class="kw">switch (this) {
case None -> var1;
case Ninety -> FillerBlockUtil.pack(FillerBlockUtil.unpackX(var1), -FillerBlockUtil.unpackZ(var1), FillerBlockUtil.unpackY(var1));
case OneEighty -> FillerBlockUtil.pack(FillerBlockUtil.unpackX(var1), -FillerBlockUtil.unpackY(var1), -FillerBlockUtil.unpackZ(var1));
case TwoSeventy -> FillerBlockUtil.pack(FillerBlockUtil.unpackX(var1), FillerBlockUtil.unpackZ(var1), -FillerBlockUtil.unpackY(var1));
};
}
@Nonnull
class="kw">public Vector3i rotateX(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.x, -var1.z, var1.y);
case OneEighty -> var2.set(var1.x, -var1.y, -var1.z);
case TwoSeventy -> var2.set(var1.x, var1.z, -var1.y);
};
}
@Nonnull
class="kw">public Vector3f rotateX(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.x, -var1.z, var1.y);
case OneEighty -> var2.set(var1.x, -var1.y, -var1.z);
case TwoSeventy -> var2.set(var1.x, var1.z, -var1.y);
};
}
@Nonnull
class="kw">public Vector3d rotateX(@Nonnull Vector3d var1, @Nonnull Vector3d var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.x, -var1.z, var1.y);
case OneEighty -> var2.set(var1.x, -var1.y, -var1.z);
case TwoSeventy -> var2.set(var1.x, var1.z, -var1.y);
};
}
@Nonnull
class="kw">public Vector3i rotateYaw(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return this.rotateY(var1, var2);
}
@Nonnull
class="kw">public Vector3f rotateYaw(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return this.rotateY(var1, var2);
}
class="kw">public int rotateY(int var1) {
class="kw">return class="kw">switch (this) {
case None -> var1;
case Ninety -> FillerBlockUtil.pack(FillerBlockUtil.unpackZ(var1), FillerBlockUtil.unpackY(var1), -FillerBlockUtil.unpackX(var1));
case OneEighty -> FillerBlockUtil.pack(-FillerBlockUtil.unpackX(var1), FillerBlockUtil.unpackY(var1), -FillerBlockUtil.unpackZ(var1));
case TwoSeventy -> FillerBlockUtil.pack(-FillerBlockUtil.unpackZ(var1), FillerBlockUtil.unpackY(var1), FillerBlockUtil.unpackX(var1));
};
}
@Nonnull
class="kw">public Vector3i rotateY(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.z, var1.y, -var1.x);
case OneEighty -> var2.set(-var1.x, var1.y, -var1.z);
case TwoSeventy -> var2.set(-var1.z, var1.y, var1.x);
};
}
@Nonnull
class="kw">public Vector3f rotateY(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.z, var1.y, -var1.x);
case OneEighty -> var2.set(-var1.x, var1.y, -var1.z);
case TwoSeventy -> var2.set(-var1.z, var1.y, var1.x);
};
}
@Nonnull
class="kw">public Vector3d rotateY(@Nonnull Vector3d var1, @Nonnull Vector3d var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(var1.z, var1.y, -var1.x);
case OneEighty -> var2.set(-var1.x, var1.y, -var1.z);
case TwoSeventy -> var2.set(-var1.z, var1.y, var1.x);
};
}
@Nonnull
class="kw">private Vector3i rotateRoll(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return this.rotateZ(var1, var2);
}
@Nonnull
class="kw">private Vector3f rotateRoll(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return this.rotateZ(var1, var2);
}
class="kw">public int rotateZ(int var1) {
class="kw">return class="kw">switch (this) {
case None -> var1;
case Ninety -> FillerBlockUtil.pack(-FillerBlockUtil.unpackY(var1), FillerBlockUtil.unpackX(var1), FillerBlockUtil.unpackZ(var1));
case OneEighty -> FillerBlockUtil.pack(-FillerBlockUtil.unpackX(var1), -FillerBlockUtil.unpackY(var1), FillerBlockUtil.unpackZ(var1));
case TwoSeventy -> FillerBlockUtil.pack(FillerBlockUtil.unpackY(var1), -FillerBlockUtil.unpackX(var1), FillerBlockUtil.unpackZ(var1));
};
}
@Nonnull
class="kw">public Vector3i rotateZ(@Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(-var1.y, var1.x, var1.z);
case OneEighty -> var2.set(-var1.x, -var1.y, var1.z);
case TwoSeventy -> var2.set(var1.y, -var1.x, var1.z);
};
}
@Nonnull
class="kw">public Vector3f rotateZ(@Nonnull Vector3f var1, @Nonnull Vector3f var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(-var1.y, var1.x, var1.z);
case OneEighty -> var2.set(-var1.x, -var1.y, var1.z);
case TwoSeventy -> var2.set(var1.y, -var1.x, var1.z);
};
}
@Nonnull
class="kw">public Vector3d rotateZ(@Nonnull Vector3d var1, @Nonnull Vector3d var2) {
class="kw">return class="kw">switch (this) {
case None -> var2.set(var1);
case Ninety -> var2.set(-var1.y, var1.x, var1.z);
case OneEighty -> var2.set(-var1.x, -var1.y, var1.z);
case TwoSeventy -> var2.set(var1.y, -var1.x, var1.z);
};
}
@Nonnull
class="kw">public class="kw">static Rotation ofDegrees(int var0) {
var0 = Math.floorMod(var0, 360);
class="kw">return class="kw">switch (var0) {
case 0 -> None;
case 90 -> Ninety;
case 180 -> OneEighty;
case 270 -> TwoSeventy;
class="kw">default -> throw new IllegalArgumentException("Rotation degrees value " + var0 + " cannot be mapped to type Rotation");
};
}
class="kw">public class="kw">static Rotation closestOfDegrees(float var0) {
if (var0 < 0.0F) {
var0 = var0 % 360.0F + 360.0F;
}
class="kw">return VALUES[MathUtil.fastRound(var0 / 90.0F) % VALUES.length];
}
@Nonnull
class="kw">public class="kw">static Rotation valueOf(@Nonnull com.hypixel.hytale.protocol.Rotation var0) {
class="kw">return class="kw">switch (var0) {
case None -> None;
case Ninety -> Ninety;
case OneEighty -> OneEighty;
case TwoSeventy -> TwoSeventy;
};
}
@Nonnull
class="kw">public class="kw">static Vector3i rotate(@Nonnull Vector3ic var0, @Nonnull Rotation var1, @Nonnull Rotation var2) {
Vector3i var3 = new Vector3i(var0);
var2.rotatePitch(var3, var3);
var1.rotateYaw(var3, var3);
class="kw">return var3;
}
@Nonnull
class="kw">public class="kw">static Vector3i rotate(@Nonnull Vector3ic var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
Vector3i var4 = new Vector3i(var0);
applyRotationTo(var4, var1, var2, var3);
class="kw">return var4;
}
@Nonnull
class="kw">public class="kw">static Vector3f rotate(@Nonnull Vector3fc var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
Vector3f var4 = new Vector3f(var0);
var3.rotateZ(var4, var4);
var2.rotateX(var4, var4);
var1.rotateY(var4, var4);
class="kw">return var4;
}
@Nonnull
class="kw">public class="kw">static Vector3d rotate(@Nonnull Vector3dc var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
Vector3d var4 = new Vector3d(var0);
var3.rotateZ(var4, var4);
var2.rotateX(var4, var4);
var1.rotateY(var4, var4);
class="kw">return var4;
}
class="kw">public class="kw">static void applyRotationTo(@Nonnull Vector3i var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var3.rotateZ(var0, var0);
var2.rotateX(var0, var0);
var1.rotateY(var0, var0);
}
class="kw">public class="kw">static void applyRotationTo(@Nonnull Vector3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var3.rotateZ(var0, var0);
var2.rotateX(var0, var0);
var1.rotateY(var0, var0);
}
class="kw">public class="kw">static void applyRotationTo(@Nonnull Rotation3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
Rotation3f var4 = new Rotation3f((float)var2.getRadians(), (float)var1.getRadians(), (float)var3.getRadians());
var4.mul(var0.getQuaternion(new Quaterniond()), var0);
}
class="kw">public class="kw">static void applyRotationTo(@Nonnull Vector3d var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var3.rotateZ(var0, var0);
var2.rotateX(var0, var0);
var1.rotateY(var0, var0);
}
class="kw">public class="kw">static void undoRotationTo(@Nonnull Vector3i var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var1.toInverse().rotateY(var0, var0);
var2.toInverse().rotateX(var0, var0);
var3.toInverse().rotateZ(var0, var0);
}
class="kw">public class="kw">static void undoRotationTo(@Nonnull Vector3f var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var1.toInverse().rotateY(var0, var0);
var2.toInverse().rotateX(var0, var0);
var3.toInverse().rotateZ(var0, var0);
}
class="kw">public class="kw">static void undoRotationTo(@Nonnull Vector3d var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Rotation var3) {
var1.toInverse().rotateY(var0, var0);
var2.toInverse().rotateX(var0, var0);
var3.toInverse().rotateZ(var0, var0);
}
class="kw">public Rotation toInverse() {
class="kw">return class="kw">switch (this) {
case None -> None;
case Ninety -> TwoSeventy;
case OneEighty -> OneEighty;
case TwoSeventy -> Ninety;
};
}
}