// Copyright (c) 2023 Alex Diener. All rights reserved.

#ifndef __EntityComponent_steering_H__
#define __EntityComponent_steering_H__

typedef struct EntityComponent_steering EntityComponent_steering;
#define EntityComponent_steering_superclass GameEntityComponent

#include "gamemath/Vector2i.h"
#include "PROJECT_NAME/GameEntityComponent.h"

#define EntityComponent_steering_ivars \
	GameEntityComponent_ivars

#define EntityComponent_steering_vtable(self_type) \
	GameEntityComponent_vtable(self_type) \
	\
	Vector2i (* getMoveVector)(self_type * self, struct GameEntity * entity);

stemobject_declare(EntityComponent_steering)

bool EntityComponent_steering_init(EntityComponent_steering * self);
void EntityComponent_steering_dispose(EntityComponent_steering * self);
Vector2i EntityComponent_steering_getMoveVector(EntityComponent_steering * self, struct GameEntity * entity);

#endif
