- 升级至 GTNH 2.9.0-beta-3 目标基线,重构为可调整的 IDE 工作区并加入文件安全流程。
- Add RA2 optional fields from the wiki and real scripts:
.noOptimize().
- Uses CraftTweaker shaped/shapeless recipes with both compact one-line and multi-line formatting.
- Uses furnace recipes with two arguments, while current generator emits three arguments with XP for the explicit furnace mode.
- Uses many ore dictionary ingredients (
<ore:...>), so the GUI needs an ore dictionary source or manual ore-expression insertion. - Uses GT RA2 builder extensively with
.itemInputs,.itemOutputs,.fluidInputs,.fluidOutputs,.eut,.duration,.addTo. - Uses fluids that cannot be recovered reliably from
item_index.json, for example<liquid:molten.siliconsolargrade>,<liquid:chlorine>,<liquid:dilutedsulfuricacid>, and names containing spaces such as<liquid:liquid helium>. - Uses
.noFluidOutputs()and.noFluidInputs()in valid RA2 chains. - Uses
RecipeRemover.remove(recipeMap, itemInputs, fluidInputs)with empty arrays, one-line calls, and multi-line calls. - Uses NBT item expressions with
.withTag(...). - Uses GT integrated circuits and molds as zero-count inputs, for example
<gregtech:gt.integrated_circuit:21>*0and<gregtech:gt.metaitem.01:32351>*0. - Recipe maps observed in this script:
gt.recipe.alloysmelter,gt.recipe.assembler,gt.recipe.brewer,gt.recipe.chemicalreactor,gt.recipe.distillationtower,gt.recipe.electricimplosioncompressor,gt.recipe.electrolyzer,gt.recipe.extruder,gt.recipe.implosioncompressor,gt.recipe.largechemicalreactor,gtpp.recipe.multielectro. - Fluid expressions observed include
water,chlorine,oxygen,sulfuricacid,dilutedsulfuricacid,ender,sodiumpotassium,molten.siliconsolargrade,molten.infinity,molten.cosmicneutronium, and fluid names with spaces. - Ore dictionary expressions observed include
stickWood,dustClay,ingotIron,gemMalachite,crystalFluix,itemCertusQuartz, and multiple Orichalcum processing forms.
item_index.json只能解决物品/方块选择,不能完整解决流体选择;下一步需要 exporter 从FluidRegistry导出fluid_index.json。- 流体名不能靠简单英文单词假设,真实脚本里存在
molten.siliconsolargrade、acid naquadah emulsion、liquid helium这种带点号或空格的注册名。 - GUI 的流体输入/输出不应继续只是手输框,应改成和物品一样的搜索表、双击填入、数量输入。
- GTNH 脚本常用 ore dictionary 作为输入,GUI 需要单独的
<ore:...>输入能力;它不是物品索引里的普通物品。 - RA2 配方里
*0是有效语义,常用于编程电路和模具;数量控件不能强制最小值为 1。 .withTag(...)是实际脚本中会用到的核心能力,尤其是 ME 仓、工具部件或带 NBT 的机器;脚本模型需要给物品表达式保留原始后缀。- RA2 builder 需要支持“无流体输入/输出”的显式链式调用,即
.noFluidInputs()和.noFluidOutputs(),不能只用空数组代替。 RecipeRemover.remove需要独立编辑器:目标 recipe map、物品输入数组、流体输入数组都要能为空或多项。furnace.addRecipe在真实脚本里有两参数写法;GUI 可以保留 XP 字段,但生成器需要支持“不写 XP”的选项。- 现有 GUI 的 recipe map 选择是正确方向,因为真实脚本在 assembler、extruder、electrolyzer、largechemicalreactor、distillationtower、brewer、multielectro 等多张 map 间切换非常频繁。
- 完整
.zs导入功能值得做:先不追求编辑所有语法,至少可以解析 RA2 块、CraftTweaker 合成、furnace、RecipeRemover,生成可继续编辑的草稿。
- 增加应用基本信息和“关于”对话框:右上角“关于”按钮显示
GTNHItemDocScriptBuilder、版本1.0.0、工作室Andgatech。 - 手写模式下切换脚本类型自动清空配方格和流体行,避免旧类型内容误带入新类型。
- 使用项目目录下的
icon.ico作为 Tk 窗口图标和 PyInstaller exe 图标,并作为运行时资源打包。 - 加高主窗口:默认高度改为
1080,最小高度改为1040;上方两个列表高度不变,新增高度留给下面三栏。 - 增加脚本草稿列表:可保存当前草稿、载入选中草稿、删除选中草稿,并按列表顺序把全部草稿追加到完整脚本。
- 增加生成前草稿校验:
添加到脚本和替换原配方会阻止无效草稿写入完整脚本,并提示缺输入/输出或数字字段非法。 - 增加未导入
.zs时的新建/保存工作流:新建 .zs创建并绑定当前脚本文件,保存直接覆盖当前文件,另存为切换当前文件路径,并在工具栏显示当前路径。 - 将机器“模板”简化为“生成方式”:GT 只保留
GT RA2,具体机器改由Recipe Map选择;旧 GT-like 模板 ID 自动迁移并保留默认 recipe map。 - 增加解析模式:点击“解析到GUI”后切换脚本类型会自动按当前类型重新解析,点击“关闭解析”后回到手动草稿模式。
- 增加脚本编辑安全能力:“添加到脚本”可选择文件末尾、当前光标、当前配方后,并支持“替换原配方”。
- 增强配方列表摘要:合成显示
输出 <- 输入,GT 显示recipe map: 输入 -> 输出,删除显示删除目标。 - 当前草稿自动生成中文注释,合成和 GT 机器会根据物品、流体、数量和 recipe map 写说明。
- 自动注释中有中文名的物品/流体显示为
中文名 <ct表达式> * 数量。 - 增加当前脚本类型的配方列表:显示序号、行号、类型和摘要,点击某行可直接解析到 GUI。
- 增加
.zs解析导航按钮:第一条、上一条、下一条、最后一条,可在当前脚本类型的匹配配方之间切换。 - 将 GT 机器流体输入和流体输出改成分别可填写条数的动态 UI,默认各 1 条。
- 压缩顶部工具栏按钮宽度和间距,减少按钮挤占界面空间。
- 修复顶部工具栏按钮过紧导致文字难以辨认的问题,中文按钮按显示宽度预留空间。
- 将顶部工具栏改成两排按钮,并把“选索引”恢复为“选择 item_index.json”。
- 将默认窗口高度增加到
980,最小高度和旧配置归一化高度增加到960。 - 给中间编辑栏增加竖向滚动条,参数和格子过多时可向下滚动查看。
- 完善 GT
RecipeRemover.remove(...)编辑器:物品输入使用 16 格,流体输入使用独立 4 行列表并支持搜索和数量。 - 增加
.zs导入继续编辑 MVP:可解析本工具生成的 RA2、GT 删除、合成、熔炉和燃料脚本并填回当前 GUI 草稿。 - 修复导入和切换脚本类型后的 ZS 预览语义:预览只代表当前一份草稿,导入按脚本顺序解析第一条受支持配方。
- 将右侧 ZS 预览分成上下两半:完整
.zs文件原文和当前草稿保存内容,并显示当前草稿来源行号。 - 重做
.zs编辑工作流:导入默认不解析,解析按钮按当前脚本类型回填 GUI,添加到脚本后保存完整文件,并支持撤销/重做。 - 将 GTNH/模组机器输出格从 4 格调整为 9 格,匹配 GT 输出 UI。
- 增加 RA2
.specialItem(...)支持,可从当前选中的物品格复制物品、数量和后缀。 - 增加 RA2
.specialValue(...)支持,GT 机器参数区可填写整数 special value。 - 增加 RA2
.outputChances(...)输出概率支持,GT 机器输出格可按10000 = 100%编辑概率。 - 修复参数和流体区的脚本类型显隐:有序/无序不显示流体,机器和 GT 删除才显示对应流体能力。
- 让 MineTweaker 专项参数按脚本类型显示:镜像只在有序、XP 只在熔炉、燃烧时间只在燃料。
- 将 MineTweaker 参数区的新控件左对齐,避免“写入熔炉 XP”等选项离左边太远。
- 增加 MineTweaker GUI 和生成器支持:镜像有序合成、可选熔炉 XP、熔炉燃料脚本。
- Add
fluid_index.jsonexport inGTNHItemDocExporterfrom ForgeFluidRegistry. - Load
fluid_index.jsonin the GUI and make fluid input/output rows searchable like items. - Split recipe slot UI by script type: shaped/shapeless
3 x 3 + 1, furnace1 + 1, machine16 + 4. - Add delete-mode sub options for shaped, shapeless, furnace, and GT layouts.
- Widen the center editor pane and compact slot buttons so recipe controls remain visible.
- Add a horizontal scrollbar to the left item search results table.
- Increase the default window width and make the center editor pane the primary layout area.
- Rework fluid rows so the amount field stays visible without making the whole window too wide.
- Rename the remove sub-option label to "删除布局" and verify its layout selector is visible.
- Keep left search and right preview panes fixed-width so the center editor keeps the usable space.
- Shift about one third of the center editor width back to the left search pane.
- Add vertical and horizontal scrollbars to the ZS preview panel.
- Prevent the preview scrollbars from expanding the preview pane and squeezing the editor.
- Support ore dictionary expressions such as
<ore:stickWood>and<ore:dustClay>as first-class selectable inputs. - Support item expressions with amount
*0, used by GT molds and integrated circuits in RA2 recipes. - Support output/input NBT expressions such as
.withTag({baseCapacity: 4611686018427385856 as long}). - Increase GUI window height so newly added editor controls are visible.
- Add RA2 toggles for
.noFluidInputs()and.noFluidOutputs().