Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 2.23 KB

2-1开发文档.md

File metadata and controls

38 lines (26 loc) · 2.23 KB

开发文档

简述

NFM 使用 Python 编写。

UI 部分使用 NiceGUI 开发,MaaFw 部分使用 MaaFw Python Binding 开发。

版本说明

NFM 采用 {MaaFw 大版本}.{UI 大版本}.{UI 小版本} 的规则进行版本号命名。 NFM 的2.x.x 版本理论上可以兼容全部基于 Maa 2.0 大版本开发的应用。

如果你是纯 pipeline 开发者,你需要确保自己的 pipelineinterface.json 已经符合 MaaFw 2.0 的开发要求。

如果你是 Python 集成开发者,推荐始终基于 MaaFw 的最新版本开发应用。如果你有停留在特殊版本的需求,建议 MaaFw版本 不要低于 2.2.0 。

NFM 使用的 MaaFw 将尽可能地保持最新。如果这无法满足你的开发需求,可修改依赖版本后自行编译应用。

资源文件

./res 文件夹用于存放 MaaFw 的资源文件。请保持文件结构为./res/{应用名称}/...

需要注意的是, NFM 不会读取 interface.json 内的 name 字段,而是直接使用文件夹名称作为应用名。

NFM 将尝试读取对应应用路径下的 interface.json 中的 author , urlmessage 字段。如不存在对应字段或对应字段为空,则显示 Undefined

自定义任务

NFM 支持使用 MaaFw Python Binding 开发的自定义任务。你可以参照以下思路注册自定义任务。

NFM 是这样实现自定义任务的:

  • 传入应用名称 (如 Sample)
  • 根据应用名称,读取 utils/custom.py 中对应的自定义任务列表。
    class Sample:
        recs: list[dict[str, CustomRecognition]] | None = [{"CustomA": sample.CustomA()}]
        acts: list[dict[str, CustomAction]] | None = [{"CustomB": sample.CustomB()}]
    
    NFM 将获取 recsacts 两个 list[dict] 。
  • 加载资源时,遍历两个 list ,依次注册自定义任务。

custom.py 中的类名建议与 .res/{应用名称} 中的 应用名称 保持一致,以便二次开发。