Skip to content

Melon Playground 自动化搭建 CLI:将声明式 JSON 图一键转换为可加载的 .melsave(批量建模 + 精准连线)

License

Notifications You must be signed in to change notification settings

xunxiing/MelonSaveAdapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

甜瓜游乐场 - 次世代自动化构建与布局工具链

本项目是一套为 《甜瓜游乐场》 设计的、经过全面重构的次世代自动化工具链。它能将高层级的 代码设计稿 (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 库。

第一步:准备您的配置文件

  1. moduledef.json 中定义您的模块: 确保您设计中用到的所有模块都在此文件中被定义。这是工具链查找模块信息的唯一来源。

  2. 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("加法器")
    
    
  3. 提供基础文件:

    • 将一个基础的 data.json 存档文件放置在脚本根目录。
    • 确保 MetaDataIcon 文件也存在于根目录。

第二步:一键运行

整个流程现在只需一条命令。

python main.py

脚本将自动执行所有步骤:解析 input.py、创建并布局节点、连接端口,然后直接生成最终的 .melsave 存档文件。

第三步:享受您的作品!

大功告成!现在,根目录中已经生成了包含了您完整构建且自动布局的机械的 .melsave 文件。将其复制到您游戏的存档目录,然后在《甜瓜游乐场》中加载它吧。

💡 全新工作流解析

新的集成化工作流由 main.py 通过一系列高效的内部函数调用完成:

  1. DSL 解析: 读取 input.py,调用 converter_v2 将其转换为结构化的 graph.json
  2. 图谱初始化: 读取 graph.jsonmoduledef.json,在内存中构建出完整的节点与连接图。
  3. 节点创建: 遍历图谱中的节点定义,调用 add_module 中的函数创建每个节点。
  4. 属性修改: 根据设计稿中的定义,修改常量值、数据类型等节点属性。
  5. 精确连接: 遍历图谱中的边定义,调用连接函数,在内存中将已创建节点的端口精确地连接起来。
  6. 智能布局: 调用 layout_chip 布局引擎,为所有节点分配合理的坐标,避免混乱和重叠。
  7. 存档打包: 调用 archive_creator,将最终的成果连同 MetaDataIcon 一起打包成 .melsave 文件。

这种健壮的流水线设计确保了即便是宏伟的设计,也能够被可靠、快速且美观地构建完成。提示词可以参考文档中芯片教程.txt

🙏 致谢

本项目的诞生离不开甜瓜社区中早期探索者们的智慧和工作。他们的工具和想法为这个更集成、更自动化的工具链提供了坚实的基础和灵感。向所有为这个社区做出贡献的创造者们致以诚挚的感谢!

About

Melon Playground 自动化搭建 CLI:将声明式 JSON 图一键转换为可加载的 .melsave(批量建模 + 精准连线)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages