You are viewing a potentially older version of this package.
View all versions.
DSPEasy Framework
DSPEasy 系列模组共用的框架:按命名空间隔离的旁车存档、面板基座、配方求解等。本身不含玩法,只有其它 DSPEasy 模组依赖它时才需要安装。
| Date uploaded | a day ago |
| Version | 0.2.32 |
| Download link | Suntion-DSPEasy_Framework-0.2.32.zip |
| Downloads | 57 |
| Dependency string | Suntion-DSPEasy_Framework-0.2.32 |
This mod requires the following mods to function
README
DSPEasy Framework
Dyson Sphere Program(戴森球计划)DSPEasy 系列模组共用的框架库。
这个包本身不提供任何玩法功能。 只有当你安装的其它模组(例如
DSPEasy Buildings、DSPEasy Exchange) 依赖它时,或者你要基于它做开发时,才需要安装。汇报问题(Bug/Issue):github
包含什么
| 模块 | 能力 |
|---|---|
DSPEasy.Framework.Save |
命名空间旁车存档:在存档旁边写一个 .mod.dat,数据块按 命名空间/块ID 分区,一个模组的数据不会踩到另一个模组;原子写入(先写 .tmp 再替换),文件格式 2,可读旧格式 1 并自动升级。 |
DSPEasy.Framework.UI |
面板基座:UiFactory 提供文本 / 按钮 / 滑条的工厂方法与配色;UiDrag 处理窗口拖动(轮询式,口径同原版 UIWindowDrag);UiFocus 处理层级——只在打开时提层一次,不会像每帧抢置顶那样把游戏的物品提示条压掉。 |
DSPEasy.Framework.Recipes |
RecipeSolver:配方树递归展开,带环检测与深度上限,用于「需要哪些材料」这类计算。 |
DSPEasy.Framework.Items |
物品栈辅助。 |
DSPEasy.Framework.Blueprint |
模组之间的蓝图数据通道。 |
DSPEasy.Framework.Abnormal |
异常状态守卫:动工厂之前先确认游戏状态正常。 |
安装
- 先装 BepInEx 5.4.17(x64,Mono)(已写在依赖里,模组管理器会自动处理)。
- 把
DSPEasy.Framework.dll放进BepInEx/plugins/(Thunderstore Mod Manager / r2modman 会自动放好)。 - 启动一次游戏,日志里能看到依赖它的模组正常加载。
⚠️
BepInEx/plugins/下只能有一份DSPEasy.Framework.dll。 BepInEx 会递归加载plugins/下所有 DLL,每一份都会建立自己的静态注册表——有了两份, 一份写进去的数据另一份看不到,表现就是「设置存了,重进游戏却全没了」。 升级时请把旧副本删干净。
兼容性
- 游戏:戴森球计划
0.10.35.29151(Unity 2022.3.62f3c1,64 位)。 - BepInEx:
5.4.17.0(Mono)。 - 旁车存档格式:2(能读格式 1,旧档会自动升级,不需要手动迁移)。
开发者参考
// 注册一个带命名空间的存档块(块 ID 必须是 4 个可打印 ASCII 字符)
ModSave.Register("MyMod", new MyStateChunk(MyState.Table));
// 显式指定命名空间读写(不传参数则读写「本程序集注册的全部块」)
ModSave.WriteForSaveName(saveName, "MyMod");
// 面板:自己拼控件 + 处理层级
var root = UiFactory.NewRect(transform, "MyPanel");
UiFactory.Place(root, ...).Pos(...);
UiFocus.BringToFront(root); // 打开时提层一次即可,不要每帧抢置顶
- 命名空间:
DSPEasy.Framework.Save/.UI/.Recipes/.Items/.Blueprint/.Abnormal。 - 依赖方向是单向的:框架只引用游戏的
Assembly-CSharp与 BepInEx / 0Harmony,不引用任何使用它的模组。
CHANGELOG
更新日志
0.2.32
- 面板拖动改为轮询式:
UiDrag按鼠标左键逐帧推动窗口,命中判定用画布的eventCamera,口径对齐原版UIWindowDrag;修掉 Screen Space - Camera 画布下「点不中、拖不动」。 - 新增
UiFactory.CanvasCamera:按画布渲染模式返回正确的换算相机(Overlay 为null,其它用画布相机),避免RectTransformUtility命中算偏。 UiFocus抽出TopmostIs:只认射线命中的最上层控件,点在别的窗口上不会再误提本面板或误触拖动。- 依赖本框架的面板模组需一起升级才能拿到拖动修复;
DSPEasy Buildings 0.2.33已按本版本重编译。
0.2.31
- 仅文档与版本号更新(Thunderstore 无法只刷新文档,因此补丁版本重发),功能与 0.2.30 完全一致。
- 补充收集 Issue 的 URL。
0.2.30
- 首次发布到 Thunderstore。
- 旁车存档为格式 2:块头带命名空间,一个命名空间的数据不会被其它模组的重写覆盖;写入有全局锁与
.tmp原子替换。