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 游戏开发
72 每月下载量
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