17template<
typename Base,
typename ... Components>
40 template <typename E, if_t<is_enum<E>::value> = 0>
45 return this->
kind(target);
52 template <
typename Phase>
62 desc_->multi_threaded = value;
71 desc_->immediate = value;
151 return *
static_cast<Base*
>(
this);
enum_data< E > enum_type(flecs::world_t *world)
Convenience function for getting enum reflection data.
ecs_entity_t entity_t
Entity type.
ecs_world_t world_t
World type.
void(*) ecs_iter_action_t(ecs_iter_t *it)
Function prototype for iterables.
#define ecs_ftime_t
Customizable precision for scalar time values.
Use with ecs_system_init() and ecs_system_update().
ecs_query_desc_t query
System query parameters.
query_builder_i(ecs_query_desc_t *desc, int32_t term_index=0)
Base & kind(entity_t phase)
Specify in which phase the system should run.
Base & kind(E phase)
Specify in which phase the system should run, using an enum constant.
Base & tick_source(flecs::entity_t tick_source)
Set the tick source.
Base & rate(int32_t rate)
Set the system rate.
Base & immediate(bool value=true)
Specify whether the system should be run in an immediate (non-staged) context.
Base & ctx(void *ptr)
Set the system context.
Base & rate(const entity_t tick_source, int32_t rate)
Set the system rate.
Base & run(ecs_iter_action_t action)
Set the system run callback.
Base & kind()
Specify in which phase the system should run.
Base & interval(ecs_ftime_t interval)
Set the system interval.
Base & tick_source()
Set the tick source.
Base & multi_threaded(bool value=true)
Specify whether the system can run on multiple threads.
Base & desc()
Use with cascade() to iterate results in descending (bottom-to-top) order.