Chisel 脚本类
基本信息
| 属性 | 值 |
|---|---|
| 门控字符串 | chisel |
| 插件类 | modtweaker2.mods.chisel.Chisel |
| 注册点 | ModTweaker2.java:81 |
| 脚本类数 | 1 |
@ZenMethod |
4 |
| dump 指令 | chiselGroups、chiselVariations |
功能
Chisel 插件只注册 1 个脚本类 mods.chisel.Groups,提供凿刻(carving)组的完整增删能力。
| 方法 | 行 | 作用 |
|---|---|---|
addVariation |
Groups.java:18 |
往指定组加一个变体 |
removeVariation |
Groups.java:76 |
按物品移除变体 |
addGroup |
Groups.java:129 |
新建一个组 |
removeGroup |
Groups.java:179 |
按组名删除整个组 |
与本仓库其他插件不同,Chisel 的 4 个方法不全是同名重载,而是各具语义的独立方法。
失败即返回
每个方法在校验失败时记一条 logError 并 return,不提交动作:
| 方法 | 失败分支 |
|---|---|
addVariation |
组不存在 → Cannot find group <name>(Groups.java:21-24);变体造不出 → Can't create variation from <stack>(:25-28) |
removeVariation |
变体不存在 → Can't find variation from <stack>(Groups.java:78-81) |
addGroup |
组已存在 → Group already exists <name>(:131-134) |
removeGroup |
组不存在 → Could not find group <name>(:181-184) |
校验通过后才 MineTweakerAPI.apply(...) 提交(Groups.java:29、:82、:136、:185),因此不会出现部分成功的动作——这与 可撤销动作基类 中「逐条处理、失败只记日志继续」的 List 系行为不同。
动作对象覆盖 getOverrideKey
Groups.java 里的 4 个内部 IUndoableAction(AddVariation、RemoveVariation、AddGroup、RemoveGroup)各自覆盖了 getOverrideKey() 并返回 null(Groups.java:69-72、:122-125、:171-174、:220-223)——这与基类 BaseUndoable.getOverrideKey() 的默认实现(BaseUndoable.java:57-60)取值相同但属于显式重写。
AddGroup 与 RemoveGroup 的 canUndo() 只检查 group != null(Groups.java:153-155、:202-204),不检查别的状态。
ChiselHelper
modtweaker2/mods/chisel/ChiselHelper.java 提供 getGroup(String) 与 makeVariation(IItemStack) 等工具,无 @ZenMethod,不作为独立脚本类暴露。
dump 指令
2 条,都裹在 TweakerPlugin.isLoaded("chisel")(Commands.java:107)内:
| 指令 | 行 | 输出 |
|---|---|---|
chiselGroups |
:108-111 |
全部凿刻组 |
chiselVariations |
:112-116 |
凿刻变体(可带 [GROUP] 参数) |