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() {
}
}
}