PageRenderTime 44ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/PixelThrive/src/net/PixelThrive/Client/items/ItemDrill.java

https://github.com/CanPixel/PixelThrive
Java | 68 lines | 62 code | 6 blank | 0 comment | 16 complexity | 649cc76507982fb4c0420d9822c26c28 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package net.PixelThrive.Client.items;
  2. import java.awt.event.MouseEvent;
  3. import java.awt.image.BufferedImage;
  4. import net.PixelThrive.Client.Main;
  5. import net.PixelThrive.Client.audio.SoundSystem;
  6. import net.PixelThrive.Client.materials.ToolMaterial;
  7. import net.PixelThrive.Client.renders.PlayerAnimation;
  8. import net.PixelThrive.Client.renders.Render;
  9. import net.PixelThrive.Client.renders.SpriteSheet;
  10. public class ItemDrill extends ItemTool
  11. {
  12. protected double dir;
  13. private int frame = 0, frameDelay = 0;
  14. private BufferedImage[] frames = new BufferedImage[3];
  15. private int soundDelay = 0;
  16. public ItemDrill(int id, ToolMaterial mat)
  17. {
  18. super(id, mat);
  19. setAnimation(new PlayerAnimation(new int[]{0}, 1, itemID, MouseEvent.BUTTON1));
  20. }
  21. public void tickInInventory()
  22. {
  23. if(soundDelay > 0) soundDelay--;
  24. if(frames[frame] == null) for(int i = 0; i < frames.length; i++) frames[i] = SpriteSheet.getIcon(getSpriteSheet(), (getTexture().x + i), getTexture().y);
  25. if(Main.key.isMouseLeft && Main.inv.invBar[Main.inv.selection].id == itemID)
  26. {
  27. double dx = Main.mouseX - Main.WIDTH / 2;
  28. double dy = Main.mouseY - Main.HEIGHT / 2;
  29. dir = Math.atan2(dy, dx);
  30. frameDelay++;
  31. if(frameDelay >= 5)
  32. {
  33. frameDelay = 0;
  34. frame++;
  35. if(frame > frames.length - 1) frame = 0;
  36. }
  37. if(soundDelay <= 0)
  38. {
  39. SoundSystem.playSound("drill", false);
  40. soundDelay = 8;
  41. }
  42. }
  43. else
  44. {
  45. frame = frameDelay = 0;
  46. if(SoundSystem.isSoundPlaying("drill")) SoundSystem.stopSound("drill");
  47. }
  48. }
  49. public void renderInPlayerHand(int x, int y, double angle, boolean flipped, boolean s)
  50. {
  51. if(Main.key.isMouseLeft)
  52. {
  53. if(!flipped) Render.drawImage(Render.rotate(Render.flipHorizontal(frames[frame]), Math.toDegrees(dir) + 180), x, y);
  54. else Render.drawImage(Render.rotate(frames[frame], Math.toDegrees(dir)), x, y);
  55. }
  56. else
  57. {
  58. if(!flipped) Render.drawImage(Render.flipHorizontal(texture.getImageIcon()), x - holdingOffsX, y);
  59. else Render.drawImage(texture.getImageIcon(), x + holdingOffsX, y);
  60. }
  61. }
  62. }