BlockRotationUtil class

Пакет: com.hypixel.hytale.server.core.universe.world.chunk

Файл: com/hypixel/hytale/server/core/universe/world/chunk/BlockRotationUtil.java

Поля (19)

МодификаторыТипИмя
final int[][][] LOCAL_FLIP_CORRECTIONS
break
break
var0
var0
int var2
Rotation var3
var3
var3
int var3
Rotation var4
var4
var4
int var4
Rotation var5
var5
var5
RotationTuple var7
var7

Методы (9)

МодификаторыВозвратСигнатура
static int getFlippedFillerint getFlippedFiller(int var0, @Nonnull Axis var1)
static int getRotatedFillerint getRotatedFiller(int var0, @Nonnull Axis var1, Rotation var2)
static int getRotatedFillerint getRotatedFiller(int var0, @Nonnull RotationTuple var1)
if if(var1 == null)
if if(var7 == null)
if if(var6)
switch switch(var2)
return switchreturn switch(var1)
return switchreturn switch(var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.chunk;

class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockFlipType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.Rotation;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.VariantRotation;
class="kw">import com.hypixel.hytale.server.core.util.FillerBlockUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BlockRotationUtil {
   class="kw">private class="kw">static class="kw">final int[][][] LOCAL_FLIP_CORRECTIONS = new int[][][]{
      {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}}, {{0, 0, -1}, {0, 1, 0}, {-1, 0, 0}}, {{-1, 0, 0}, {0, 1, 0}, {0, 0, 1}}
   };

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

   @Nullable
   class="kw">public class="kw">static RotationTuple getFlipped(@Nonnull RotationTuple var0, @Nullable BlockFlipType var1, @Nonnull Axis var2) {
      if (var1 == null) {
         Rotation var3 = var0.yaw();
         Rotation var4 = var0.pitch();
         Rotation var5 = var0.roll();
         class="kw">switch (var2) {
            case X:
               var3 = var3.toInverse();
               var5 = var5.toInverse();
               break;
            case Y:
               var4 = var4.add(Rotation.OneEighty);
               var5 = var5.toInverse();
               break;
            case Z:
               var3 = var3.toInverse();
               var4 = var4.toInverse();
         }

         class="kw">return RotationTuple.of(var3, var4, var5);
      } else {
         class="kw">return RotationTuple.flip(var0, var1, var2, LOCAL_FLIP_CORRECTIONS);
      }
   }

   @Nullable
   class="kw">public class="kw">static RotationTuple getRotated(@Nonnull RotationTuple var0, @Nonnull Axis var1, Rotation var2, @Nonnull VariantRotation var3) {
      class="kw">return get(var0.yaw(), var0.pitch(), var0.roll(), var1, var2, var3, false);
   }

   @Nullable
   class="kw">private class="kw">static RotationTuple get(
      @Nonnull Rotation var0, @Nonnull Rotation var1, @Nonnull Rotation var2, @Nonnull Axis var3, Rotation var4, @Nonnull VariantRotation var5, boolean var6
   ) {
      RotationTuple var7 = class="kw">switch (var3) {
         case X -> var5.rotateX(RotationTuple.of(var0, var1), var4);
         case Y -> var5.verify(RotationTuple.of(var0.add(var4), var1));
         case Z -> var5.rotateZ(RotationTuple.of(var0, var1), var4);
      };
      if (var7 == null) {
         class="kw">return null;
      }

      if (var6) {
         var7 = RotationTuple.of(var7.yaw(), var1);
      }

      class="kw">return var7;
   }

   class="kw">public class="kw">static int getFlippedFiller(int var0, @Nonnull Axis var1) {
      int var2 = FillerBlockUtil.unpackX(var0);
      int var3 = FillerBlockUtil.unpackY(var0);
      int var4 = FillerBlockUtil.unpackZ(var0);

      class="kw">return class="kw">switch (var1) {
         case X -> FillerBlockUtil.pack(-var2, var3, var4);
         case Y -> FillerBlockUtil.pack(var2, -var3, var4);
         case Z -> FillerBlockUtil.pack(var2, var3, -var4);
      };
   }

   class="kw">public class="kw">static int getRotatedFiller(int var0, @Nonnull Axis var1, Rotation var2) {
      class="kw">return class="kw">switch (var1) {
         case X -> var2.rotateX(var0);
         case Y -> var2.rotateY(var0);
         case Z -> var2.rotateZ(var0);
      };
   }

   class="kw">public class="kw">static int getRotatedFiller(int var0, @Nonnull RotationTuple var1) {
      var0 = getRotatedFiller(var0, Axis.Z, var1.roll());
      var0 = getRotatedFiller(var0, Axis.X, var1.pitch());
      class="kw">return getRotatedFiller(var0, Axis.Y, var1.yaw());
   }
}