PageRenderTime 57ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/PixelThrive/src/net/PixelThrive/Client/renders/PlayerAnimation.java

https://github.com/CanPixel/PixelThrive
Java | 70 lines | 60 code | 10 blank | 0 comment | 23 complexity | 0c31b4daaf0d95659434b1d90526b036 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package net.PixelThrive.Client.renders;
  2. import java.awt.event.MouseEvent;
  3. import java.awt.image.BufferedImage;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import net.PixelThrive.Client.Main;
  7. import net.PixelThrive.Client.world.Tile;
  8. public class PlayerAnimation
  9. {
  10. private List<BufferedImage> frames = new ArrayList<BufferedImage>();
  11. public static List<PlayerAnimation> anims = new ArrayList<PlayerAnimation>();
  12. private int frameDelay, currentDelay = 0, currentFrame = 0;
  13. private int id, key;
  14. private boolean isMouse = false;
  15. public boolean usesLeftMouse = false, usesRightMouse = false;
  16. public static final PlayerAnimation DEFAULT = new PlayerAnimation(null, 0, 0, MouseEvent.BUTTON1);
  17. public PlayerAnimation(int[] list, int frameDelay, int id, int key)
  18. {
  19. this.frameDelay = frameDelay;
  20. this.id = id;
  21. if(key == MouseEvent.BUTTON1 || key == MouseEvent.BUTTON2 || key == MouseEvent.BUTTON3) isMouse = true;
  22. this.key = key;
  23. if(key == MouseEvent.BUTTON1) usesLeftMouse = true;
  24. if(key == MouseEvent.BUTTON3) usesRightMouse = true;
  25. if(list != null) for(int i = 0; i < list.length; i++) frames.add(SpriteSheet.getIcon(SpriteSheet.Entity, list[i], 0, Tile.tileSize, Tile.tileSize * 2));
  26. anims.add(this);
  27. }
  28. public void tick()
  29. {
  30. boolean mouseClicked = (key == MouseEvent.BUTTON1)? Main.key.isMouseLeft : (key == MouseEvent.BUTTON2)? Main.key.isMouseMiddle : Main.key.isMouseRight;
  31. if(isMouse && mouseClicked)
  32. {
  33. if(currentDelay < frameDelay) currentDelay++;
  34. else
  35. {
  36. currentDelay = 0;
  37. if(currentFrame < frames.size() - 1) currentFrame++;
  38. else currentFrame = 0;
  39. }
  40. }
  41. else currentDelay = currentFrame = 0;
  42. }
  43. public void render(int x, int y)
  44. {
  45. if(Main.player.getDir() > 0) Render.drawImage(frames.get(currentFrame), x, y);
  46. else Render.drawImage(frames.get(currentFrame), x + frames.get(currentFrame).getWidth(), y, (x + frames.get(currentFrame).getWidth()) - frames.get(currentFrame).getWidth(), y + frames.get(currentFrame).getHeight(), 0, 0, frames.get(currentFrame).getWidth(), frames.get(currentFrame).getHeight());
  47. }
  48. public int getID()
  49. {
  50. return id;
  51. }
  52. public int getCurrentFrame()
  53. {
  54. return currentFrame;
  55. }
  56. public void setCurrentFrame(int i)
  57. {
  58. currentFrame = i;
  59. }
  60. }