外观
搭建 API 1.9 MOD 项目
本页以当前 SurvivalcraftTemplateModForAPI 的 API1.9 分支为准。旧版 PAK 和 API 1.5–1.8 教程不能直接替代当前模板。
准备工具
- 安装 .NET 10 SDK;
- 安装支持 .NET 项目的 Visual Studio、Rider 或 VS Code;
- 安装 Git;
- 准备 Survivalcraft API 1.9 测试客户端;
- 单独建立测试世界并备份原有数据。
获取模板
bash
git clone -b API1.9 https://gitee.com/SC-SPM/SurvivalcraftTemplateModForAPI.git
cd SurvivalcraftTemplateModForAPI
dotnet restore
dotnet build模板通过 NuGet 引用 Survivalcraft API 包,nuget.config 是依赖恢复的一部分,不要随意删除。
模板结构
当前模板包括:
| 内容 | 用途 |
|---|---|
Assets/Lang | 本地化语言 |
Assets/Models | glTF 等模型资源 |
Assets/Widgets | XML 界面布局 |
*.csv | 方块数据与替换 |
*.clo | 衣物数据 |
*.cr | 合成配方 |
*.xdb | 子系统、组件、实体与数据库修改 |
TemplateBlock.cs | 新方块示例 |
TemplateModLoader.cs | MOD 加载和 Hook 注册 |
TemplateHarmonyPatch.cs | Harmony 补丁示例 |
modinfo.json | 名称、版本、依赖等元数据 |
第一次修改建议
- 修改
modinfo.json中的项目标识、名称、版本和作者; - 删除暂时不需要的示例功能,而不是把整个模板原样发布;
- 只保留一个最小功能完成编译;
- 把输出的
.scmod放入 API 客户端Mods目录; - 查看启动日志,确认 MOD 被识别;
- 在测试世界验证后再继续添加功能。
官方开发资料
先运行模板,再理解源码
模板只能说明项目结构。实现新机制时仍需阅读 SurvivalcraftApi 源码,确认当前类、生命周期和 Hook 行为。
IyDmkK3lu7ogQVBJIDEuOSBNT0Qg6aG555uuCgrmnKzpobXku6XlvZPliY0gW1N1cnZpdmFsY3JhZnRUZW1wbGF0ZU1vZEZvckFQSV0oaHR0cHM6Ly9naXRlZS5jb20vU0MtU1BNL1N1cnZpdmFsY3JhZnRUZW1wbGF0ZU1vZEZvckFQSSkg55qEIGBBUEkxLjlgIOWIhuaUr+S4uuWHhuOAguaXp+eJiCBQQUsg5ZKMIEFQSSAxLjXigJMxLjgg5pWZ56iL5LiN6IO955u05o6l5pu/5Luj5b2T5YmN5qih5p2/44CCCgojIyDlh4blpIflt6XlhbcKCi0g5a6J6KOFIFsuTkVUIDEwIFNES10oaHR0cHM6Ly9kb3RuZXQubWljcm9zb2Z0LmNvbS9kb3dubG9hZC9kb3RuZXQvMTAuMCnvvJsKLSDlronoo4XmlK/mjIEgLk5FVCDpobnnm67nmoQgVmlzdWFsIFN0dWRpb+OAgVJpZGVyIOaIliBWUyBDb2Rl77ybCi0g5a6J6KOFIEdpdO+8mwotIOWHhuWkhyBbU3Vydml2YWxjcmFmdCBBUEkgMS45XShodHRwczovL2dpdGVlLmNvbS9TQy1TUE0vU3Vydml2YWxjcmFmdEFwaS9yZWxlYXNlcy9sYXRlc3QpIOa1i+ivleWuouaIt+err++8mwotIOWNleeLrOW7uueri+a1i+ivleS4lueVjOW5tuWkh+S7veWOn+acieaVsOaNruOAggoKIyMg6I635Y+W5qih5p2/CgpgYGBiYXNoCmdpdCBjbG9uZSAtYiBBUEkxLjkgaHR0cHM6Ly9naXRlZS5jb20vU0MtU1BNL1N1cnZpdmFsY3JhZnRUZW1wbGF0ZU1vZEZvckFQSS5naXQKY2QgU3Vydml2YWxjcmFmdFRlbXBsYXRlTW9kRm9yQVBJCmRvdG5ldCByZXN0b3JlCmRvdG5ldCBidWlsZApgYGAKCuaooeadv+mAmui/hyBOdUdldCDlvJXnlKggU3Vydml2YWxjcmFmdCBBUEkg5YyF77yMYG51Z2V0LmNvbmZpZ2Ag5piv5L6d6LWW5oGi5aSN55qE5LiA6YOo5YiG77yM5LiN6KaB6ZqP5oSP5Yig6Zmk44CCCgojIyDmqKHmnb/nu5PmnoQKCuW9k+WJjeaooeadv+WMheaLrO+8mgoKfCDlhoXlrrkgfCDnlKjpgJQgfAp8IC0tLSB8IC0tLSB8CnwgYEFzc2V0cy9MYW5nYCB8IOacrOWcsOWMluivreiogCB8CnwgYEFzc2V0cy9Nb2RlbHNgIHwgZ2xURiDnrYnmqKHlnovotYTmupAgfAp8IGBBc3NldHMvV2lkZ2V0c2AgfCBYTUwg55WM6Z2i5biD5bGAIHwKfCBgKi5jc3ZgIHwg5pa55Z2X5pWw5o2u5LiO5pu/5o2iIHwKfCBgKi5jbG9gIHwg6KGj54mp5pWw5o2uIHwKfCBgKi5jcmAgfCDlkIjmiJDphY3mlrkgfAp8IGAqLnhkYmAgfCDlrZDns7vnu5/jgIHnu4Tku7bjgIHlrp7kvZPkuI7mlbDmja7lupPkv67mlLkgfAp8IGBUZW1wbGF0ZUJsb2NrLmNzYCB8IOaWsOaWueWdl+ekuuS+iyB8CnwgYFRlbXBsYXRlTW9kTG9hZGVyLmNzYCB8IE1PRCDliqDovb3lkowgSG9vayDms6jlhowgfAp8IGBUZW1wbGF0ZUhhcm1vbnlQYXRjaC5jc2AgfCBIYXJtb255IOihpeS4geekuuS+iyB8CnwgYG1vZGluZm8uanNvbmAgfCDlkI3np7DjgIHniYjmnKzjgIHkvp3otZbnrYnlhYPmlbDmja4gfAoKIyMg56ys5LiA5qyh5L+u5pS55bu66K6uCgoxLiDkv67mlLkgYG1vZGluZm8uanNvbmAg5Lit55qE6aG555uu5qCH6K+G44CB5ZCN56ew44CB54mI5pys5ZKM5L2c6ICF77ybCjIuIOWIoOmZpOaaguaXtuS4jemcgOimgeeahOekuuS+i+WKn+iDve+8jOiAjOS4jeaYr+aKiuaVtOS4quaooeadv+WOn+agt+WPkeW4g++8mwozLiDlj6rkv53nlZnkuIDkuKrmnIDlsI/lip/og73lrozmiJDnvJbor5HvvJsKNC4g5oqK6L6T5Ye655qEIGAuc2Ntb2RgIOaUvuWFpSBBUEkg5a6i5oi356uvIGBNb2RzYCDnm67lvZXvvJsKNS4g5p+l55yL5ZCv5Yqo5pel5b+X77yM56Gu6K6kIE1PRCDooqvor4bliKvvvJsKNi4g5Zyo5rWL6K+V5LiW55WM6aqM6K+B5ZCO5YaN57un57ut5re75Yqg5Yqf6IO944CCCgojIyDlrpjmlrnlvIDlj5HotYTmlpkKCi0gW0FQSSAxLjkg5byA5Y+R6K+05piOXShodHRwczovL2dpdGVlLmNvbS9TQy1TUE0vU3Vydml2YWxjcmFmdEFwaS9ibG9iL1NDQVBJMS45L2RvY3MvRGV2ZWxvcG1lbnQubWQpCi0gW0FQSSDmnrbmnoTmlofmoaNdKGh0dHBzOi8vZ2l0ZWUuY29tL1NDLVNQTS9TdXJ2aXZhbGNyYWZ0QXBpL2Jsb2IvU0NBUEkxLjkvZG9jcy9BcmNoaXRlY3R1cmUubWQpCi0gW+S7jumbtuW8gOWPkSBNT0Qg5oyH5Y2XXShodHRwczovL2dpdGVlLmNvbS9TQy1TUE0vU3Vydml2YWxjcmFmdEFwaS9ibG9iL1NDQVBJMS45L2RvY3MvSG93VG9EZXZlbG9wQU1vZC5tZCkKLSBb56S65L6L5qih5p2/5LuT5bqTXShodHRwczovL2dpdGVlLmNvbS9TQy1TUE0vU3Vydml2YWxjcmFmdFRlbXBsYXRlTW9kRm9yQVBJKQoKOjo6IHRpcCDlhYjov5DooYzmqKHmnb/vvIzlho3nkIbop6PmupDnoIEK5qih5p2/5Y+q6IO96K+05piO6aG555uu57uT5p6E44CC5a6e546w5paw5py65Yi25pe25LuN6ZyA6ZiF6K+7IFtTdXJ2aXZhbGNyYWZ0QXBpIOa6kOeggV0oaHR0cHM6Ly9naXRlZS5jb20vU0MtU1BNL1N1cnZpdmFsY3JhZnRBcGkp77yM56Gu6K6k5b2T5YmN57G744CB55Sf5ZG95ZGo5pyf5ZKMIEhvb2sg6KGM5Li644CCCjo6Ogo=
