# 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**: 1 - **Forks**: 0 - **Created**: 2025-10-02 - **Last Updated**: 2026-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Survivalcraft Unified (Win + Android) Survivalcraft 2 跨平台统一项目,基于 .NET 8,合并自: - `SurvivalcraftMonoWin-SuAPI-0119`(Windows 桌面版) - `SurvivalcraftMonodroid-SuAPI-0119`(Android 版) ## 架构 采用 **双 csproj 双 sln** 方案(方案 C),Windows 和 Android 各有独立的 csproj 和 sln: | 解决方案 | 主项目 | Engine | 目标框架 | |----------|--------|--------|---------| | `Survivalcraft.sln` | Survivalcraft.csproj | Engine.csproj | net8.0 | | `SurvivalcraftAn.sln` | SurvivalcraftAndroid.csproj | EngineAndroid.csproj | net8.0-android | ### 项目结构 ``` SurvivalcraftMonoWinAN/ ├── Engine/ │ ├── Engine/ # Engine.csproj (net8.0) — 预编译 OpenTK.dll │ ├── Engine.Android/ # EngineAndroid.csproj (net8.0-android) — OpenTK 项目引用 │ ├── FluxJpeg/ # JPEG 编解码 (InternalsVisibleTo: Engine, EngineAndroid) │ ├── Hjg/ # PNG 编解码 │ ├── NVorbis/ # OGG/Vorbis 解码 │ └── OpenTK/ # OpenGL ES 绑定 (net8.0 空壳; net8.0-android 完整) ├── EntitySystem/ │ ├── GameEntitySystem/ # ECS 系统 │ ├── SuMod/ # Mod 框架(引用 Engine 而非 GameEntitySystem) │ ├── TemplatesDatabase/ │ └── XmlUtilities/ ├── Survivalcraft/ │ ├── Survivalcraft.csproj # 纯 net8.0 │ ├── SurvivalcraftAndroid.csproj # 纯 net8.0-android (obj.android/bin.android) │ └── Directory.Build.props # Android 中间输出路径 ├── Survivalcraft.sln # Windows 版 ├── SurvivalcraftAn.sln # Android 版 ├── global.json # SDK 8.0.402, rollForward: disable └── Directory.Build.props # AndroidSdkDirectory ``` ### Android 变体文件 同目录下的 `*.Android.cs` 文件是 Android 版替代实现(如 `Storage.Android.cs` 替代 `Storage.cs`): - Engine.csproj 用 `` 排除 - EngineAndroid.csproj 用 `` 排除对应的 Windows 版文件 ## 条件编译 | 定义 | 说明 | |------|------| | `WINDOWS` | Windows 桌面版编译时自动定义 | | `ANDROID` | Android 版编译时自动定义 | ## 构建方式 ### Windows 桌面版 ```bash dotnet build Survivalcraft.sln ``` ### Android 版 ```bash dotnet build SurvivalcraftAn.sln ``` ## SuMod Mod 框架 SuMod 是内置的 Mod 系统,支持六种核心组件和三种注入模式: | 注入模式 | 适用场景 | |---------|---------| | 数据库替换 (EventBus) | Subsystem/Component 替换,新增实体模板 | | Injector 类名映射 | IUpdateable/Block 类型替换 | | Loading 注入 | Screen 替换,新增加载步骤 | 详细文档见 `doc/sumod-architecture.md` 和 `doc/mod-development-guide.md`。 ## 已完成 - [x] 双 csproj 双 sln 架构(方案 C) - [x] 双平台 0 错误编译 - [x] Windows 版成功运行 - [x] 2.4.10.1→2.4.10.8 版本升级精细合并 - [x] LoadingManager 分帧加载架构 - [x] 15 个 ElectricElement 枚举化 bug 修复 - [x] Android data: 路径统一架构 - [x] F11 全屏切换 - [x] 6 个 SuMod 迁移(ConsoleMod/MemoryBankDrawMod/RainWithoutDawn/StringInterceptor/MiniMap/ScMultiplayer) - [x] Git 初始提交推送(Gitee + GitHub) ## 待完成 - [ ] Game 层 127 个差异文件条件编译 - [ ] Engine 层 52 个差异文件 - [ ] Content.pak 双平台条件嵌入 - [ ] Android 版完整运行验证 ## MAUI 移植版 (net10.0) 基于本项目已完成 MAUI 移植,项目路径: `P:\UGIT\Survivalcraft` - 三个子项目: Engine/EntitySystem/Survivalcraft,均为 MAUI 多目标(net10.0-android/windows/maccatalyst) - Silk.NET 替代 SharpDX + OpenTK - WindowsAppSDK SelfContained 部署 - Android 输入系统全面修复(触摸/手柄/键盘/鼠标) - 双平台编译 0 错误通过 ## 已完成 ## 文档索引 | 文档 | 内容 | |------|------| | `SOUL.md` | 项目铁律(27 条) | | `AGENTS.md` | 贡献规范与文档索引 | | `doc/architecture.md` | 双 csproj 双 sln 架构详解、配置细节、SuMod 集成 | | `doc/msbuild-traps.md` | 12 个 MSBuild/构建陷阱及解决方案 | | `doc/decompilation-merge-guide.md` | 2.4.10.1→2.4.10.8 反编译合并经验 | | `doc/sumod-architecture.md` | SuMod 六大组件、注入模式、常见陷阱 | | `doc/mod-development-guide.md` | Mod 开发 5 步流程、项目模板、AOT 兼容 | ## 仓库 - Gitee: https://gitee.com/SC-SPM/survivalcraft-su-api - GitHub: https://github.com/SCAPI24/SurvivalcraftMonoWin