#pragma once
#include "ModuleHook.h"
#include "CharacterUnmanaged.h"
namespace NosSmoothCore
{
	public ref class Character
	{
	public:
		/// 
		/// Creates new instance of Character.
		/// 
		/// The hooking module holding the information about NostaleX.dat
		Character(NosSmoothCore::ModuleHook moduleHook);
		/// 
		/// Starts walking to the specified x, y position
		/// 
		/// The x coordinate to walk to.
		/// The y coordinate to walk to.
		void Walk(int x, int y);
		/// 
		/// Registers the callback for walk function.
		/// 
		/// The callback to call.
		void SetWalkCallback(WalkCallback^ walkCallback);
		/// 
		/// Reset the registered hooks.
		/// 
		void ResetHooks();
	private:
		WalkCallback^ _walkCallback;
	};
}