#pragma once

#include "../../../GAME_COMMON.h"
#include "../../ecs_entity.h"

#define GAME_ENTITY_TYPE_COUNT GAME_ENTITY_GOODIE + 1
typedef enum GameEntityType
{
	GAME_ENTITY_PLAYER,
	GAME_ENTITY_SNAKE,
	GAME_ENTITY_CUPPER,
	GAME_ENTITY_CHIPPER,
	GAME_ENTITY_CHIP,
	GAME_ENTITY_CRUMBLER,
	GAME_ENTITY_CUSTARPEDO,
	GAME_ENTITY_EXCORSANT,
	GAME_ENTITY_ROCK_CANDY_MICHEAL,
	GAME_ENTITY_NEAPOLITOTEM,
	GAME_ENTITY_EZ_ACHE,
	GAME_ENTITY_CREPER,
	GAME_ENTITY_GUM_MK_II,
	GAME_ENTITY_GUMBALL,
	GAME_ENTITY_ELEMENTAL,
	GAME_ENTITY_GOODIE
} GameEntityType;

typedef struct ComponentGameEntityType
{
	ECSComponent component;
	GameEntityType type;
} ComponentGameEntityType;

void component_game_entity_type_init(ComponentGameEntityType* self, GameEntityType type);

static const ECSComponentInfo COMPONENT_GAME_ENTITY_TYPE_INFO = 
{
	.system = 
	{
		.functions = 
		{ 
			NULL,
			NULL, 
			NULL,
			NULL
		}
	},
	.type = ECS_COMPONENT_GAME_ENTITY_TYPE,
	.size = sizeof(ComponentGameEntityType)
};


