package me.hammerle.supersnuvi.entity.components.ai; import me.hammerle.snuviengine.api.Shader; import me.hammerle.snuviengine.api.Texture; import me.hammerle.supersnuvi.entity.Entity; import me.hammerle.supersnuvi.gamelogic.Level; import me.hammerle.supersnuvi.tiles.Tile; import me.hammerle.supersnuvi.util.Utils; public class StoneController extends Controller { private final static Texture STONE = new Texture("resources/stone.png"); private int frame = 0; @Override public boolean isAnimated() { return frame < 40; } @Override public void renderTick(Entity ent, float lag) { STONE.bind(); float x = Utils.interpolate(ent.getLastX(), ent.getX(), lag); float y = Utils.interpolate(ent.getLastY(), ent.getY(), lag); float row = (frame / 16) * 0.3125f; float column = (frame % 16) * 0.0625f; Shader.getTextureRenderer().drawRectangle( x, y, x + Tile.SIZE, y + 5.0f * Tile.SIZE, column, row, column + 0.0625f, row + 0.3125f); } @Override public void tick(Entity ent, Level level) { if(frame < 40) { frame++; } } }