sig
type ('component_type, 'component) entity
val new_entity : unit -> ('a, 'b) Ent.entity
val get_id : ('a, 'b) Ent.entity -> int
val get_id_opt : ('a, 'b) Ent.entity -> int option
val add_component :
('component_type, 'component) Ent.entity ->
'component_type * 'component -> ('component_type, 'component) Ent.entity
val replace_component :
('component_type, 'component) Ent.entity ->
'component_type -> 'component -> ('component_type, 'component) Ent.entity
val has_component :
('component_type, 'component) Ent.entity -> 'component_type -> bool
val get_component :
('component_type, 'component) Ent.entity -> 'component_type -> 'component
val get_component_opt :
('component_type, 'component) Ent.entity ->
'component_type -> 'component option
type ('a, 'b) world
type delta = float
val new_world : unit -> ('a, 'b) Ent.world
val add_entity :
('a, 'b) Ent.world -> ('a, 'b) Ent.entity -> ('a, 'b) Ent.world
val add_entities :
('a, 'b) Ent.world -> ('a, 'b) Ent.entity list -> ('a, 'b) Ent.world
val add_entity_id :
('a, 'b) Ent.world -> ('a, 'b) Ent.entity -> ('a, 'b) Ent.world * int
val world_step : ('a, 'b) Ent.world -> Ent.delta -> ('a, 'b) Ent.world
val iter_entities :
(('a, 'b) Ent.entity -> unit) -> ('a, 'b) Ent.world -> unit
val fold_entities :
(('a, 'b) Ent.entity -> 'c -> 'c) -> ('a, 'b) Ent.world -> 'c -> 'c
val num_entities : ('a, 'b) Ent.world -> int
val get_entity : ('a, 'b) Ent.world -> int -> ('a, 'b) Ent.entity
val get_entity_opt :
('a, 'b) Ent.world -> int -> ('a, 'b) Ent.entity option
type 'a update = Updated of 'a | Unchanged | Removed
type ('a, 'b) system =
('a, 'b) Ent.entity ->
('a, 'b) Ent.world ->
Ent.delta -> ('a, 'b) Ent.entity Ent.update * ('a, 'b) Ent.entity list
val add_system :
('a, 'b) Ent.world -> ('a, 'b) Ent.system -> ('a, 'b) Ent.world
end