StoneController.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package me.hammerle.supersnuvi.entity.components.ai;
  2. import me.hammerle.snuviengine.api.Shader;
  3. import me.hammerle.snuviengine.api.Texture;
  4. import me.hammerle.supersnuvi.entity.Entity;
  5. import me.hammerle.supersnuvi.gamelogic.Level;
  6. import me.hammerle.supersnuvi.tiles.Tile;
  7. import me.hammerle.supersnuvi.util.Utils;
  8. public class StoneController extends Controller
  9. {
  10. private final static Texture STONE = new Texture("resources/stone.png");
  11. private int frame = 0;
  12. public StoneController(Entity ent)
  13. {
  14. super(ent);
  15. }
  16. @Override
  17. public boolean isAnimated()
  18. {
  19. return frame < 40;
  20. }
  21. @Override
  22. public void renderTick(float lag)
  23. {
  24. STONE.bind();
  25. float x = Utils.interpolate(ent.getLastX(), ent.getX(), lag);
  26. float y = Utils.interpolate(ent.getLastY(), ent.getY(), lag);
  27. float row = (frame / 16) * 0.3125f;
  28. float column = (frame % 16) * 0.0625f;
  29. Shader.getTextureRenderer().drawRectangle(
  30. x, y, x + Tile.SIZE, y + 5.0f * Tile.SIZE,
  31. column, row, column + 0.0625f, row + 0.3125f);
  32. }
  33. @Override
  34. public void tick(Level level)
  35. {
  36. if(frame < 40)
  37. {
  38. frame++;
  39. }
  40. }
  41. }