50 lines
1.4 KiB
Java
50 lines
1.4 KiB
Java
|
package net.minecraft.client.gui.navigation;
|
||
|
|
||
|
import it.unimi.dsi.fastutil.ints.IntComparator;
|
||
|
import net.minecraftforge.api.distmarker.Dist;
|
||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||
|
|
||
|
@OnlyIn(Dist.CLIENT)
|
||
|
public enum ScreenDirection {
|
||
|
UP,
|
||
|
DOWN,
|
||
|
LEFT,
|
||
|
RIGHT;
|
||
|
|
||
|
private final IntComparator coordinateValueComparator = (p_265081_, p_265641_) -> p_265081_ == p_265641_ ? 0 : (this.isBefore(p_265081_, p_265641_) ? -1 : 1);
|
||
|
|
||
|
public ScreenAxis getAxis() {
|
||
|
return switch (this) {
|
||
|
case UP, DOWN -> ScreenAxis.VERTICAL;
|
||
|
case LEFT, RIGHT -> ScreenAxis.HORIZONTAL;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public ScreenDirection getOpposite() {
|
||
|
return switch (this) {
|
||
|
case UP -> DOWN;
|
||
|
case DOWN -> UP;
|
||
|
case LEFT -> RIGHT;
|
||
|
case RIGHT -> LEFT;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public boolean isPositive() {
|
||
|
return switch (this) {
|
||
|
case UP, LEFT -> false;
|
||
|
case DOWN, RIGHT -> true;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public boolean isAfter(int p_265461_, int p_265553_) {
|
||
|
return this.isPositive() ? p_265461_ > p_265553_ : p_265553_ > p_265461_;
|
||
|
}
|
||
|
|
||
|
public boolean isBefore(int p_265215_, int p_265040_) {
|
||
|
return this.isPositive() ? p_265215_ < p_265040_ : p_265040_ < p_265215_;
|
||
|
}
|
||
|
|
||
|
public IntComparator coordinateValueComparator() {
|
||
|
return this.coordinateValueComparator;
|
||
|
}
|
||
|
}
|