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);
    }
}

引用的其他类