// Path: src/main/java/org/flamierawieo/x00FA9A/client/Images.java
// public enum Images {
// 
//     CURSOR_IMAGE ("res/images/cursor.png"),
//     BASIC_BACKGROUND ("res/images/background.png"),
//     TEST ("custom/beatmaps/6fb2cf0d Truxton - Alexandrian Ricochet Sphere/background.png"),
// 
//     // Start menu and player widget
//     MENU_BUTTON ("res/images/startmenu/menu-buttons.png"),
//     PLAY ("res/images/playerwidget/play.png"),
//     PAUSE ("res/images/playerwidget/pause.png"),
// 
//     //Settings menu
//     SETTINGS_BACKGROUND ("res/images/settingsmenu/settings-background.png"),
//     SETTINGS_LINE ("res/images/settingsmenu/settings-line.png"),
// 
//     // Song menu
//     SONG_LIST_BACKGROUND ("res/images/songmenu/song-list-background.png"),
//     ACTIVE_SONG_BACKGROUND ("res/images/songmenu/active-song-background.png"),
//     SEARCH_BACKGROUND ("res/images/songmenu/search-background.png"),
//     SELECT_MODE ("res/images/songmenu/logo-background.png"),
//     BOTTOM_PANEL ("res/images/songmenu/bottom-panel-background.png"),
//     MAP_HEADER ("res/images/songmenu/map-header-background.png"),
//     // circles
//     SELECTED_DIFFICULTY ("res/images/songmenu/selected-difficulty-mark.png"),
//     AVAILABLE_DIFFICULTY ("res/images/songmenu/available-difficulty-mark.png"),
//     UNAVAILABLE_DIFFICULTY ("res/images/songmenu/unavailable-difficulty-mark.png"),
// 
//     // Square mode backgrounds
//     BUTTONS_BACKGROUND ("res/images/squaremode/buttons-background.png"),
//     COMBO_BACKGROUND ("res/images/squaremode/combo-background.png"),
//     HP_BACKGROUND ("res/images/squaremode/hp-background.png"),
//     STATS_BACKGROUND ("res/images/squaremode/stats-background.png"),
// 
//     // Square mode buttons
//     GREEN_BUTTON ("res/images/squaremode/green-button.png"),
//     PINK_BUTTON ("res/images/squaremode/pink-button.png");
// 
//     private String path;
//     private Integer texture;
// 
//     /**
//      * Basic image
//      * @param path to the image
//      */
//     Images(String path) {
//         this.path = path;
//         texture = null;
//     }
// 
//     /**
//      * @return OpenGL texture
//      */
//     public int getTexture() {
//         if(texture == null) {
//             texture = Resources.getTexture(path);
//         }
//         return texture;
//     }
// 
//     public static void whatDoesNicktaelSaid() {
//         Logger.getLogger("Nickta").log(Level.WARNING, "THIS DANK CODE IS 2COOL4U"); // MAJESTIC GLORIOUS
//     }
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/graphics/Drawable.java
// public interface Drawable {
// 
//     void draw();
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/graphics/Sprite.java
// public class Sprite {
// 
//     private Integer texture;
// 
//     public Sprite(Integer texture) {
//         this.texture = texture;
//     }
// 
//     public Integer getTexture() {
//         return texture;
//     }
// 
//     public void setTexture(int texture) {
//         this.texture = texture;
//     }
// 
//     public void draw(float x, float y, float width, float height) {
//         if(texture != null) {
//             glPushMatrix();
//             glTranslatef(x, y, 0.0f);
//             glColor3f(1.0f, 1.0f, 1.0f);
//             glEnable(GL_TEXTURE_2D);
//             glBindTexture(GL_TEXTURE_2D, texture);
//             glBegin(GL_QUADS);
//             glTexCoord2f(0.0f, 0.0f);
//             glVertex3f(0.0f, height, 0.0f);
//             glTexCoord2f(1.0f, 0.0f);
//             glVertex3f(width, height, 0.0f);
//             glTexCoord2f(1.0f, 1.0f);
//             glVertex3f(width, 0.0f, 0.0f);
//             glTexCoord2f(0.0f, 1.0f);
//             glVertex3f(0.0f, 0.0f, 0.0f);
//             glEnd();
//             glDisable(GL_TEXTURE_2D);
//             glPopMatrix();
//         }
//     }
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/input/MouseInputListener.java
// public interface MouseInputListener {
// 
//     void onMouseMove(float x, float y);
//     void onMouseButtonDown(float x, float y, int button, int mods);
//     void onMouseButtonUp(float x, float y, int button, int mods);
//     void onScroll(float x, float y, double scrollX, double scrollY);
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/shared/Tickable.java
// public interface Tickable {
// 
//     void tick(float delta);
// 
// }


import org.flamierawieo.x00FA9A.client.Images;
import org.flamierawieo.x00FA9A.client.graphics.Drawable;
import org.flamierawieo.x00FA9A.client.graphics.Sprite;
import org.flamierawieo.x00FA9A.client.input.MouseInputListener;
import org.flamierawieo.x00FA9A.shared.Tickable;
package org.flamierawieo.x00FA9A.client.ui;


public class Cursor implements Tickable, Drawable, MouseInputListener {

    private Sprite sprite;
    private float x;
    private float y;

    public Cursor() {
        sprite = new Sprite(Images.CURSOR_IMAGE.getTexture());
    }

    @Override
    public void onMouseMove(float x, float y) {
        this.x = x;
        this.y = y;
    }

    @Override
    public void onMouseButtonDown(float x, float y, int button, int mods) {

    }

// Path: src/main/java/org/flamierawieo/x00FA9A/client/Images.java
// public enum Images {
// 
//     CURSOR_IMAGE ("res/images/cursor.png"),
//     BASIC_BACKGROUND ("res/images/background.png"),
//     TEST ("custom/beatmaps/6fb2cf0d Truxton - Alexandrian Ricochet Sphere/background.png"),
// 
//     // Start menu and player widget
//     MENU_BUTTON ("res/images/startmenu/menu-buttons.png"),
//     PLAY ("res/images/playerwidget/play.png"),
//     PAUSE ("res/images/playerwidget/pause.png"),
// 
//     //Settings menu
//     SETTINGS_BACKGROUND ("res/images/settingsmenu/settings-background.png"),
//     SETTINGS_LINE ("res/images/settingsmenu/settings-line.png"),
// 
//     // Song menu
//     SONG_LIST_BACKGROUND ("res/images/songmenu/song-list-background.png"),
//     ACTIVE_SONG_BACKGROUND ("res/images/songmenu/active-song-background.png"),
//     SEARCH_BACKGROUND ("res/images/songmenu/search-background.png"),
//     SELECT_MODE ("res/images/songmenu/logo-background.png"),
//     BOTTOM_PANEL ("res/images/songmenu/bottom-panel-background.png"),
//     MAP_HEADER ("res/images/songmenu/map-header-background.png"),
//     // circles
//     SELECTED_DIFFICULTY ("res/images/songmenu/selected-difficulty-mark.png"),
//     AVAILABLE_DIFFICULTY ("res/images/songmenu/available-difficulty-mark.png"),
//     UNAVAILABLE_DIFFICULTY ("res/images/songmenu/unavailable-difficulty-mark.png"),
// 
//     // Square mode backgrounds
//     BUTTONS_BACKGROUND ("res/images/squaremode/buttons-background.png"),
//     COMBO_BACKGROUND ("res/images/squaremode/combo-background.png"),
//     HP_BACKGROUND ("res/images/squaremode/hp-background.png"),
//     STATS_BACKGROUND ("res/images/squaremode/stats-background.png"),
// 
//     // Square mode buttons
//     GREEN_BUTTON ("res/images/squaremode/green-button.png"),
//     PINK_BUTTON ("res/images/squaremode/pink-button.png");
// 
//     private String path;
//     private Integer texture;
// 
//     /**
//      * Basic image
//      * @param path to the image
//      */
//     Images(String path) {
//         this.path = path;
//         texture = null;
//     }
// 
//     /**
//      * @return OpenGL texture
//      */
//     public int getTexture() {
//         if(texture == null) {
//             texture = Resources.getTexture(path);
//         }
//         return texture;
//     }
// 
//     public static void whatDoesNicktaelSaid() {
//         Logger.getLogger("Nickta").log(Level.WARNING, "THIS DANK CODE IS 2COOL4U"); // MAJESTIC GLORIOUS
//     }
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/graphics/Drawable.java
// public interface Drawable {
// 
//     void draw();
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/graphics/Sprite.java
// public class Sprite {
// 
//     private Integer texture;
// 
//     public Sprite(Integer texture) {
//         this.texture = texture;
//     }
// 
//     public Integer getTexture() {
//         return texture;
//     }
// 
//     public void setTexture(int texture) {
//         this.texture = texture;
//     }
// 
//     public void draw(float x, float y, float width, float height) {
//         if(texture != null) {
//             glPushMatrix();
//             glTranslatef(x, y, 0.0f);
//             glColor3f(1.0f, 1.0f, 1.0f);
//             glEnable(GL_TEXTURE_2D);
//             glBindTexture(GL_TEXTURE_2D, texture);
//             glBegin(GL_QUADS);
//             glTexCoord2f(0.0f, 0.0f);
//             glVertex3f(0.0f, height, 0.0f);
//             glTexCoord2f(1.0f, 0.0f);
//             glVertex3f(width, height, 0.0f);
//             glTexCoord2f(1.0f, 1.0f);
//             glVertex3f(width, 0.0f, 0.0f);
//             glTexCoord2f(0.0f, 1.0f);
//             glVertex3f(0.0f, 0.0f, 0.0f);
//             glEnd();
//             glDisable(GL_TEXTURE_2D);
//             glPopMatrix();
//         }
//     }
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/client/input/MouseInputListener.java
// public interface MouseInputListener {
// 
//     void onMouseMove(float x, float y);
//     void onMouseButtonDown(float x, float y, int button, int mods);
//     void onMouseButtonUp(float x, float y, int button, int mods);
//     void onScroll(float x, float y, double scrollX, double scrollY);
// 
// }
// 
// Path: src/main/java/org/flamierawieo/x00FA9A/shared/Tickable.java
// public interface Tickable {
// 
//     void tick(float delta);
// 
// }


// Path: src/main/java/org/flamierawieo/x00FA9A/client/ui/Cursor.java
import org.flamierawieo.x00FA9A.client.Images;
import org.flamierawieo.x00FA9A.client.graphics.Drawable;
import org.flamierawieo.x00FA9A.client.graphics.Sprite;
import org.flamierawieo.x00FA9A.client.input.MouseInputListener;
import org.flamierawieo.x00FA9A.shared.Tickable;

package org.flamierawieo.x00FA9A.client.ui;


public class Cursor implements Tickable, Drawable, MouseInputListener {

    private Sprite sprite;
    private float x;
    private float y;

    public Cursor() {
        sprite = new Sprite(Images.CURSOR_IMAGE.getTexture());
    }

    @Override
    public void onMouseMove(float x, float y) {
        this.x = x;
        this.y = y;
    }

    @Override
    public void onMouseButtonDown(float x, float y, int button, int mods) {

    }

    @Override