打开数学计算器

Just Enough Calculation 第二个也是最后一个热键,用于打开内置的 BigDecimal 计算器界面。 本 mod 全仓库只有这两个 KeyBinding,没有第三个。

基本信息

属性 值
字段 JecaGui.keyOpenGuiMath(public static final)
本地化键 jecalculation.key.gui_math
英文显示名 Open math calculator
中文显示名 打开数学计算器
分类 jecalculation.key.category → Just Enough Calculation
默认按键 Keyboard.KEY_NONE(未绑定)
注册代码 ClientRegistry.registerKeyBinding(keyOpenGuiMath)

源码:

public static final KeyBinding keyOpenGuiMath = new KeyBinding(
    "jecalculation.key.gui_math",
    KEY_NONE,
    "jecalculation.key.category");

与 打开合成计算器 一样默认是 KEY_NONE。本 mod 不占用 任何默认键位,玩家可在按键设置里自由绑定。

触发流程

玩家按下被绑定的键
  → FMLBusEventHandler.onKey(InputEvent.KeyInputEvent event)
  → JecaGui.onKey()
  → if (keyOpenGuiMath.isPressed()) JecaGui.openGuiMath(false)
  → JecaGui.displayGui(true, true, false, new GuiMath())

JecaGui.onKey() 的完整实现只有两行判断,两个热键都靠它:

public static void onKey() {
    if (keyOpenGuiCraft.isPressed()) JecaGui.openGuiCraft(false);
    if (keyOpenGuiMath.isPressed()) JecaGui.openGuiMath(false);
}

界面能做什么

数学计算器与合成计算器共用同一套「按值取标签」逻辑,但走的是完全独立的数据模型 RecordMath(BigDecimal,不涉及配方和物品)。详见 数学显示模式——其中 Operator 5 个取值就是 这个界面上的五个运算按钮。

与指令的关系

/jeca math 子命令调用 JecaGui.openGuiMath(true)(scheduled = true), 权限等级 0。这是默认未绑定按键时打开本界面的途径。见 指令。

相关条目