#pragma once

#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include "ltexture.h"

#ifndef SPRITE_H
#define SPRITE_H

//Clase sprite
class Sprite
{
public:
    //Muestra el sprite por pantalla
    void render();
    
    //Obten el valor de la variable
    int getPosX();
    
    //Obten el valor de la variable
    int getPosY();
    
    //Obten el valor de la variable
    int getWidth();
    
    //Obten el valor de la variable
    int getHeight();
    
    //Establece el valor de la variable
    void setPosX(int x);
    
    //Establece el valor de la variable
    void setPosY(int y);
    
    //Establece el valor de la variable
    void setWidth(int w);
    
    //Establece el valor de la variable
    void setHeight(int h);
    
    //Obten el valor de la variable
    SDL_Rect getSpriteClip();

    //Establece el valor de la variable
    void setSpriteClip(SDL_Rect rect);

    //Establece el valor de la variable
    void setSpriteClip(int x, int y, int w, int h);

    //Obten el valor de la variable
    LTexture* getTexture();

    //Establece el valor de la variable
    void setTexture(LTexture &texture);


private:
    //Posición X,Y donde dibujar el sprite
    int mPosX;
    int mPosY;

    //Alto y ancho del sprite
    Uint16 mWidth;
    Uint16 mHeight;

    //Textura donde estan todos los dibujos del sprite
    LTexture *mTexture;

    //Rectangulo de la textura que se dibujará en pantalla
    SDL_Rect mSpriteClip;
};

#endif