# SurvivalcraftSuAPI **Repository Path**: SC-SPM/survivalcraft-su-api ## Basic Information - **Project Name**: SurvivalcraftSuAPI - **Description**: Survivalcraft 2 SuMod 开发框架,用于创建第三方 Mod。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-10-02 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Survivalcraft SuAPI Survivalcraft 2 的 SuAPI 增强版,基于 .NET 8,支持 Windows 和 Android 双平台,内置 Mod 框架。 ## 项目特性 - **双平台** — Windows(net8.0 self-contained)+ Android(net8.0-android APK) - **SuAPI Mod 框架** — 内置 Mod 系统,支持 6 种核心组件、3 种注入模式 - **双 csproj 双 sln** — Windows 和 Android 各有独立的项目和解决方案 - **3 DLL 合并架构** — Engine.dll / GameEntitySystem.dll / Survivalcraft.dll - **IsMergeLib** — Mod 可选择双端共用单 DLL 或按平台分目录 - **SDK 锁定** — global.json 锁定 SDK 8.0.402,确保构建一致性 ## 使用方法 ### 前置要求 - .NET 8.0 SDK(版本 8.0.402) - Android 工作负载(构建 Android 版时需要) - Android SDK(签名 APK 时需要) ### 编译 从项目根目录运行: ```bash # Windows 桌面版 dotnet build Survivalcraft.sln # Android 版 dotnet build SurvivalcraftAn.sln ``` ### 发布 ```bash # Windows(self-contained) dotnet publish Survivalcraft/Survivalcraft.csproj -c Release -r win-x64 --self-contained true -o publish/win-x64 # Android dotnet publish Survivalcraft/SurvivalcraftAndroid.csproj -c Release -f net8.0-android -o publish/android ``` ### APK 签名 ```bash cd publish/android zipalign -f 4 com.candyrufusgames.survivalcraft2su.apk aligned.apk apksigner sign --ks --ks-key-alias --out com.candyrufusgames.survivalcraft2su-Signed.apk aligned.apk ``` ### 安装 Mod 将 .scmod 文件放入游戏 Mods 目录: - Windows:`publish/win-x64/Mods/` - Android:`/sdcard/Download/Survivalcraft2/Mods/` ## SuAPI Mod 框架 ### 六种核心组件 | 组件 | 接口 | 作用 | |------|------|------| | ModLoader | IModLoader | 加载 .scmod/.dll,解析依赖拓扑排序 | | ModEventBus | IModEventBus | 发布/订阅事件 | | ModInjector | IModInjector | 类名映射替换 | | ModParentField | IModParentField | 反射读写私有字段 | | ModParentMethod | IModParentMethod | 反射调用私有/父类方法 | | ModResource | IModResource | 资源 KV 存储 + Content 目录加载 | ### 三种注入模式 | 模式 | 适用场景 | |------|---------| | 数据库替换 (EventBus) | Subsystem/Component 替换,新增实体模板 | | Injector 类名映射 | IUpdateable/Block 类型替换 | | Loading 注入 | Screen 替换,新增加载步骤 | ## 项目结构 ``` 项目根目录/ ├── Engine/ │ ├── Engine/ # Windows 版引擎 │ └── Engine.Android/ # Android 版引擎 ├── EntitySystem/ │ ├── GameEntitySystem/ # ECS 系统(含 SuAPI + TemplatesDatabase + XmlUtilities 合并) │ └── SuAPI/ # Mod 框架接口与实现 ├── Survivalcraft/ │ ├── Survivalcraft.csproj # Windows 主项目 │ └── SurvivalcraftAndroid.csproj # Android 主项目 ├── Mod/ # Mod 示例源码(独立 git 仓库) ├── publish/ │ ├── win-x64/ # Windows 发布输出 │ └── android/ # Android 发布输出 ├── Survivalcraft.sln # Windows 解决方案 ├── SurvivalcraftAn.sln # Android 解决方案 └── global.json # SDK 8.0.402 锁定 ``` ## 条件编译 | 定义 | 说明 | |------|------| | `WINDOWS` | Windows 桌面版编译时自动定义 | | `ANDROID` | Android 版编译时自动定义 | ## 相关仓库 - Mod 示例集:https://gitee.com/SC-SPM/su-api-example-mod-set - Gitee:https://gitee.com/SC-SPM/survivalcraft-su-api - GitHub:https://github.com/SCAPI24/SurvivalcraftMonoWin