52 lines
1,012 B
C
52 lines
1,012 B
C
#ifndef ARC_STD_ENTITY_H_
|
|
#define ARC_STD_ENTITY_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <stdint.h>
|
|
|
|
/**
|
|
* @brief an entity component system type
|
|
*/
|
|
typedef struct ARC_EntitySystem ARC_EntitySystem;
|
|
|
|
/**
|
|
* @brief an entity component system type
|
|
*/
|
|
typedef uint32_t ARC_Entity;
|
|
|
|
/**
|
|
* @brief an entity component system type
|
|
*/
|
|
typedef uint32_t ARC_EntityComponent;
|
|
|
|
/**
|
|
* @brief
|
|
*/
|
|
typedef void (* ARC_EntityCoponent_CreateEmptyFn)(void **type);
|
|
|
|
/**
|
|
* @brief
|
|
*/
|
|
void ARC_EntitySystem_Create(ARC_EntitySystem **entitySystem);
|
|
|
|
/**
|
|
* @brief destroys an ARC_EntitySystem
|
|
*
|
|
* @param[in] vector ARC_EntitySystem to free
|
|
*/
|
|
void ARC_EntitySystem_Destroy(ARC_EntitySystem *entitySystem);
|
|
|
|
void ARC_EntitySystem_RegisterComponent(ARC_EntitySystem *entitySystem, uint32_t componentSize);
|
|
|
|
//void ARC_EntitySystem_RunSystem(ARC_EntitySystem *entitySystem, ARC_Component component);
|
|
|
|
void ARC_EntitySystem_Run(ARC_EntitySystem *entitySystem);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // !ARC_STD_ENTITY_H_
|