# DR game/DR rs 0.3.x 更新日志 ## 20240522 DR rs 0.3.4 我希望今晚可以睡觉 ( 指 0 点前完事 ) - 为 `SR1Ship_rs`(`PySR1Ship`) - 添加了 `fn disconnected_parts(&self) -> Vec<(Vec<(PySR1PartType, PySR1PartData)>, PySR1Connections)>` 方法 - 用于获取所有断开链接的部件 - 每一个列表是一组断开链接的部件 - 去除了 `#[getter] fn get_connection` - 添加了 `fn connections(&self) -> PySR1Connections` 方法 - 用于获取所有连接点信息 - 为 `Connection` - 添加了一个 `pub fn as_raw_data(&self) -> RawConnectionData` 方法 - 用于获取连接的原始数据 - 也是用来方便外面包装 - 添加了 `RawConnectionData` - `pub type RawConnectionData = (i32, i32, IdType, IdType)` - 添加了 `SR1Connection_rs`(`PySR1Connections`) - 用来存一堆连接点信息 - 同时提供一些好用的 API - `fn search_connection_by_parent(&self, parent_id: IdType) -> Vec` - 用于搜索所有以 `parent_id` 为父节点的连接 - `fn search_by_child(&self, child_id: IdType) -> Vec` - 用于搜索所有以 `child_id` 为子节点的连接 - `fn search_by_id(&self, any_id: IdType) -> Vec` - 用于搜索所有包含 `any_id` 的连接 - `fn search_by_both_id(&self, parent_id: IdType, child_id: IdType) -> Vec` - 用于搜索所有同时包含 `parent_id` 和 `child_id` 的连接 - 保险起见, 我还是返回一个 Vec - 万一真有 双/多 连接呢 - `fn get_raw_data(&self) -> Vec` - 获取所有连接的原始数据 - 万一你确实需要吭哧吭哧去处理原始数据呢 > 现在 0:10 了, 我去睡觉了 ## 20240516 DR rs 0.3.3 然后就又开始熬夜更新了 - 修复了上个版本在 xml 解析里加的 Enum 导致的解析失败问题 ## 20240515 DR rs 0.3.1/2 好家伙, 上次更新还是在上次, 这次更新已经是在这次了 - 修复了因为 GitHub Copilot 自动补全补错了内容导致的解析错误问题 ```diff title="mods/dr_game/Difficult_Rocket_rs/src/src/sr1_parse/data_structure/ship.rs" - #[serde(rename = "@inflation")] + #[serde(rename = "@inflate")] pub inflate: Option, - #[serde(rename = "@inflationTarget")] + #[serde(rename = "@inflation")] pub inflation: Option, ``` - 去除了因为 raiper 版本更新所以导致没法过编译的 `dr_physics/simulation.rs` - 好欸, raiper 更新了 - 更新了一些别的依赖的版本 ## 20231224 DR rs 0.3.0 感谢 [@InfyniteHeap](https://github.com/InfyniteHeap) 进行的重构工作 - 重构了 Rust 部分的文件结构 - 去除了早期的 `serde-xml-rs` 和 `xml-rs` 依赖 - 这是因为之前 `quick-xml` 在解析 `Option>` 有问题 - 现在问题解决了 - 以及 `quick-xml` 的解析方式更符合规范 ( 或者说更明确 ) - 将所有的 logging 去除 - 改为 `lib-not-dr.loggers` - 现在飞船保存测试的命令叫作 `save`