Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
plecs.h
Go to the documentation of this file.
1
8#ifdef FLECS_PLECS
9
18#ifndef FLECS_MODULE
19#define FLECS_MODULE
20#endif
21
22#ifndef FLECS_PARSER
23#define FLECS_PARSER
24#endif
25
26#ifndef FLECS_EXPR
27#define FLECS_EXPR
28#endif
29
30#ifndef FLECS_PLECS_H
31#define FLECS_PLECS_H
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37FLECS_API
39
40/* Script component */
41typedef struct EcsScript {
42 ecs_vec_t using_;
43 char *script;
44 ecs_vec_t prop_defaults;
45 ecs_world_t *world;
46} EcsScript;
47
56FLECS_API
58 ecs_world_t *world,
59 const char *name,
60 const char *str);
61
71FLECS_API
73 ecs_world_t *world,
74 const char *filename);
75
77typedef struct ecs_script_desc_t {
78 ecs_entity_t entity; /* Set to customize entity handle associated with script */
79 const char *filename; /* Set to load script from file */
80 const char *str; /* Set to parse script from string */
82
93FLECS_API
95 ecs_world_t *world,
96 const ecs_script_desc_t *desc);
97
98#define ecs_script(world, ...)\
99 ecs_script_init(world, &(ecs_script_desc_t) __VA_ARGS__)
100
109FLECS_API
111 ecs_world_t *world,
112 ecs_entity_t script,
113 ecs_entity_t instance,
114 const char *str,
115 ecs_vars_t *vars);
116
123FLECS_API
125 ecs_world_t *world,
126 ecs_entity_t script,
127 ecs_entity_t instance);
128
129/* Module import */
130FLECS_API
131void FlecsScriptImport(
132 ecs_world_t *world);
133
134#ifdef __cplusplus
135}
136#endif
137
138#endif
139
142#endif
FLECS_API int ecs_plecs_from_str(ecs_world_t *world, const char *name, const char *str)
Parse plecs string.
FLECS_API int ecs_plecs_from_file(ecs_world_t *world, const char *filename)
Parse plecs file.
FLECS_API ecs_entity_t ecs_script_init(ecs_world_t *world, const ecs_script_desc_t *desc)
Load managed script.
FLECS_API void ecs_script_clear(ecs_world_t *world, ecs_entity_t script, ecs_entity_t instance)
Clear all entities associated with script.
struct ecs_script_desc_t ecs_script_desc_t
Used with ecs_script_init()
FLECS_API int ecs_script_update(ecs_world_t *world, ecs_entity_t script, ecs_entity_t instance, const char *str, ecs_vars_t *vars)
Update script with new code.
ecs_id_t ecs_entity_t
An entity identifier.
Definition flecs.h:318
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.
Definition flecs.h:362
#define ECS_COMPONENT_DECLARE(id)
Forward declare a component.
Definition flecs_c.h:112
Used with ecs_script_init()
Definition plecs.h:77