Code/net/minecraft/core/AxisCycle.java

82 lines
2.7 KiB
Java
Raw Permalink Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.core;
public enum AxisCycle {
NONE {
@Override
public int cycle(int p_121810_, int p_121811_, int p_121812_, Direction.Axis p_121813_) {
return p_121813_.choose(p_121810_, p_121811_, p_121812_);
}
@Override
public double cycle(double p_175242_, double p_175243_, double p_175244_, Direction.Axis p_175245_) {
return p_175245_.choose(p_175242_, p_175243_, p_175244_);
}
@Override
public Direction.Axis cycle(Direction.Axis p_121815_) {
return p_121815_;
}
@Override
public AxisCycle inverse() {
return this;
}
},
FORWARD {
@Override
public int cycle(int p_121821_, int p_121822_, int p_121823_, Direction.Axis p_121824_) {
return p_121824_.choose(p_121823_, p_121821_, p_121822_);
}
@Override
public double cycle(double p_175247_, double p_175248_, double p_175249_, Direction.Axis p_175250_) {
return p_175250_.choose(p_175249_, p_175247_, p_175248_);
}
@Override
public Direction.Axis cycle(Direction.Axis p_121826_) {
return AXIS_VALUES[Math.floorMod(p_121826_.ordinal() + 1, 3)];
}
@Override
public AxisCycle inverse() {
return BACKWARD;
}
},
BACKWARD {
@Override
public int cycle(int p_121832_, int p_121833_, int p_121834_, Direction.Axis p_121835_) {
return p_121835_.choose(p_121833_, p_121834_, p_121832_);
}
@Override
public double cycle(double p_175252_, double p_175253_, double p_175254_, Direction.Axis p_175255_) {
return p_175255_.choose(p_175253_, p_175254_, p_175252_);
}
@Override
public Direction.Axis cycle(Direction.Axis p_121837_) {
return AXIS_VALUES[Math.floorMod(p_121837_.ordinal() - 1, 3)];
}
@Override
public AxisCycle inverse() {
return FORWARD;
}
};
public static final Direction.Axis[] AXIS_VALUES = Direction.Axis.values();
public static final AxisCycle[] VALUES = values();
public abstract int cycle(int p_121794_, int p_121795_, int p_121796_, Direction.Axis p_121797_);
public abstract double cycle(double p_175236_, double p_175237_, double p_175238_, Direction.Axis p_175239_);
public abstract Direction.Axis cycle(Direction.Axis p_121798_);
public abstract AxisCycle inverse();
public static AxisCycle between(Direction.Axis p_121800_, Direction.Axis p_121801_) {
return VALUES[Math.floorMod(p_121801_.ordinal() - p_121800_.ordinal(), 3)];
}
}