DR-docs/docs/main/change_log/game/0-3.md

79 lines
3.0 KiB
Markdown

# 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<RawConnectionData>`
- 用于搜索所有以 `parent_id` 为父节点的连接
- `fn search_by_child(&self, child_id: IdType) -> Vec<RawConnectionData>`
- 用于搜索所有以 `child_id` 为子节点的连接
- `fn search_by_id(&self, any_id: IdType) -> Vec<RawConnectionData>`
- 用于搜索所有包含 `any_id` 的连接
- `fn search_by_both_id(&self, parent_id: IdType, child_id: IdType) -> Vec<RawConnectionData>`
- 用于搜索所有同时包含 `parent_id``child_id` 的连接
- 保险起见, 我还是返回一个 Vec
- 万一真有 双/多 连接呢
- `fn get_raw_data(&self) -> Vec<RawConnectionData>`
- 获取所有连接的原始数据
- 万一你确实需要吭哧吭哧去处理原始数据呢
> 现在 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<i8>,
- #[serde(rename = "@inflationTarget")]
+ #[serde(rename = "@inflation")]
pub inflation: Option<f64>,
```
- 去除了因为 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<Vec<T>>` 有问题
- 现在问题解决了
- 以及 `quick-xml` 的解析方式更符合规范 ( 或者说更明确 )
- 将所有的 logging 去除
- 改为 `lib-not-dr.loggers`
- 现在飞船保存测试的命令叫作 `save`