机械动力:绿图

机械动力:绿图

自动制作的有用工具

Create: Green Print

Create: Green Print 是 Create 的一个 NeoForge 1.21.1 扩展模组。它通过可扩展的配方图和递归合成支持,扩展了 Create 的蓝图工作流。

一张 Green Print 可以将多个配方组织成一颗合成树(内部以连通的配方图存储)。当目标配方需要由另一个 Green Print 节点生产的物品时,该模组会先搜索并尝试合成所需的前置物品。

特性

  • 使用一张 Create 蓝图和一份绿色染料合成 Green Print。
  • 在一张 Green Print 中存储多个配方节点,不受固定的 3x3 布局限制。
  • 将方向匹配且边相邻的 Green Print 连接成一个共享的配方组件。
  • 保留 Minecraft 的 Ingredient 和基于标签的配方案。
  • 检查玩家物品栏,并递归搜索已连接的 Green Print 配方以查找缺失的材料。
  • 支持输出数量、实际配方匹配、工具耐久度和容器返还物品。
  • 使用事务性合成:失败的搜索不会部分消耗玩家的物品栏。
  • 复用 Create 的材料覆盖层,并区分可用、可递归合成和不可用的材料。

使用方法

  1. 使用一张 Create 蓝图和一份绿色染料合成一张 Green Print。
  2. 将 Green Print 放置在有效的表面上,并使用 Create 扳手打开其配方编辑器。
  3. 在不同节点中配置配方。相邻的节点会成为同一颗合成树的一部分。
  4. 当需要在多张印之间共享配方时,以相同的方向并排放置多张 Green Print。
  5. 点击带有输出的配方节点以尝试合成。按住 Shift 会重复该操作,直到材料耗尽或完成 64 次合成。

配方搜索

每次合成尝试时,模组会从当前的 Green Print 及其物理连接的 Green Print 中收集所有配方。它会按输出物品建立候选配方索引,并按以下顺序解析每个所需的材料:

  1. 从玩家的物品栏中预留匹配的物品。
  2. 使用当前搜索分支已产生的虚拟输出。
  3. 如果材料仍然缺失,选择一个能产出匹配 Ingredient 的已连接 Green Print 配方,并递归解析其输入。
  4. 在候选配方之间回溯,直到某个分支能满足完整的合成网格。
  5. 只有在所有输入和前置条件都成功解析后才提交事务,然后将最终输出返还到玩家的物品栏。

搜索会跟踪活动配方并将递归深度限制为 64,以防止配方循环。配方索引和发现的配方会被短暂缓存,并在 Green Print 被编辑或其连接发生变化时自动失效。

开发环境

组件 版本
Minecraft 1.21.1
NeoForge 21.1.244
Create 6.0.11-295
Java 21

构建项目:

.\gradlew.bat build

仅编译 Java 源码:

.\gradlew.bat compileJava