package chu.engine.anim; import java.io.IOException; import org.newdawn.slick.opengl.Texture; import org.newdawn.slick.opengl.TextureLoader; import org.newdawn.slick.util.ResourceLoader; public class Tileset { private Texture tileset; private int tileWidth; private int tileHeight; private int width; private int height; public Tileset(Texture t, int tileWidth, int tileHeight) { tileset = t; this.tileWidth = tileWidth; this.tileHeight = tileHeight; width = tileset.getImageWidth(); height = tileset.getImageHeight(); } public Tileset(String path, int tileWidth, int tileHeight) { try { tileset = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream(path)); System.out.println("Loaded: "+path); } catch (IOException e) { e.printStackTrace(); } this.tileWidth = tileWidth; this.tileHeight = tileHeight; width = tileset.getImageWidth(); height = tileset.getImageHeight(); } public void render(float x, float y, int tx, int ty, float depth) { float tx0 = (float) tx / (width / tileWidth); float ty0 = (float) ty / (height / tileHeight); float tx1 = (float) (tx + 1) / (width / tileWidth); float ty1 = (float) (ty + 1) / (height / tileHeight); Renderer.render(tileset, tx0, ty0, tx1, ty1, (int) x, (int) y, (int) (x + tileWidth), (int) (y + tileHeight), depth); } public void renderTransformed(float x, float y, int tx, int ty, float depth, Transform t) { float tx0 = (float) tx / (width / tileWidth); float ty0 = (float) ty / (height / tileHeight); float tx1 = (float) (tx + 1) / (width / tileWidth); float ty1 = (float) (ty + 1) / (height / tileHeight); Renderer.render(tileset, tx0, ty0, tx1, ty1, (int) x, (int) y, (int) (x + tileWidth), (int) (y + tileHeight), depth, t); } }