# DR game/DR rs 0.3.x 更新日志 ## 20240530 DR rs 0.3.7 - 去掉了 `dict_derive` 的依赖 - 这玩意似乎没啥用 ## 20240524 DR game 0.3.5 > 非常坏 flag > 来自 20240524 00:20 - 重写了一遍 sprite_batch 的主要逻辑 - 改了一些命名 - 现在代码阳间了不少 ## 20240523 DR rs 0.3.6 > 我再立一次 flag, 今晚 0 点前完事 - 为 `SR1PartData_rs` - 添加了 `fn get_part_box_by_type(&self, part_type: PySR1PartType) -> ((f64, f64), (f64, f64))` 方法 - 用来在你同时有这个部件的数据和类型的时候直接获取这个部件的碰撞箱 - 之前的 API 设计整的直接从 ship 获取会更方便 - 显然现在需要重构一下了() - 原始的 API (`PySR1Ship::get_part_box`) 依然保留 - 毕竟你需要从船上获取的时候确实这样更方便 ## 20240523 DR game 0.3.4 - 加入了强制校验 DR rs 的机制 - 现在不会再出现 sss 忘记在拉取代码后编译的情况了() - 以及版本号还是三位吧 - DR sdk 预计在下个版本也改过来 (?) ## 20240523 DR rs 0.3.5 - 为了配合 DR game 的强制校验机制 - 顺手步进了一下版本号 ## 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`