#ifndef PLAYER_H__
#define PLAYER_H__
#include "define.h"
#include "transformation.h"
#include "vertexbuffer.h"
#include "blockinfo.h"
struct Mob;
class Player{
    public:
        Player ( const Vector3f & position , float rotX = 0 , float rotY = 0);
        void TurnCamera(float x, float y);
        void SetPosition(Vector3f delta);
        Vector3f SimulateMove ( bool front , bool back , bool left , bool right , bool run , float elapsedTime );
        float SimulateJump( bool jump, bool& InJump, float& deltay, bool OnGround, float& jumpsize);
        void ApplyTransformation ( Transformation & transformation ) const;
        Vector3f Position();
        void Damage(Mob& mob);
        float Health();
        void setHealth(float health);
    private:
        float m_rotx = 0;
        float m_roty = 0;
        float m_health;
        float m_damage = 50.f;
        Vector3f m_pos;
};

class Mob{
    public:
        Mob();
        Mob(const Vector3f & position, float Damage, int Armour);
        void SetPosition(Vector3f delta);
        void Move(Player p1);
        Vector3f Position();
        void Damage(Player& p1);
        void RenderMob();
        float GetDamage();
        float Health();
        void setHealth(float health);
        int GetArmour();
        bool isNull();
        bool isEqual(Mob mob);
    private:
        float m_health;
        int m_armour;
        float m_damage;
        Vector3f m_pos;
};

#endif