#pragma once

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

#include "../component_game_object.h"

typedef struct ComponentAnimationLevitate
{
	ECSComponent component;
	f32 height;
	f32 range;
	f32 speed;
	u32 timer;
} ComponentAnimationLevitate;

void component_animation_levitate_init(ComponentAnimationLevitate* self, f32 height, f32 range, f32 speed);
void component_animation_levitate_tick(ComponentAnimationLevitate* self, ECS* ecs);

static const ECSComponentInfo COMPONENT_ANIMATION_LEVITATE_INFO = 
{
	.system = 
	{
		.functions = 
		{ 
			NULL,
			NULL, 
			(ECSFunction)component_animation_levitate_tick,
			NULL
		}
	},
	.type = ECS_COMPONENT_ANIMATION_LEVITATE,
	.size = sizeof(ComponentAnimationLevitate)
};
