#include <entt/entity/registry.hpp>
|
|
#include <entt/signal/dispatcher.hpp>
|
|
#include <entt/signal/emitter.hpp>
|
|
#include "types.h"
|
|
|
|
#ifndef LIB_EXPORT
|
|
#if defined _WIN32 || defined __CYGWIN__
|
|
#define LIB_EXPORT __declspec(dllexport)
|
|
#elif defined __GNUC__
|
|
#define LIB_EXPORT __attribute__((visibility("default")))
|
|
#else
|
|
#define LIB_EXPORT
|
|
#endif
|
|
#endif
|
|
|
|
ENTT_NAMED_TYPE(int)
|
|
ENTT_NAMED_TYPE(char)
|
|
ENTT_NAMED_TYPE(double)
|
|
ENTT_NAMED_TYPE(float)
|
|
|
|
LIB_EXPORT typename entt::registry::component_type another_module_int_type() {
|
|
entt::registry registry;
|
|
|
|
(void)registry.type<char>();
|
|
(void)registry.type<const int>();
|
|
(void)registry.type<double>();
|
|
(void)registry.type<const char>();
|
|
(void)registry.type<float>();
|
|
|
|
return registry.type<int>();
|
|
}
|
|
|
|
LIB_EXPORT typename entt::registry::component_type another_module_char_type() {
|
|
entt::registry registry;
|
|
|
|
(void)registry.type<int>();
|
|
(void)registry.type<const char>();
|
|
(void)registry.type<float>();
|
|
(void)registry.type<const int>();
|
|
(void)registry.type<double>();
|
|
|
|
return registry.type<char>();
|
|
}
|
|
|
|
LIB_EXPORT void assign_velocity(int vel, entt::registry ®istry) {
|
|
for(auto entity: registry.view<position>()) {
|
|
registry.assign<velocity>(entity, vel, vel);
|
|
}
|
|
}
|
|
|
|
LIB_EXPORT void trigger_an_event(int payload, entt::dispatcher &dispatcher) {
|
|
dispatcher.trigger<an_event>(payload);
|
|
}
|
|
|
|
LIB_EXPORT void emit_an_event(int payload, test_emitter &emitter) {
|
|
emitter.publish<an_event>(payload);
|
|
}
|