本项目是一套为 《甜瓜游乐场》 设计的、经过全面重构的次世代自动化工具链。它能将高层级的 代码设计稿 (input.py),通过一键式操作,直接转化为功能完备、布局整洁的 .melsave 游戏存档。
得益于全新的集成化架构和智能布局系统,您现在只需在 Python 代码中专注于逻辑设计,工具链将自动处理从代码解析、节点创建、智能定位、精确连线到最终打包的所有繁琐工作。
- 代码即设计 (DSL):在
input.py中使用 Python 代码直观地定义节点、设置属性和连接关系,比编写 JSON 更高效、更灵活。 - 一键式生成:告别多步操作!只需运行
main.py,即可完成从 DSL 解析到生成.melsave存档的全部流程。 - 智能自动布局:内置强大的布局引擎,可自动为所有节点计算最佳位置,确保生成的逻辑图整洁、无重叠,极大提升了可读性和美观度。
- 统一模块定义:所有模块的配置(包括游戏内名称、端口、数据类型等)被统一整合进
moduledef.json文件,管理和扩展模块变得前所未有地简单。 - 集成化代码库:项目重构为内聚的函数调用,移除了旧版的子进程通信。这带来了更快的执行速度、更高的稳定性以及更便捷的二次开发体验。
- 精确端口连线:完全按照您在代码中指定的连接关系,精确地连接模块的输入/输出端口,并严格遵守端口顺序。
- 直接生成存档:自动将构建好的内容打包成
.melsave文件,无需手动压缩或重命名。
-
主入口 (User-facing):
main.py: 唯一的执行入口。 该脚本负责编排和执行整个自动化工作流。
-
核心模块 (Internal Libraries):
converter_v2.py,add_module.py,layout_chip.py等:作为内部库,提供 DSL 解析、节点创建、布局和连接等核心功能,由main.py直接调用。
-
配置与数据 (由用户提供):
input.py: 您的设计蓝图。 在这里用 Python 代码定义您作品的节点和连接关系。moduledef.json: 统一模块词典 (核心)。 定义了所有可用模块的属性,如友好名称、端口、操作代码等。data.json: 您的游戏存档底包(可以是一个只包含空 contraption 的存档)。MetaData,Icon: 创建.melsave存档所需的元数据和图标文件。
-
生成的文件 (脚本输出):
*.melsave: 最终的输出成果! 这就是您构建完成的存档文件,其名称由脚本自动生成,可直接加载进游戏。graph.json,ungraph.json等: 在运行过程中生成的临时文件,可忽略。
- 已安装 Python 3.x 环境。
- 本项目无需安装任何第三方 Python 库。
-
在
moduledef.json中定义您的模块: 确保您设计中用到的所有模块都在此文件中被定义。这是工具链查找模块信息的唯一来源。 -
在
input.py中完成您的设计: 使用提供的 DSL 语法定义所有您需要的节点(模块)和边(连接)。input.py示例:# 节点定义: # 变量名 = 模块类型("友好名称") # 例如: a = Constant("常量A") # # 节点属性设置 (可选): # 变量名.set(属性名=值) # 例如: a.set(value=10) # # 连接定义: # 节点A["输出端口"] >> 节点B["输入端口"] # 定义两个常量节点和一个加法器节点 input_A = Constant("常量A").set(value=5) input_B = Constant("常量B").set(value=10) adder = Add("加法器")
-
提供基础文件:
- 将一个基础的
data.json存档文件放置在脚本根目录。 - 确保
MetaData和Icon文件也存在于根目录。
- 将一个基础的
整个流程现在只需一条命令。
python main.py脚本将自动执行所有步骤:解析 input.py、创建并布局节点、连接端口,然后直接生成最终的 .melsave 存档文件。
大功告成!现在,根目录中已经生成了包含了您完整构建且自动布局的机械的 .melsave 文件。将其复制到您游戏的存档目录,然后在《甜瓜游乐场》中加载它吧。
新的集成化工作流由 main.py 通过一系列高效的内部函数调用完成:
- DSL 解析: 读取
input.py,调用converter_v2将其转换为结构化的graph.json。 - 图谱初始化: 读取
graph.json和moduledef.json,在内存中构建出完整的节点与连接图。 - 节点创建: 遍历图谱中的节点定义,调用
add_module中的函数创建每个节点。 - 属性修改: 根据设计稿中的定义,修改常量值、数据类型等节点属性。
- 精确连接: 遍历图谱中的边定义,调用连接函数,在内存中将已创建节点的端口精确地连接起来。
- 智能布局: 调用
layout_chip布局引擎,为所有节点分配合理的坐标,避免混乱和重叠。 - 存档打包: 调用
archive_creator,将最终的成果连同MetaData和Icon一起打包成.melsave文件。
这种健壮的流水线设计确保了即便是宏伟的设计,也能够被可靠、快速且美观地构建完成。提示词可以参考文档中芯片教程.txt
本项目的诞生离不开甜瓜社区中早期探索者们的智慧和工作。他们的工具和想法为这个更集成、更自动化的工具链提供了坚实的基础和灵感。向所有为这个社区做出贡献的创造者们致以诚挚的感谢!