1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package me.hammerle.supersnuvi.entity.components;
- import me.hammerle.supersnuvi.Game;
- import me.hammerle.supersnuvi.entity.Entity;
- public class DefaultEnergy extends Energy
- {
- private final float maxEnergy;
- private float energy;
-
- private static final float BASE = 1.0f / Game.getTicksForMillis(3000);
-
- public DefaultEnergy(Entity ent, float maxEnergy)
- {
- super(ent);
- this.maxEnergy = maxEnergy;
- this.energy = maxEnergy;
- }
- @Override
- public void tick()
- {
- float mx = ent.getMotionX();
- float my = ent.getMotionX();
-
- if(mx == 0.0f && my == 0.0f)
- {
- addEnergyPercent(BASE);
- }
- else if(Math.abs(mx) <= ent.getMovement().getVelocityX() &&
- Math.abs(my) <= ent.getMovement().getVelocityY())
- {
- addEnergyPercent(BASE * 0.5f);
- }
- }
- @Override
- public float getMaxEnergy()
- {
- return maxEnergy;
- }
- @Override
- public float getEnergy()
- {
- return energy;
- }
- @Override
- public void addEnergy(float h)
- {
- energy += h;
- if(energy > maxEnergy)
- {
- energy = maxEnergy;
- }
- else if(energy < 0.0f)
- {
- energy = 0.0f;
- }
- }
- }
|