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; } } }