#pragma once

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

#include "../component_physics.h"
#include "../stat/component_game_entity_type.h"
#include "../stat/component_act_entity.h"

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

void component_action_delete_on_touch_game_entity_type_init(ComponentActionDeleteOnTouchGameEntityType* self, GameEntityType type);
void component_action_delete_on_touch_game_entity_type_tick(ComponentActionDeleteOnTouchGameEntityType* self, ECS* ecs);
void component_action_delete_on_touch_game_entity_type_add(ComponentActionDeleteOnTouchGameEntityType* self, ECS* ecs);
void component_action_delete_on_touch_game_entity_type_delete(ComponentActionDeleteOnTouchGameEntityType* self, ECS* ecs);

static const ECSComponentInfo COMPONENT_ACTION_DELETE_ON_TOUCH_GAME_ENTITY_TYPE_INFO = 
{
	.system = 
	{
		.functions = 
		{ 
			(ECSFunction)component_action_delete_on_touch_game_entity_type_add,
			(ECSFunction)component_action_delete_on_touch_game_entity_type_delete,
			(ECSFunction)component_action_delete_on_touch_game_entity_type_tick,
			NULL
		}
	},
	.type = ECS_COMPONENT_ACTION_DELETE_ON_TOUCH_GAME_ENTITY_TYPE,
	.size = sizeof(ComponentActionDeleteOnTouchGameEntityType)
};


