13ecs_entity_t do_import(world& world,
const char *symbol) {
14 ecs_trace(
"#[magenta]import#[reset] %s", _::type_name<T>());
21 auto m_c = component<T>(world,
nullptr,
false);
25 world.emplace<T>(world);
30 ecs_assert(m != 0, ECS_MODULE_UNDEFINED, symbol);
31 ecs_assert(m == m_c, ECS_INTERNAL_ERROR, NULL);
40 const char *symbol = _::symbol_name<T>();
44 if (!_::cpp_type<T>::registered(world)) {
48 _::cpp_type<T>::init(m,
false);
52 m = _::do_import<T>(world, symbol);
58 m = _::do_import<T>(world, symbol);
74template <
typename Module>
76 flecs::id_t result = _::cpp_type<Module>::id(m_world,
nullptr,
false);
84template <
typename Module>
86 return flecs::_::import<Module>(*
this);
void ecs_add_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id)
Add a (component) id to an entity.
#define ecs_assert(condition, error_code,...)
Assert.
ecs_id_t ecs_entity_t
An entity identifier.
flecs::entity import()
Import a module.
flecs::entity module(const char *name=nullptr) const
Define a module.
ecs_entity_t ecs_lookup_symbol(const ecs_world_t *world, const char *symbol, bool lookup_as_path, bool recursive)
Lookup an entity by its symbol name.
ecs_entity_t ecs_add_path_w_sep(ecs_world_t *world, ecs_entity_t entity, ecs_entity_t parent, const char *path, const char *sep, const char *prefix)
Add specified path to entity.
ecs_entity_t ecs_set_scope(ecs_world_t *world, ecs_entity_t scope)
Set the current scope.