PatternRotationDefinition class

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

Файл: com/hypixel/hytale/server/core/universe/world/connectedblocks/PatternRotationDefinition.java

Поля (4)

МодификаторыТипИмя
final BuilderCodec<PatternRotationDefinition> CODEC
NONE, X, Z
private final int[] enabledIndexes
IntList var1

Методы (10)

МодификаторыВозвратСигнатура
MirrorAxis MirrorAxis()
private int[] computeEnabledprivate int[] computeEnabled()
for for(Rotation var7 : Rotation.VALUES)
public Pair<Rotation, PatternRotationDefinition.MirrorAxis> getpublic Pair<Rotation, PatternRotationDefinition.MirrorAxis> get(int var1)
if if(PatternRotationDefinition.this.isCardinallyRotatable)
if if(PatternRotationDefinition.this.isMirrorX)
if if(PatternRotationDefinition.this.isCardinallyRotatable)
if if(PatternRotationDefinition.this.isMirrorZ)
if if(PatternRotationDefinition.this.isCardinallyRotatable)
public int sizepublic int size()

Исходный код

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

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.server.core.asset.type.blocktype.config.Rotation;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import it.unimi.dsi.fastutil.ints.IntArrayList;
class="kw">import it.unimi.dsi.fastutil.ints.IntList;
class="kw">import java.util.AbstractList;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PatternRotationDefinition {
   class="kw">public class="kw">static class="kw">final BuilderCodec<PatternRotationDefinition> CODEC = BuilderCodec.builder(PatternRotationDefinition.class, PatternRotationDefinition::new)
      .append(
         new KeyedCodec<>("IsCardinallyRotatable", Codec.BOOLEAN, false), (var0, var1) -> var0.isCardinallyRotatable = var1, var0 -> var0.isCardinallyRotatable
      )
      .add()
      .append(new KeyedCodec<>("MirrorZ", Codec.BOOLEAN, false), (var0, var1) -> var0.isMirrorZ = var1, var0 -> var0.isMirrorZ)
      .add()
      .append(new KeyedCodec<>("MirrorX", Codec.BOOLEAN, false), (var0, var1) -> var0.isMirrorX = var1, var0 -> var0.isMirrorX)
      .add()
      .build();
   @Nonnull
   class="kw">public class="kw">static class="kw">final PatternRotationDefinition DEFAULT = new PatternRotationDefinition();
   class="kw">private boolean isCardinallyRotatable;
   class="kw">private boolean isMirrorZ;
   class="kw">private boolean isMirrorX;
   class="kw">public class="kw">static class="kw">final List<Pair<Rotation, PatternRotationDefinition.MirrorAxis>> ROTATIONS = new ArrayList<>();

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

   @Nonnull
   class="kw">public List<Pair<Rotation, PatternRotationDefinition.MirrorAxis>> getRotations() {
      class="kw">return new AbstractList<Pair<Rotation, PatternRotationDefinition.MirrorAxis>>() {
         class="kw">private class="kw">final int[] enabledIndexes = this.computeEnabled();

         class="kw">private int[] computeEnabled() {
            IntList var1 = new IntArrayList();
            var1.add(0);
            if (PatternRotationDefinition.this.isCardinallyRotatable) {
               var1.addAll(IntList.of(1, 2, 3));
            }

            if (PatternRotationDefinition.this.isMirrorX) {
               var1.add(4);
               if (PatternRotationDefinition.this.isCardinallyRotatable) {
                  var1.addAll(IntList.of(5, 6, 7));
               }
            }

            if (PatternRotationDefinition.this.isMirrorZ) {
               var1.add(8);
               if (PatternRotationDefinition.this.isCardinallyRotatable) {
                  var1.addAll(IntList.of(9, 10, 11));
               }
            }

            class="kw">return var1.toIntArray();
         }

         class="kw">public Pair<Rotation, PatternRotationDefinition.MirrorAxis> get(int var1) {
            class="kw">return PatternRotationDefinition.ROTATIONS.get(this.enabledIndexes[var1]);
         }

         @Override
         class="kw">public int size() {
            class="kw">return this.enabledIndexes.length;
         }
      };
   }

   class="kw">static {
      for (PatternRotationDefinition.MirrorAxis var3 : PatternRotationDefinition.MirrorAxis.values()) {
         for (Rotation var7 : Rotation.VALUES) {
            ROTATIONS.add(Pair.of(var7, var3));
         }
      }
   }

   class="kw">public enum MirrorAxis {
      NONE,
      X,
      Z;

      MirrorAxis() {
      }
   }
}