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;
      };
   }
}