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 ('delta, 'fld) world = ('delta, 'fld) Comp.world
val new_world : unit -> ('a, 'b) CEnt.world
val add_entity : ('a, 'b) CEnt.world -> CEnt.entity -> ('a, 'b) CEnt.world
val add_entities :
('a, 'b) CEnt.world -> CEnt.entity list -> ('a, 'b) CEnt.world
val add_entity_id :
('a, 'b) CEnt.world -> CEnt.entity -> ('a, 'b) CEnt.world * CEnt.id
val add_entities_id :
('a, 'b) CEnt.world ->
CEnt.entity list -> ('a, 'b) CEnt.world * CEnt.id list
val add_entities_init :
w:('a, 'b) CEnt.world ->
n:int -> f:(int -> CEnt.entity) -> ('a, 'b) CEnt.world
val add_entities_ar :
('a, 'b) CEnt.world -> CEnt.entity array -> ('a, 'b) CEnt.world
val add_entities_id_ar :
('a, 'b) CEnt.world ->
CEnt.entity array -> ('a, 'b) CEnt.world * CEnt.id array
val has_entity : ('a, 'b) CEnt.world -> CEnt.id -> bool
val replace_entity :
('a, 'b) CEnt.world -> CEnt.id -> CEnt.entity -> ('a, 'b) CEnt.world
val remove_entity :
('a, 'b) CEnt.world -> CEnt.entity -> ('a, 'b) CEnt.world
val remove_entity_id :
('a, 'b) CEnt.world -> CEnt.id -> ('a, 'b) CEnt.world
val get_entity : ('a, 'b) CEnt.world -> CEnt.id -> CEnt.entity
val get_entity_opt : ('a, 'b) CEnt.world -> CEnt.id -> CEnt.entity option
val get_entities : ('a, 'b) CEnt.world -> CEnt.id list -> CEnt.entity list
val do_get_entities :
('a, 'b) CEnt.world -> CEnt.id list -> CEnt.entity list
val get_entities_with_components :
('a, 'b) CEnt.world -> Comp.component_type list -> CEnt.entity list
type system_label = Ent.system_label
val world_step :
('delta, unit) CEnt.world ->
?labels:CEnt.system_label list -> 'delta -> ('delta, unit) CEnt.world
val world_step_fold :
('delta, 'fld) CEnt.world ->
?labels:CEnt.system_label list ->
'delta -> 'fld -> ('delta, 'fld) CEnt.world * 'fld
val iter_entities : (CEnt.entity -> unit) -> ('a, 'b) CEnt.world -> unit
val fold_entities :
(CEnt.entity -> 'p -> 'p) -> ('a, 'b) CEnt.world -> 'p -> 'p
val num_entities : ('a, 'b) CEnt.world -> int
val num_entities_with_components :
('a, 'b) CEnt.world -> Comp.component_type list -> int
type mapper = Comp.component_type Ent.mapper
val make_mapper : Comp.component_type list -> CEnt.mapper
type 'a update = 'a Ent.update
type ('a, 'b) system =
(Comp.component_type, Comp.component, 'a, 'b) Ent.system
val add_system :
('delta, 'a) CEnt.world ->
CEnt.mapper ->
?label:CEnt.system_label ->
('delta, 'a) CEnt.system -> ('delta, 'a) CEnt.world
val add_systems :
('delta, 'a) CEnt.world ->
(CEnt.mapper * CEnt.system_label option * ('delta, 'a) CEnt.system) list ->
('delta, 'a) CEnt.world
type ('delta, 'fld) foldable_system =
(Comp.component_type, Comp.component, 'delta, 'fld) Ent.foldable_system
val add_foldable_system :
('delta, 'fld) CEnt.world ->
CEnt.mapper ->
?label:CEnt.system_label ->
('delta, 'fld) CEnt.foldable_system -> ('delta, 'fld) CEnt.world
val add_foldable_systems :
('delta, 'fld) CEnt.world ->
(CEnt.mapper * CEnt.system_label option *
('delta, 'fld) CEnt.foldable_system)
list -> ('delta, 'fld) CEnt.world
end