#tile #editor #load #total #loader #path #te3

teloader

Total Editor 的等级文件加载器 (*.te3)

1 个不稳定版本

0.1.0 2024 年 8 月 24 日

#638编码

Download history 109/week @ 2024-08-18

每月 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,请使用 serdeserde_json 功能(默认)。

如果您想使用 nanoserde,请使用 nanoserde 功能。

您可以同时使用这两个功能,并且它们仅影响底层后端反序列化。

依赖关系

~0.7–1.5MB
~31K SLoC