mirror of
https://github.com/GTNewHorizons/Electro-Magic-Tools.git
synced 2026-11-13 17:04:02 +00:00
83 lines
2.8 KiB
Java
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);
|
|
}
|
|
|
|
}
|
|
}
|