mcpField
S
se-dev-mod

se-dev-mod

github.com/cometworks开发10128 次安装5 天前更新
代码仓库

关于 se-dev-mod

面向 Space Engineers 1 模组开发的技能,帮助开发者准备本地环境并搜索已安装模组的代码示例。它还提供 bash 命令执行和代码索引流程。

主要功能

  1. 01初始化模组开发环境
  2. 02通过 bash 执行命令
  3. 03搜索模组源代码
  4. 04为模组代码建立索引

适用场景

  1. 01准备本地模组开发环境
  2. 02查找类或方法的使用示例
  3. 03检查已安装模组的代码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cometworks/skills --skill se-dev-mod

安装后在 Claude Code 中输入/se-dev-mod确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.python-version
Clean.bat
clean.sh
CommandExecution.md
CommandExecutionDetails.md
common-posix.sh
cs_indexer.py
hierarchy_tree.py
index_mods.py
list_mods.py
mod_paths.py
ModApiWhitelist.txt
ModTemplate.md
Prepare.bat
Prepare.md
prepare.sh
pyproject.toml
search_mods.py
summarize_whitelist.py
Troubleshooting.md
UtilityScripts.md
uv.lock
actions/
bash.md
prepare.md
search.md

详细介绍

SE Dev Mod 技能

为 Space Engineers 版本 1 开发模组。

⚠️ 重要:命令在 UNIX shell 中运行。请使用 bash 语法。在 Windows 上使用 BusyBox;在 Linux 上使用原生 shell。

示例:

  • ✅ test -f file.txt && echo exists
  • ✅ ls -la | head -10
  • ❌ if exist file.txt (echo exists) - 这不会生效

操作:

  • prepare:执行一次性准备工作(Windows 上运行 Prepare.bat,Linux 上运行 prepare.sh)
  • bash:通过 busybox 运行 UNIX shell 命令
  • search:使用 search_mods.py 搜索模组代码

路由决策

按顺序检查以下模式——匹配到的第一个模式优先:

优先级模式示例路由
1空调用或不带参数的调用se-dev-mod显示此帮助信息
2准备相关关键词se-dev-mod prepare、se-dev-mod setup、se-dev-mod initprepare
3Bash/shell 相关关键词se-dev-mod bash、se-dev-mod grep、se-dev-mod catbash
4搜索相关关键词se-dev-mod search、se-dev-mod find class、se-dev-mod lookupsearch

入门

⚠️ 重要:运行任何命令之前,请先阅读 CommandExecution.md,以避免导致命令失败的常见错误。

如果此文件夹中缺少 Prepare.DONE 文件,必须先执行一次性准备步骤。请参阅 prepare 操作。

重要文档

  • CommandExecution.md - ⚠️ 请先阅读 - Windows 命令执行详情;在 Linux 上请使用 bash 语法并运行 prepare.sh

模组开发

仅使用符合 Mod API 白名单的名称:ModApiWhitelist.txt 该白名单由 MDK2 的 Mdk.Extractor 从游戏版本 1.208.015 导出。

模组发布在 Steam Workshop 或 Mod.IO 上,其中大多数发布在前者。 游戏会在加载世界时编译模组,并强制执行 Mod API 白名单, 按设计应确保安全性。模组仍可能因异常导致游戏崩溃。

使用 se-dev-game-code 阅读你调用的确切代码。如果已安装 se-dev-game-book 手册,请先阅读,了解游戏系统的工作方式以及涉及哪些类型;如果没有安装,则也要搜索游戏代码。 服务器端模组逻辑同样使用 se-dev-server-code 和 se-dev-server-book。 为提高效率,请将游戏代码搜索限定在 Mod API 白名单中的名称对应内容。

Graphify 图谱

准备步骤会为本地模组文件夹(或 SE_DEV_MOD_PROJECT_ROOT)构建一个单独的 Graphify 图谱。使用快速 Rust 聚类后端(通过 uv 提供 Python 3.12,自动配置)时,准备步骤会自动构建图谱;无论哪种方式,这里的语料库都很小,因此构建很快。无法使用快速后端时,该功能仍为可选启用,需设置 SE_DEV_GRAPHIFY=1;设置 SE_DEV_GRAPHIFY=0 可禁用。按需阅读——常规搜索时可跳过:通过 GraphifyPrepare.md 构建,通过 GraphifyUsage.md 查询。

文件夹结构

  • Data/ — 指向每用户持久化模组数据文件夹的联接/符号链接(Windows 上为 %USERPROFILE%\.se-dev\mod,Linux 上为 ~/.se-dev/mod)。持久化技能数据存储于此:
    • Data/mods.json — 所有已安装模组的快速清单(workshop_id、path、has_scripts 等)。
    • Data/mod_hashes.json — 每个模组的 sha1 汇总值,供索引器检测变更。
    • Data/CodeIndex/ — 完整的 Tree-sitter C# 索引(每个类别一个 CSV,另含层级树)。
  • LocalMods/ — 指向游戏本地模组文件夹的联接/符号链接(Windows 上为 %AppData%\SpaceEngineers\Mods,Linux 上为 Proton 的对应 appdata 目录)。
  • Steam Workshop 内容直接从 Steam 文件夹读取;不会复制到技能目录或在其中创建符号链接 Steam Workshop 文件夹通过 SE_GAME_ROOT(环境变量)或 app id 244850 对应的 Steam 注册表项解析。

参考资料

模组代码搜索

搜索 Steam 和本地模组的源代码,查找示例和模式:

# Search for patterns
uv run search_mods.py class declaration MyBlock
uv run search_mods.py method usage Update
uv run search_mods.py class children MyGameLogicComponent

# Count results before viewing (useful for large result sets)
uv run search_mods.py class usage Init --count

# Limit number of results
uv run search_mods.py class usage Init --limit 10

搜索前,请确保索引已创建。如果缺少 Data/CodeIndex/,请运行:

uv run list_mods.py     # quick inventory (always cheap)
uv run index_mods.py    # full code index (incremental: only changed mods reparsed)

订阅新模组后重新建立索引: 在 Steam Workshop 订阅新模组后, 请在某个世界中加载一次(让游戏下载模组),然后重新运行上面的两条命令 (或者直接运行 Prepare.bat)。索引器会对每个模组的 .cs 文件进行哈希计算,只重新解析 哈希值相较上次运行有所变化的模组,因此再次运行速度很快。

完整文档请参阅 搜索操作。

操作参考

请参阅以下详细说明:

备注

此技能的原始来源:https://github.com/CometWorks/skills

评论

支持 Markdown