MouseTweaks

[!INFO] Git Commit: 6e88f7d | Updated: 2026-09-10

MouseTweaks 是一个纯客户端的 Forge 1.7.10(GTNH fork)物品栏操作增强 mod, 作者 YaLTeR,modid MouseTweaks,硬依赖 GTNHLib >= [0.9.27,)。 按作者的说法,它「给鼠标按钮加上各种附加功能」:替换原版右键拖拽、新增两种左键拖拽、 以及用滚轮在两个背包之间快速搬运物品。

它不注册任何方块、物品、实体、维度、附魔、群系、结构、成就或热键, 全部内容就是 7 个配置项 + 鼠标/Shift 的输入重定向 + 容器兼容层。 运行期只有一个客户端事件钩子:TickEvent.RenderTickEvent 的 START 阶段。

三大 tweak:

  • 右键拖拽替换(RMBTweak)——与原版右键拖拽几乎一致,区别是同一个栏位被反复经过 就会反复投入物品;启用后完全接管原版拖拽;
  • 左键拖拽(两种)——手上有物品时,按住左键划过同类型物品自动合并(或 Shift 整堆移动); 手上没有物品时,Shift + 左键划过即可把整批物品快速送进另一个背包;
  • 滚轮搬运(WheelTweak)——悬停在某堆物品上滚轮,即可批量在光标栏位与「另一半背包」之间 搬运同类型物品,推入 / 拉出的方向与搜索顺序均可配置。

此外还有一个非热键的输入模型事实:本 mod 没有任何 KeyBinding 注册, Shift 是硬编码的 Keyboard.isKeyDown(KEY_LSHIFT) || isKeyDown(KEY_RSHIFT), 所有可调项都来自配置文件 config/MouseTweaks.cfg(也可在模组列表点「配置」打开 GTNHLib 配置界面编辑)。详见 输入方案。

游戏设定

  • 配置文件系统 - GTNHLib MTConfig 的 7 个选项全表、配置文件 config/MouseTweaks.cfg、旧配置删除逻辑与 GuiContainer 访问转换器
  • 右键拖拽替换(RMBTweak) - RMBTweak(boolean,默认 true)替换原版右键拖拽;首槽位 / shouldClick 状态机
  • 左键拖拽(手持物品) - LMBTweakWithItem(boolean,默认 true)Shift 整堆移动 / 双击合并,含堆叠上限守卫
  • 左键拖拽(空手 Shift) - LMBTweakWithoutItem(boolean,默认 true)空手 Shift + 左键批量转移
  • 滚轮搬运(WheelTweak) - WheelTweak(boolean,默认 true)滚轮跨背包搬运,含推入/拉出点击序列与 NEI 互斥
  • 滚轮搜索顺序 - WheelSearchOrder(int,@RangeInt(0,1),默认 1)由前到后 / 由后到前;仅影响拉出
  • 滚轮方向语义 - WheelScrollDirection(int,@RangeInt(0,3),默认 0)4 种推入/拉出方向语义,含库存位置感知
  • 滚轮物品数量缩放 - ScrollItemScaling(int,@RangeInt(0,1),默认 0)abs(wheel)/120 或恒为 1,lwjgl3ify 强制为 1
  • 容器兼容性 - 6 个容器 ID 的识别顺序、逐容器启用规则、原版与 Forestry 合成产物栏位下标表
  • IMTModGuiContainer 接口 - 供其他 mod 接入的 11 方法接口(isMouseTweaksDisabled / isWheelTweakDisabled / 栏位委托等)

热键列表

  • 输入方案 - 本 mod 不注册任何 KeyBinding(全仓库 0 处 registerKeyBinding);实际输入源为鼠标左键/右键/滚轮 + 硬编码左右 Shift

配置项速查

字段名 类型 默认值 有效范围 作用
RMBTweak boolean true — 替换原版右键拖拽机制
LMBTweakWithItem boolean true — 手持物品时的左键拖拽
LMBTweakWithoutItem boolean true — 空手 Shift + 左键拖拽
WheelTweak boolean true — 滚轮快速跨背包搬运
WheelSearchOrder int 1 0 – 1 目标栏位搜索方向(仅影响拉出)
WheelScrollDirection int 0 0 – 3 推入 / 拉出的滚轮方向语义
ScrollItemScaling int 0 0 – 1 一次滚轮刻度移动几个物品

容器启用矩阵

容器 来源 Mouse Tweaks 滚轮
原版 GuiContainer 继承 GuiContainer 且非创造模式、非 CJB_GuiCrafting 启用 启用
自定义界面 实现 IMTModGuiContainer 由 isMouseTweaksDisabled() 决定 由 isWheelTweakDisabled() 决定
Forestry forestry.core.gui.GuiForestry 启用 启用
CodeChickenCore codechicken.core.inventory.GuiContainerWidget 永远禁用 不适用
NEI GuiEnchantmentModifier 启用 启用
NEI 其余 NEI 界面(含 GuiRecipe) 禁用 不适用

Forestry 容器的 disableRMBDragIfRequired 在源码中落到空 default: 分支, 因此 Forestry 界面不会关闭原版右键拖拽——这是源码现状而非配置项。