sig
type id = Ent.id
type entity = Comp.entity
val new_entity : unit -> CEnt.entity
val get_id : CEnt.entity -> CEnt.id
val get_id_opt : CEnt.entity -> CEnt.id option
val has_component : CEnt.entity -> Comp.component_type -> bool
val has_components : CEnt.entity -> Comp.component_type list -> bool
val has_any_component : CEnt.entity -> Comp.component_type list -> bool
val iter_components :
CEnt.entity -> (Comp.component_type -> Comp.component -> unit) -> unit
val get_components : CEnt.entity -> Comp.component_type list
val cmp_components : CEnt.entity -> Comp.component_type list -> int
val components_match : CEnt.entity -> Comp.component_type list -> bool
type world = Comp.world
val new_world : unit -> CEnt.world
val add_entity : CEnt.world -> CEnt.entity -> CEnt.world
val add_entities : CEnt.world -> CEnt.entity list -> CEnt.world
val add_entity_id : CEnt.world -> CEnt.entity -> CEnt.world * CEnt.id
val add_entities_id :
CEnt.world -> CEnt.entity list -> CEnt.world * CEnt.id list
val add_entities_init :
w:CEnt.world -> n:int -> f:(int -> CEnt.entity) -> CEnt.world
val add_entities_ar : CEnt.world -> CEnt.entity array -> CEnt.world
val add_entities_id_ar :
CEnt.world -> CEnt.entity array -> CEnt.world * CEnt.id array
val has_entity : CEnt.world -> CEnt.id -> bool
val replace_entity : CEnt.world -> CEnt.id -> CEnt.entity -> CEnt.world
val remove_entity : CEnt.world -> CEnt.entity -> CEnt.world
val remove_entity_id : CEnt.world -> CEnt.id -> CEnt.world
val get_entity : CEnt.world -> CEnt.id -> CEnt.entity
val get_entity_opt : CEnt.world -> CEnt.id -> CEnt.entity option
val get_entities : CEnt.world -> CEnt.id list -> CEnt.entity list
val do_get_entities : CEnt.world -> CEnt.id list -> CEnt.entity list
val get_entities_with_components :
CEnt.world -> Comp.component_type list -> CEnt.entity list
val iter_entities : (CEnt.entity -> unit) -> CEnt.world -> unit
val fold_entities : (CEnt.entity -> 'p -> 'p) -> CEnt.world -> 'p -> 'p
val num_entities : CEnt.world -> int
val num_entities_with_components :
CEnt.world -> Comp.component_type list -> int
type mapper = Comp.component_type Ent.mapper
val add_mapper :
CEnt.world -> Comp.component_type list -> CEnt.world * CEnt.mapper
type 'a update = 'a Ent.update
type 'delta system =
(Comp.component_type, Comp.component, 'delta) Ent.system
type ('delta, 'fld) foldable_system =
(Comp.component_type, Comp.component, 'delta, 'fld) Ent.foldable_system
type 'fld born_feedback_func =
(Comp.component_type, Comp.component, 'fld) Ent.born_feedback_func
val world_step :
CEnt.world -> 'delta CEnt.system -> CEnt.mapper -> 'delta -> CEnt.world
val world_step_fold :
CEnt.world ->
('delta, 'fld) CEnt.foldable_system ->
CEnt.mapper ->
?fb:'fld CEnt.born_feedback_func -> 'delta -> 'fld -> CEnt.world * 'fld
end