DefaultEnergy.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. if(mx == 0.0f)
  20. {
  21. addEnergyPercent(BASE);
  22. }
  23. else if(Math.abs(mx) <= ent.getMovement().getVelocityX())
  24. {
  25. addEnergyPercent(BASE * 0.5f);
  26. }
  27. }
  28. @Override
  29. public float getMaxEnergy()
  30. {
  31. return maxEnergy;
  32. }
  33. @Override
  34. public float getEnergy()
  35. {
  36. return energy;
  37. }
  38. @Override
  39. public void addEnergy(float h)
  40. {
  41. energy += h;
  42. if(energy > maxEnergy)
  43. {
  44. energy = maxEnergy;
  45. }
  46. else if(energy < 0.0f)
  47. {
  48. energy = 0.0f;
  49. }
  50. }
  51. }