Files
Electro-Magic-Tools/src/main/java/emt/item/armor/wings/ItemQuantumWing.java
T
2016-11-04 23:09:13 +01:00

83 lines
2.8 KiB
Java

package emt.item.armor.wings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import emt.EMT;
import emt.util.EMTConfigHandler;
import ic2.api.item.ElectricItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
public class ItemQuantumWing extends ItemNanoWing {
public static int maxCharge = 10000000;
public int tier = 4;
public ItemQuantumWing(ArmorMaterial material, int par3, int par4) {
super(material, par3, par4);
this.setMaxStackSize(1);
this.setMaxDamage(27);
this.setCreativeTab(EMT.TAB);
visDiscount = 6;
transferLimit = 10000;
energyPerDamage = 1000;
}
@Override
public float getFallDamageMult() {
return 0.0F;
}
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister iconRegister) {
this.itemIcon = iconRegister.registerIcon(EMT.TEXTURE_PATH + ":armor/wing_quantum");
}
@Override
@SideOnly(Side.CLIENT)
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
return EMT.TEXTURE_PATH + ":textures/models/quantumwing.png";
}
@Override
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
this.useWings(player, stack, world, 0.33f, 0.5f, 0.2f, 7);
}
@Override
public double getMaxCharge(ItemStack itemStack) {
return maxCharge;
}
@Override
public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) {
ElectricItem.manager.discharge(stack, damage * getEnergyPerDamage(), 0x7fffffff, true, false, false);
}
public double getDamageAbsorptionRatio() {
return 2.099990000000001D;
}
private double getBaseAbsorptionRatio() {
return 0.20999999999999999D;
}
@Override
public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) {
if (source.isUnblockable()) {
return new net.minecraftforge.common.ISpecialArmor.ArmorProperties(0, 0.0D, 3);
} else {
double absorptionRatio = getBaseAbsorptionRatio() * getDamageAbsorptionRatio();
int energyPerDamage = getEnergyPerDamage();
double damageLimit = energyPerDamage <= 0 ? 0 : (25 * ElectricItem.manager.getCharge(armor)) / energyPerDamage;
return new net.minecraftforge.common.ISpecialArmor.ArmorProperties(3, absorptionRatio, (int) damageLimit);
}
}
}