DefaultEnergy.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package me.hammerle.supersnuvi.entity.components;
  2. import me.hammerle.supersnuvi.Game;
  3. import me.hammerle.supersnuvi.entity.Entity;
  4. public class DefaultEnergy extends Energy
  5. {
  6. private final float maxEnergy;
  7. private float energy;
  8. private static final float BASE = 1.0f / Game.getTicksForMillis(3000);
  9. public DefaultEnergy(Entity ent, float maxEnergy)
  10. {
  11. super(ent);
  12. this.maxEnergy = maxEnergy;
  13. this.energy = maxEnergy;
  14. }
  15. @Override
  16. public void tick()
  17. {
  18. float mx = ent.getMotionX();
  19. float my = ent.getMotionX();
  20. if(mx == 0.0f && my == 0.0f)
  21. {
  22. addEnergyPercent(BASE);
  23. }
  24. else if(Math.abs(mx) <= ent.getMovement().getVelocityX() &&
  25. Math.abs(my) <= ent.getMovement().getVelocityY())
  26. {
  27. addEnergyPercent(BASE * 0.5f);
  28. }
  29. }
  30. @Override
  31. public float getMaxEnergy()
  32. {
  33. return maxEnergy;
  34. }
  35. @Override
  36. public float getEnergy()
  37. {
  38. return energy;
  39. }
  40. @Override
  41. public void addEnergy(float h)
  42. {
  43. energy += h;
  44. if(energy > maxEnergy)
  45. {
  46. energy = maxEnergy;
  47. }
  48. else if(energy < 0.0f)
  49. {
  50. energy = 0.0f;
  51. }
  52. }
  53. }