8#include "../filter/builder_i.hpp"
16template<
typename Base,
typename ... Components>
22 , m_event_count(0) { }
27 , m_event_count(0) { }
33 m_desc->
events[m_event_count ++] = evt;
53 Base&
ctx(
void *ptr) {
65 virtual flecs::world_t* world_v() = 0;
69 return *
static_cast<Base*
>(
this);
73 int32_t m_event_count;
void(* ecs_iter_action_t)(ecs_iter_t *it)
Function prototype for iterables.
Used with ecs_observer_init.
ecs_filter_desc_t filter
Filter for observer.
ecs_entity_t events[(8)]
Events to observe (OnAdd, OnRemove, OnSet, UnSet)
void * ctx
User context to pass to callback.
bool yield_existing
When observer is created, generate events from existing data.
ecs_run_action_t run
Callback invoked on an event.
Filter builder interface.
Observer builder interface.
Base & event()
Specify the event(s) for when the observer should run.
Base & ctx(void *ptr)
Set observer context.
Base & yield_existing(bool value=true)
Invoke observer for anything that matches its filter on creation.
Base & run(ecs_iter_action_t action)
Set observer run callback.
Base & event(entity_t evt)
Specify the event(s) for when the observer should run.