DefaultEnergy.java 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 = 100.0f;
  7. private float energy = maxEnergy;
  8. private static final float BASE = 1.0f / Game.getTicksForMillis(3000);
  9. @Override
  10. public void tick(Entity ent)
  11. {
  12. float mx = ent.getOwnForceX();
  13. if(mx == 0.0f)
  14. {
  15. addEnergyPercent(BASE);
  16. }
  17. else if(Math.abs(mx) <= ent.getMovement().getVelocityX())
  18. {
  19. addEnergyPercent(BASE * 0.5f);
  20. }
  21. }
  22. @Override
  23. public float getMaxEnergy()
  24. {
  25. return maxEnergy;
  26. }
  27. @Override
  28. public float getEnergy()
  29. {
  30. return energy;
  31. }
  32. @Override
  33. public void addEnergy(float h)
  34. {
  35. energy += h;
  36. if(energy > maxEnergy)
  37. {
  38. energy = maxEnergy;
  39. }
  40. else if(energy < 0.0f)
  41. {
  42. energy = 0.0f;
  43. }
  44. }
  45. }