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] 参数)

相关条目