ToggleKeyMapping.java
net.minecraft.client.ToggleKeyMapping
信息
- 全限定名:net.minecraft.client.ToggleKeyMapping
- 类型:public class
- 包:net.minecraft.client
- 源码路径:src/main/java/net/minecraft/client/ToggleKeyMapping.java
- 起始行号:L9
- 继承:KeyMapping
- 职责:
TODO
字段/常量
-
needsToggle- 类型:
BooleanSupplier - 修饰符:
private final - 源码定位:
L10 - 说明:
TODO
- 类型:
-
releasedByScreenWhenDown- 类型:
boolean - 修饰符:
private - 源码定位:
L11 - 说明:
TODO
- 类型:
-
shouldRestore- 类型:
boolean - 修饰符:
private final - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ToggleKeyMapping(String name, int value, KeyMapping.Category category, BooleanSupplier needsToggle, boolean shouldRestore) @ L14
- 构造器名:ToggleKeyMapping
- 源码定位:L14
- 修饰符:public
参数:
- name: String
- value: int
- category: KeyMapping.Category
- needsToggle: BooleanSupplier
- shouldRestore: boolean
说明:
TODO
public ToggleKeyMapping(String name, InputConstants.Type type, int value, KeyMapping.Category category, BooleanSupplier needsToggle, boolean shouldRestore) @ L18
- 构造器名:ToggleKeyMapping
- 源码定位:L18
- 修饰符:public
参数:
- name: String
- type: InputConstants.Type
- value: int
- category: KeyMapping.Category
- needsToggle: BooleanSupplier
- shouldRestore: boolean
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected boolean shouldSetOnIngameFocus() @ L24
- 方法名:shouldSetOnIngameFocus
- 源码定位:L24
- 返回类型:boolean
- 修饰符:protected
参数:
- 无
说明:
TODO
public void setDown(boolean down) @ L29
- 方法名:setDown
- 源码定位:L29
- 返回类型:void
- 修饰符:public
参数:
- down: boolean
说明:
TODO
protected void release() @ L40
- 方法名:release
- 源码定位:L40
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
public boolean shouldRestoreStateOnScreenClosed() @ L49
- 方法名:shouldRestoreStateOnScreenClosed
- 源码定位:L49
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
protected void reset() @ L58
- 方法名:reset
- 源码定位:L58
- 返回类型:void
- 修饰符:protected
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ToggleKeyMapping extends KeyMapping {
private final BooleanSupplier needsToggle;
private boolean releasedByScreenWhenDown;
private final boolean shouldRestore;
public ToggleKeyMapping(String name, int value, KeyMapping.Category category, BooleanSupplier needsToggle, boolean shouldRestore) {
this(name, InputConstants.Type.KEYSYM, value, category, needsToggle, shouldRestore);
}
public ToggleKeyMapping(String name, InputConstants.Type type, int value, KeyMapping.Category category, BooleanSupplier needsToggle, boolean shouldRestore) {
super(name, type, value, category);
this.needsToggle = needsToggle;
this.shouldRestore = shouldRestore;
}
@Override
protected boolean shouldSetOnIngameFocus() {
return super.shouldSetOnIngameFocus() && !this.needsToggle.getAsBoolean();
}
@Override
public void setDown(boolean down) {
if (this.needsToggle.getAsBoolean()) {
if (down) {
super.setDown(!this.isDown());
}
} else {
super.setDown(down);
}
}
@Override
protected void release() {
if (this.needsToggle.getAsBoolean() && this.isDown() || this.releasedByScreenWhenDown) {
this.releasedByScreenWhenDown = true;
}
this.reset();
}
public boolean shouldRestoreStateOnScreenClosed() {
boolean shouldRestore = this.shouldRestore
&& this.needsToggle.getAsBoolean()
&& this.key.getType() == InputConstants.Type.KEYSYM
&& this.releasedByScreenWhenDown;
this.releasedByScreenWhenDown = false;
return shouldRestore;
}
protected void reset() {
super.setDown(false);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/继承
- 引用位置: