MirrorAxis enum
Пакет: com.hypixel.hytale.server.core.universe.world.connectedblocks
Файл: com/hypixel/hytale/server/core/universe/world/connectedblocks/PatternRotationDefinition.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
NONE,
X, |
Z |
Исходный код
Показать/скрыть
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() {
}
}
}