ScrollWheelHandler.java
net.minecraft.client.ScrollWheelHandler
信息
- 全限定名:net.minecraft.client.ScrollWheelHandler
- 类型:public class
- 包:net.minecraft.client
- 源码路径:src/main/java/net/minecraft/client/ScrollWheelHandler.java
- 起始行号:L8
- 职责:
TODO
字段/常量
-
accumulatedScrollX- 类型:
double - 修饰符:
private - 源码定位:
L9 - 说明:
TODO
- 类型:
-
accumulatedScrollY- 类型:
double - 修饰符:
private - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public Vector2i onMouseScroll(double scaledXScrollOffset, double scaledYScrollOffset) @ L12
- 方法名:onMouseScroll
- 源码定位:L12
- 返回类型:Vector2i
- 修饰符:public
参数:
- scaledXScrollOffset: double
- scaledYScrollOffset: double
说明:
TODO
public static int getNextScrollWheelSelection(double wheel, int currentSelected, int limit) @ L34
- 方法名:getNextScrollWheelSelection
- 源码定位:L34
- 返回类型:int
- 修饰符:public static
参数:
- wheel: double
- currentSelected: int
- limit: int
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ScrollWheelHandler {
private double accumulatedScrollX;
private double accumulatedScrollY;
public Vector2i onMouseScroll(double scaledXScrollOffset, double scaledYScrollOffset) {
if (this.accumulatedScrollX != 0.0 && Math.signum(scaledXScrollOffset) != Math.signum(this.accumulatedScrollX)) {
this.accumulatedScrollX = 0.0;
}
if (this.accumulatedScrollY != 0.0 && Math.signum(scaledYScrollOffset) != Math.signum(this.accumulatedScrollY)) {
this.accumulatedScrollY = 0.0;
}
this.accumulatedScrollX += scaledXScrollOffset;
this.accumulatedScrollY += scaledYScrollOffset;
int wheelX = (int)this.accumulatedScrollX;
int wheelY = (int)this.accumulatedScrollY;
if (wheelX == 0 && wheelY == 0) {
return new Vector2i(0, 0);
} else {
this.accumulatedScrollX -= wheelX;
this.accumulatedScrollY -= wheelY;
return new Vector2i(wheelX, wheelY);
}
}
public static int getNextScrollWheelSelection(double wheel, int currentSelected, int limit) {
int step = (int)Math.signum(wheel);
currentSelected -= step;
currentSelected = Math.max(-1, currentSelected);
while (currentSelected < 0) {
currentSelected += limit;
}
while (currentSelected >= limit) {
currentSelected -= limit;
}
return currentSelected;
}
}引用的其他类
- 无