DefaultMovement.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package me.hammerle.supersnuvi.entity.components;
  2. import me.hammerle.supersnuvi.entity.Entity;
  3. import me.hammerle.supersnuvi.tiles.Tile;
  4. public class DefaultMovement extends Movement
  5. {
  6. private final float jumpPower;
  7. private boolean inWater = false;
  8. private final float vx;
  9. private final float vy;
  10. private float friction = 1.0f;
  11. public DefaultMovement(float vx, float vy, float jumpPower)
  12. {
  13. this.jumpPower = jumpPower * Tile.SIZE_SCALE;
  14. this.vx = vx * Tile.SIZE_SCALE;
  15. this.vy = vy * Tile.SIZE_SCALE;
  16. }
  17. private float getFactor()
  18. {
  19. return inWater ? 0.65f : 1.0f;
  20. }
  21. @Override
  22. public float getGravityFactor()
  23. {
  24. return inWater ? 0.5f : 1.0f;
  25. }
  26. @Override
  27. public float getVelocityX()
  28. {
  29. return vx * getFactor();
  30. }
  31. @Override
  32. public float getVelocityY()
  33. {
  34. return vy * getFactor();
  35. }
  36. @Override
  37. public float getJumpPower()
  38. {
  39. return jumpPower * getFactor();
  40. }
  41. @Override
  42. public boolean hasGravity(Entity ent)
  43. {
  44. return true;
  45. }
  46. @Override
  47. public void setInWater(boolean b)
  48. {
  49. inWater = b;
  50. }
  51. @Override
  52. public boolean isInWater()
  53. {
  54. return inWater;
  55. }
  56. @Override
  57. public void setFrictionFactor(float f)
  58. {
  59. friction = f;
  60. }
  61. @Override
  62. public float getFrictionFactor()
  63. {
  64. return friction;
  65. }
  66. }