-
-
Save SanAndreaP/09f4f1fc4a1918d78b79 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package net.minecraft.src.TheAbyss.ToolsAndWeapons; | |
import java.util.ArrayList; | |
import net.minecraft.src.*; | |
import net.minecraft.src.forge.ITextureProvider; | |
public class AbyssalPhaseblade extends ItemSword implements ITextureProvider { | |
private boolean isActive; | |
public AbyssalPhaseblade(int par1, EnumToolMaterial par2EnumToolMaterial, boolean b) { | |
super(par1, par2EnumToolMaterial); | |
this.setMaxDamage((par2EnumToolMaterial.getMaxUses() + 1) << 5); | |
setHasSubtypes(true); | |
this.isActive = b; | |
} | |
public EnumAction getItemUseAction(ItemStack par1ItemStack) | |
{ | |
return EnumAction.none; | |
} | |
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) | |
{ | |
ItemStack ret = new ItemStack(this.isActive ? mod_TheAbyss.phasebladeInactive : mod_TheAbyss.phasebladeActive, 1, par1ItemStack.getItemDamage()); | |
return ret; | |
} | |
public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving) | |
{ | |
if(!this.isActive) | |
return true; | |
if(par2EntityLiving != null) | |
par2EntityLiving.setFire(3); | |
if(par1ItemStack.getItemDamage() < 0) | |
par1ItemStack.setItemDamage(Math.abs(par1ItemStack.getItemDamage())); | |
par1ItemStack.damageItem(1 << 5, par3EntityLiving); | |
return true; | |
} | |
public boolean onBlockDestroyed(ItemStack par1ItemStack, int par2, int par3, int par4, int par5, EntityLiving par6EntityLiving) | |
{ | |
if(!this.isActive) | |
return true; | |
if(par1ItemStack.getItemDamage() < 0) | |
par1ItemStack.setItemDamage(Math.abs(par1ItemStack.getItemDamage())); | |
par1ItemStack.damageItem(2 << 5, par6EntityLiving); | |
return true; | |
} | |
@Override | |
public int getIconFromDamage(int par1) { | |
if(!this.isActive) | |
return 225; | |
par1 = Math.abs(par1); | |
switch(par1 & 0x1f) { | |
case 2: return 224; | |
case 3: return 226; | |
default: return (par1 & 0x1f) + 236; | |
} | |
} | |
@Override | |
public String getTextureFile() { | |
return mod_TheAbyss.itemTexture; | |
} | |
@Override | |
public boolean isRepairable() { | |
return false; | |
} | |
@Override | |
public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) { | |
int dmg = par1ItemStack.getItemDamage(); | |
if(par1ItemStack.getItemDamage() > 0 && par2World.rand.nextInt(32) == 0 && !this.isActive) { | |
if(dmg - (1 << 5) < 0) { | |
par1ItemStack.setItemDamage(-(dmg & 0x1F)); | |
} else | |
par1ItemStack.setItemDamage(dmg - (1 << 5)); | |
} | |
super.onUpdate(par1ItemStack, par2World, par3Entity, par4, par5); | |
} | |
@Override | |
public void addCreativeItems(ArrayList itemList) { | |
for(int i = 2; i <= 19 && this.isActive; i++) | |
itemList.add(new ItemStack(this, 1, -i)); | |
} | |
@Override | |
public int getItemEnchantability() { | |
return 0; | |
} | |
public int getDamageVsEntity(Entity par1Entity) | |
{ | |
ItemStack thisItem = ModLoader.getMinecraftInstance().thePlayer.getCurrentEquippedItem(); | |
if(thisItem != null && thisItem.getItem() instanceof AbyssalPhaseblade && !this.isActive) | |
return 1; | |
return super.getDamageVsEntity(par1Entity); | |
} | |
@Override | |
public String getItemNameIS(ItemStack par1ItemStack) { | |
String name = "abyss_PhaseBlade"; | |
switch(Math.abs(par1ItemStack.getItemDamage()) & 0x1f) { | |
case 3: name += "Lavender"; break; | |
case 4: name += "Black"; break; | |
case 5: name += "Red"; break; | |
case 6: name += "Green"; break; | |
case 7: name += "Brown"; break; | |
case 8: name += "Blue"; break; | |
case 9: name += "Purpe"; break; | |
case 10: name += "Cyan"; break; | |
case 11: name += "LGray"; break; | |
case 12: name += "Gray"; break; | |
case 13: name += "Pink"; break; | |
case 14: name += "Lime"; break; | |
case 15: name += "Yellow"; break; | |
case 16: name += "LBlue"; break; | |
case 17: name += "Magenta"; break; | |
case 18: name += "Orange"; break; | |
case 19: name += "White"; break; | |
} | |
return name; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment