Crate pi_world
Source - alter
- app
- App包含一个world,一个调度器,及一个运行时
- archetype
- async_function_system
- column
- commands
- debug
- dot
- Simple graphviz dot file format output.
- editor
- entry_query
- event
- 事件,及组件移除
- exec_graph
- 异步执行 静态有向无环图 的执行节点
执行节点有3种,system执行节点,原型执行节点, 单例执行节点
内部维护了图的节点向量和边向量
执行节点采用pi_append_vec存放, 边也采用pi_append_vec
执行图本身支持动态添加原型执行节点及创建相应的边,
可线程安全的放入新节点和边,并线程安全的连接from和to的边
如果有A对X写和Y读,则创建Y–>A和A–>X的边
如果有A和B都会对X写,写不能并行,而A在B前面先写,则创建A–>B的边, 这样B就会等待A执行后再执行
- fetch
- filter
- () 为空过滤器,表示不做过滤
Empty表示取World的空原型
2种原型过滤器 Without With
Or只支持多个With,表示原型上只要有任何1个C就可以
Changed Removed Destroyed为迭代器,多个迭代器是或关系, 原型上只要有1个可迭代的组件就可以
Query<(&T, &mut C8>), (Without,With,With,Or<(With, With)>, Changed, Destroyed, Removed)>
- function_system
- insert
- listener
- multi_res
- 多例资源, 每个独立system都维护该类型的自己独立的资源。
这样多个独立system可以并行写,然后多个system并行读,读的时候遍历所有写system的独立资源。
这样就实现了并行写,并行读。
每个独立的资源都有自己的Tick, 并且多例资源有一个共享的Tick。
- param_set
- 在system_parms的init_state时,会检查参数之间是否有读写冲突,比如组件读写冲突
参数集, 用来容纳有读写冲突的参数,参数集内保证只有一个可以读写,所以参数集内的参数不彼此检查读写冲突
- param_unready
- 在system_parms的init_state时,会检查参数之间是否有读写冲突,比如组件读写冲突
参数集, 用来容纳有读写冲突的参数,参数集内保证只有一个可以读写,所以参数集内的参数不彼此检查读写冲突
- prelude
- Most commonly used re-exported types.
- query
- 查询
- schedule
- schedule_config
- single_res
- 单例资源, 先system依次写,然后多system并行读
- system
- system_params
- table
- utils
- world
- world_ptr