Rotate class
Пакет: com.hypixel.hytale.builtin.buildertools.tooloperations.transform
Файл: com/hypixel/hytale/builtin/buildertools/tooloperations/transform/Rotate.java
implements: Transform
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Transform |
X_90 |
|
|
var2 |
|
int |
var3 |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var2 = 0; var2 < this.rotations; var2++) |
static |
Transform |
forAxisAndAngleTransform forAxisAndAngle(BrushAxis var0, Rotation var1) |
static |
Transform |
forDirectionTransform forDirection(@Nonnull Vector3i var0, Rotation var1) |
|
|
if if(this.rotations == 1) |
public |
Rotate |
inverseRotate inverse() |
static |
Transform |
selectRotationTransform selectRotation(Rotation var0, Transform var1, Transform var2, Transform var3, Transform var4) |
abstract |
return |
selectRotationreturn selectRotation(var1, FACING_WEST, FACING_NORTH, FACING_EAST, FACING_SOUTH) |
abstract |
return |
selectRotationreturn selectRotation(var1, FACING_EAST, FACING_SOUTH, FACING_WEST, FACING_NORTH) |
abstract |
return |
selectRotationreturn selectRotation(var1, FACING_NORTH, FACING_EAST, FACING_SOUTH, FACING_WEST) |
|
return |
switchreturn switch(var0) |
|
return |
switchreturn switch(var0) |
abstract |
|
this this(var1, 90) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.tooloperations.transform;
class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.protocol.Rotation;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BrushAxis;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class Rotate class="kw">implements Transform {
class="kw">public class="kw">static class="kw">final Transform X_90 = new Rotate(Axis.X, 90);
class="kw">public class="kw">static class="kw">final Transform X_180 = new Rotate(Axis.X, 180);
class="kw">public class="kw">static class="kw">final Transform X_270 = new Rotate(Axis.X, 270);
class="kw">public class="kw">static class="kw">final Transform Y_90 = new Rotate(Axis.Y, 90);
class="kw">public class="kw">static class="kw">final Transform Y_180 = new Rotate(Axis.Y, 180);
class="kw">public class="kw">static class="kw">final Transform Y_270 = new Rotate(Axis.Y, 270);
class="kw">public class="kw">static class="kw">final Transform Z_90 = new Rotate(Axis.Z, 90);
class="kw">public class="kw">static class="kw">final Transform Z_180 = new Rotate(Axis.Z, 180);
class="kw">public class="kw">static class="kw">final Transform Z_270 = new Rotate(Axis.Z, 270);
class="kw">public class="kw">static class="kw">final Transform FACING_NORTH = X_90;
class="kw">public class="kw">static class="kw">final Transform FACING_EAST = Z_90;
class="kw">public class="kw">static class="kw">final Transform FACING_SOUTH = X_90.then(Y_180);
class="kw">public class="kw">static class="kw">final Transform FACING_WEST = Z_90.then(Y_180);
class="kw">private class="kw">final Axis axis;
class="kw">private class="kw">final int rotations;
class="kw">public Rotate(Axis var1) {
this(var1, 90);
}
class="kw">public Rotate(Axis var1, int var2) {
var2 = Math.floorMod(var2, 360);
int var3 = var2 / 90;
this.axis = var1;
this.rotations = var3;
}
@Override
class="kw">public void apply(@Nonnull Vector3i var1) {
if (this.rotations == 1) {
this.axis.rotate(var1);
} else if (this.rotations > 1) {
for (int var2 = 0; var2 < this.rotations; var2++) {
this.axis.rotate(var1);
}
}
}
class="kw">public Rotate inverse() {
class="kw">return new Rotate(this.axis, (4 - this.rotations) * 90);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Rotate{axis=" + this.axis + ", rotations=" + this.rotations + "}";
}
class="kw">public class="kw">static Transform forDirection(@Nonnull Vector3i var0, Rotation var1) {
if (var0.x() < 0) {
class="kw">return selectRotation(var1, FACING_WEST, FACING_NORTH, FACING_EAST, FACING_SOUTH);
} else if (var0.x() > 0) {
class="kw">return selectRotation(var1, FACING_EAST, FACING_SOUTH, FACING_WEST, FACING_NORTH);
} else if (var0.z() < 0) {
class="kw">return selectRotation(var1, FACING_NORTH, FACING_EAST, FACING_SOUTH, FACING_WEST);
} else {
class="kw">return var0.z() > 0 ? selectRotation(var1, FACING_SOUTH, FACING_WEST, FACING_NORTH, FACING_EAST) : NONE;
}
}
class="kw">public class="kw">static Transform forAxisAndAngle(BrushAxis var0, Rotation var1) {
class="kw">return class="kw">switch (var0) {
case X -> selectRotation(var1, NONE, X_90, X_180, X_270);
case Y -> selectRotation(var1, NONE, Y_90, Y_180, Y_270);
case Z -> selectRotation(var1, NONE, Z_90, Z_180, Z_270);
case None, Auto -> NONE;
};
}
class="kw">private class="kw">static Transform selectRotation(Rotation var0, Transform var1, Transform var2, Transform var3, Transform var4) {
class="kw">return class="kw">switch (var0) {
case None -> var1;
case Ninety -> var2;
case OneEighty -> var3;
case TwoSeventy -> var4;
};
}
}