Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
entity_builder.inl
Go to the documentation of this file.
1
12 flecs::id_t e,
13 const char *json,
14 flecs::from_json_desc_t *desc = nullptr)
15{
16 flecs::entity_t type = ecs_get_typeid(m_world, e);
17 if (!type) {
18 ecs_err("id is not a type");
19 return to_base();
20 }
21
22 void *ptr = ecs_ensure_id(m_world, m_id, e);
23 ecs_assert(ptr != NULL, ECS_INTERNAL_ERROR, NULL);
24 ecs_ptr_from_json(m_world, type, ptr, json, desc);
25 ecs_modified_id(m_world, m_id, e);
26
27 return to_base();
28}
29
36 flecs::entity_t r,
37 flecs::entity_t t,
38 const char *json,
39 flecs::from_json_desc_t *desc = nullptr)
40{
41 return set_json(ecs_pair(r, t), json, desc);
42}
43
49template <typename T>
51 const char *json,
52 flecs::from_json_desc_t *desc = nullptr)
53{
54 return set_json(_::cpp_type<T>::id(m_world), json, desc);
55}
56
62template <typename R, typename T>
64 const char *json,
65 flecs::from_json_desc_t *desc = nullptr)
66{
67 return set_json(
68 _::cpp_type<R>::id(m_world),
69 _::cpp_type<T>::id(m_world),
70 json, desc);
71}
72
78template <typename R>
80 flecs::entity_t t,
81 const char *json,
82 flecs::from_json_desc_t *desc = nullptr)
83{
84 return set_json(
85 _::cpp_type<R>::id(m_world), t,
86 json, desc);
87}
88
94template <typename T>
96 flecs::entity_t r,
97 const char *json,
98 flecs::from_json_desc_t *desc = nullptr)
99{
100 return set_json(
101 r, _::cpp_type<T>::id(m_world),
102 json, desc);
103}
FLECS_API const char * ecs_ptr_from_json(const ecs_world_t *world, ecs_entity_t type, void *ptr, const char *json, const ecs_from_json_desc_t *desc)
Parse JSON string into value.
#define ecs_assert(condition, error_code,...)
Assert.
Definition log.h:351
Self & set_json(const char *json, flecs::from_json_desc_t *desc=nullptr)
Set pair from JSON.
Self & set_json(flecs::entity_t r, flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr)
Set pair from JSON.
Self & set_json(const char *json, flecs::from_json_desc_t *desc=nullptr)
Set component from JSON.
Self & set_json(flecs::id_t e, const char *json, flecs::from_json_desc_t *desc=nullptr)
Set component from JSON.
Self & set_json(flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr)
Set pair from JSON.
Self & set_json_second(flecs::entity_t r, const char *json, flecs::from_json_desc_t *desc=nullptr)
Set pair from JSON.
void * ecs_ensure_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id)
Get a mutable pointer to a component.
void ecs_modified_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id)
Signal that a component has been modified.
ecs_entity_t ecs_get_typeid(const ecs_world_t *world, ecs_id_t id)
Get the type for an id.
Used with ecs_ptr_from_json(), ecs_entity_from_json().
Definition json.h:33
Type class.
Definition type.hpp:21