1#include <basics.h>
2#include <stdio.h>
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23typedef struct { double value; } Defense;
24
25int main(int argc, char *argv[]) {
27
29
30
31
32
34
35
38 ecs_set(ecs, SpaceShip, Defense, {50});
39
40
43
44
45
46 const Defense *d_inst =
ecs_get(ecs, inst, Defense);
47 printf("defense: %f\n", d_inst->value);
48
49
50
51 ecs_set(ecs, SpaceShip, Defense, { 100 });
52 printf("defense after set: %f\n", d_inst->value);
53
54
56 .terms = {
58 }
59 });
60
64 for (int i = 0; i < it.count; i ++) {
65 printf("%s: defense: %f\n",
67 }
68 }
69
70
71
72
73
74
76}
77
78
void ecs_add_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t component)
Add a (component) ID to an entity.
FLECS_API const ecs_entity_t ecs_id(EcsDocDescription)
Component ID for EcsDocDescription.
ecs_id_t ecs_entity_t
An entity identifier.
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.
#define ecs_add_pair(world, subject, first, second)
Add a pair to an entity.
#define ecs_entity(world,...)
Shorthand for creating an entity with ecs_entity_init().
#define ECS_COMPONENT(world, id)
Declare and define a component.
#define ecs_query(world,...)
Shorthand for creating a query with ecs_query_init().
#define ecs_set(world, entity, component,...)
Set a component value.
#define ecs_get(world, entity, T)
Get a component.
#define ecs_field(it, T, index)
Get field data for a component.
const char * ecs_get_name(const ecs_world_t *world, ecs_entity_t entity)
Get the name of an entity.
bool ecs_query_next(ecs_iter_t *it)
Progress a query iterator.
ecs_iter_t ecs_query_iter(const ecs_world_t *world, const ecs_query_t *query)
Create a query iterator.
int ecs_fini(ecs_world_t *world)
Delete a world.
ecs_world_t * ecs_init_w_args(int argc, char *argv[])
Create a new world with arguments.
Queries are lists of constraints (terms) that match entities.