StoneController.java 1.2 KB

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