#pragma once

#include "../../../COMMON.h"

/* 
 * Components are organized in a specific manner: 
 * - On deletion events
 * - Control
 * - Collisions
 * - Actions
 * - Statistical information
 * - Deletion events
*/

#define ECS_COMPONENT_COUNT ECS_COMPONENT_ACTION_DELETE_ON_TOUCH + 1
typedef enum ECSComponentType
{
	ECS_COMPONENT_PHYSICS,
	ECS_COMPONENT_ACTION_ON_DELETE_GIVE_AMMO,
	ECS_COMPONENT_ACTION_SHOOT,
	ECS_COMPONENT_ACTION_RETURN,
	ECS_COMPONENT_ACTION_REDIRECT,
	ECS_COMPONENT_ACTION_LOCK,
	ECS_COMPONENT_ACTION_DAMAGE,
	ECS_COMPONENT_CONTROL_MOVE,
	ECS_COMPONENT_CONTROL_SHOOT,
	ECS_COMPONENT_CONTROL_AIM,
	ECS_COMPONENT_CONTROL_REDIRECT,
	ECS_COMPONENT_CONTROL_LOCK,
	ECS_COMPONENT_CONTROL_RECALL,
	ECS_COMPONENT_HEALTH,
	ECS_COMPONENT_AMMO,
	ECS_COMPONENT_REDIRECT,
	ECS_COMPONENT_SPRITE,
	ECS_COMPONENT_GAME_OBJECT,
	ECS_COMPONENT_LIFETIME,
	ECS_COMPONENT_ACTION_DELETE_ON_TOUCH
} ECSComponentType;
