21个版本 (破坏性)

使用旧的Rust 2015

0.17.0 2019年1月11日
0.15.0 2018年4月18日
0.13.0 2018年3月6日
0.2.3 2017年12月11日
0.2.0 2017年10月29日

#2043 in 游戏开发

Download history 69/week @ 2024-03-29 21/week @ 2024-04-05

72 每月下载量

MIT 许可证

61KB
1.5K SLoC

entity-store-code-gen


lib.rs:

游戏数据存储的代码生成器。数据组织到"组件"中——每个组件都有特定的Rust类型。"实体"——游戏世界中的对象——是组件的集合。可以通过在组件存储中存储实体的id来将组件与实体关联。

一个简单的例子

struct EntityStore {
    position: HashMap<EntityId, ::cgmath::Vector2<f32>>,
    solid: HashSet<EntityId>,
    tile: HashSet<EntityId, MyTileType>,
}

注意solid字段是一个HashSet而不是一个HashMap。集合用于存储没有关联数据的标志。

必须从构建脚本中使用。一个简单的构建脚本如下所示

extern crate entity_store_code_gen;

fn main() {
    entity_store_code_gen::generate(include_str!("spec.toml"), "entity_store.rs").unwrap()
}

使用 entity_store_helper 帮助使用生成的代码。

依赖项

~11–14MB
~291K SLoC