均分(Balance Grid)

基本信息

属性 值
键位 ID key.craftingtweaks.balance
默认按键 Keyboard.KEY_NONE(未绑定)
分类 key.categories.craftingtweaks
注册位置 ClientProxy.init() → ClientRegistry.registerKeyBinding
触发方式 TickEvent.ClientTickEvent 边沿触发

英文显示名 Balance Grid,中文「均分」。

触发条件

与 旋转 完全相同:需已登记的容器、getModSupportState 为 ENABLED 或 HOTKEYS_ONLY、NEI 输入框未聚焦。

行为

按键组合 行为
直接按 均分:把网格内同种物品的数量在各个槽位之间平均分配
按住 Shift 平铺(Spread):先把最多的一摞物品尽可能摊到所有空格,再执行一次均分

isShiftDown 作为 spread 布尔量随 MessageBalance(id 2)发送; 服务端 HandlerBalance 据此在 spreadGrid 与 balanceGrid 之间二选一。

无服务端时客户端直接调用 clientProvider.balanceGrid 或 clientProvider.spreadGrid,两者都以 provider.requiresServerSide() 为前置条件 (为 true 则静默返回)。

⚠️ 注意:均分 / 平铺不区分 tweakBalance.enabled 之外的按钮显示设置, 但仍受 provider 自身的 tweakBalance.enabled 开关约束——关闭时 SimpleTweakProviderImpl.balanceGrid / spreadGrid 直接空转。

均分 vs 平铺

对比项 均分 平铺(Shift)
前置动作 无 先把最大堆叠拆成每格 1 个铺满所有空格
终止条件 一次算完 循环直到没有 >1 的堆叠,或最大堆叠被清空
是否调用均分 否 是,平铺结束后必定再跑一次 balanceGrid
只处理可堆叠物 是 平铺阶段扫描全部堆叠,均分阶段才过滤

具体数值算法见 合成网格操作 的「均分」与「平铺」两节。

相关条目