package chbachman.armour.upgrade.upgradeList;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import chbachman.api.configurability.Configurable;
import chbachman.api.configurability.ConfigurableField;
import chbachman.api.item.IModularItem;
import chbachman.api.upgrade.Upgrade;
import chbachman.api.util.ArmourSlot;
import chbachman.armour.util.ConfigHelper;
import chbachman.armour.util.EnergyUtil;
public class UpgradeSpeed extends Upgrade {
public UpgradeSpeed() {
super("speed");
}
@Configurable
public ConfigurableField f = new ConfigurableField(this, "speed");
private int cost;
@Override
public void registerConfigOptions() {
cost = ConfigHelper.get(ConfigHelper.ENERGY, this, "cost to walk faster, per tick", 100);
}
@Override
public boolean isCompatible(IModularItem item, ItemStack stack, int armourType) {
return armourType == ArmourSlot.LEGS.id;
}
@Override
public int onTick(World world, EntityPlayer player, ItemStack stack, ArmourSlot slot) {
if (!EnergyUtil.isEmpty(stack) && (player.onGround || player.capabilities.isFlying) && player.moveForward > 0F && !player.isInsideOfMaterial(Material.water)) {
player.moveFlying(0F, 1F, player.capabilities.isFlying ? .15F * f.get(stack).getPercentage() : .15F * f.get(stack).getPercentage() * 2);
return cost;
}
return 0;
}
}