#ifndef ARC_STD_ENTITY_H_ #define ARC_STD_ENTITY_H_ #ifdef __cplusplus extern "C" { #endif #include /** * @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_