archeus/include/arc/std/entity.h

53 lines
1,012 B
C
Raw Normal View History

#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_