1 个不稳定版本
新 0.1.0 | 2024 年 8 月 24 日 |
---|
#638 在 编码
每月 109 次下载
24KB
445 行
Total Editor Rust Loader
这是什么?
此软件包加载来自 Total Editor 3 的 *.te3 文件。
如何使用?
对于示例,您可以查看此存储库的 examples/ 文件夹。
或者您可以使用此代码片段。
use total_editor_rs::{
serde,
tiles::{dense::DenseTiles, sparse::SparseTiles},
};
fn main() {
// Loads the assets paths, entities and raw tiles.
let (entities, raw_tiles, assets) = serde::from_path("path/to/file").unwrap();
// Turns raw tiles into a more usable format.
// Dense format for random tile accesses.
let dense_tiles = DenseTiles::from_raw(&raw_tiles);
// Sparse format for iterations.
let sparse_tiles = SparseTiles::from_raw(&raw_tiles);
}
此代码片段首先加载实体、资产路径(纹理和模型)和原始瓦片。原始瓦片表示文件中的瓦片,因此并不非常有用。
因此,必须首先将其转换为两种结构之一。
DenseTiles
是一个结构,它允许以 O(1) 的成本访问瓦片,但需要包括空瓦片在其表示中。这使得迭代变慢,因为您需要迭代空瓦片。
SparseTiles
是一个结构,它通过忽略空瓦片来实现快速迭代。然而,这会减慢瓦片的随机访问速度,因为它们必须在 O(n) 时间内找到结构内部。
功能
此软件包有两个功能,用于指定您想要使用的反序列化库。
如果您想使用 serde
,请使用 serde
和 serde_json
功能(默认)。
如果您想使用 nanoserde
,请使用 nanoserde
功能。
您可以同时使用这两个功能,并且它们仅影响底层后端反序列化。
依赖关系
~0.7–1.5MB
~31K SLoC