#pragma once

#include "Client.h"

#include "FileUtils.h"
#include "MathUtils.h"

namespace Utils {
	class Move {
	public:
		static auto isOnGround(Actor*) -> bool;
		static auto isOnGroundItem(Actor*) -> bool;
		static auto isStoping(Player*) -> bool;
		static auto isMoving() -> bool;
		static auto isSneaking() -> bool;
		static auto isSneaking2(Player*) -> bool;
		static auto isJumping() -> bool;
		static auto setJumping(Player*, bool) -> void;
		static auto isJumping2(Player*) -> bool;
		static auto setSprinting(Player*, bool) -> void;
		static auto setSprinting2(Player*, bool) -> void;
		static auto isForwarding() -> bool;
		static auto isWalking(Player*) -> bool;
		static auto isBacking(Player*) -> bool;
		static auto isLefting(Player*) -> bool;
		static auto isRighting(Player*) -> bool;
		static auto isHorizontal(Player*) -> bool;
		static auto setVelocity(Player*, glm::vec3) -> void;
		static auto getPosition(Player*) -> glm::vec3;
		static auto getPositionEntity(Actor*) -> glm::vec3;
		static auto getTopPosition(Player*) -> glm::vec3;
		static auto getEyePosition(Player*) -> glm::vec3;
		static auto setPosition(Player*, glm::vec3) -> void;
		static auto teleportPosition(Player*, glm::vec3) -> void;
		static auto getPrevPosition(Player*) -> glm::vec3;
		static auto getBlockPosition(Player*) -> glm::vec3;
		static auto getVelocity(Player*) -> glm::vec3;
		static auto getSpeed(Player*) -> float;
		static auto getMoveYaw() -> float;
	};
}
