Jump to content

Recommended Posts

Posted

I tried to do the pulling Action (Texture 1 to Texture 2 to Texture 3) it won't work and I don't know what wrong.

 

package net.DestroyerTools.Mod;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
public class ModNatureBow1 extends Item
{
private String iconPath;
private Icon icon;

public static final String[] bowPullIconNameArray = new String[] {"Iron Nature Bow P1", "Iron Nature Bow P2"};
@SideOnly(Side.CLIENT)
private Icon[] iconArray;
public ModNatureBow1(int par1)
{
	super(par1);
	this.maxStackSize = 1;
	this.setMaxDamage(501);
	this.setCreativeTab(CreativeTabs.tabCombat);
}
public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4)
{
	int j = this.getMaxItemUseDuration(par1ItemStack) - par4;
	ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j);
	MinecraftForge.EVENT_BUS.post(event);
	if (event.isCanceled())
	{
		return;
	}
	j = event.charge;
	boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;
	if (flag || par3EntityPlayer.inventory.hasItem(mod_DestroyerTools.Nature_Arrow.itemID))
	{
		float f = (float)j / 20.0F;
		f = (f * f + f * 2.0F) / 3.0F;
		if ((double)f < 0.1D)
		{
			return;
		}
		if (f > 1.0F)
		{
			f = 1.0F;
		}
		EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 6.0F);
		if (f == 1.0F)
		{
			entityarrow.setIsCritical(true);
		}
		int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack);
		if (k > 0)
		{
			entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
		}
		int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack);
		if (l > 0)
		{
			entityarrow.setKnockbackStrength(l);
		}
		if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0)
		{
			entityarrow.setFire(100);
		}
		par1ItemStack.damageItem(1, par3EntityPlayer);
		par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
		if (flag)
		{
			entityarrow.canBePickedUp = 2;
		}
		else
		{
			par3EntityPlayer.inventory.consumeInventoryItem(mod_DestroyerTools.Nature_Arrow.itemID);
		}
		if (!par2World.isRemote)
		{
			par2World.spawnEntityInWorld(entityarrow);
		}
	}
}
public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
	return par1ItemStack;
}
public int getMaxItemUseDuration(ItemStack par1ItemStack)
{
	return 72000;
}
public EnumAction getItemUseAction(ItemStack par1ItemStack)
{
	return EnumAction.bow;
}
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
	ArrowNockEvent event = new ArrowNockEvent(par3EntityPlayer, par1ItemStack);
	MinecraftForge.EVENT_BUS.post(event);
	if (event.isCanceled())
	{
		return event.result;
	}
	if (par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(mod_DestroyerTools.Nature_Arrow.itemID))
	{
		par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
	}
	return par1ItemStack;
}
public int getItemEnchantability()
{
	return 1;
}
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister par1IconRegister)
{
	super.registerIcons(par1IconRegister);
	this.iconArray = new Icon[bowPullIconNameArray.length];
	for (int i = 0; i < this.iconArray.length; ++i)
	{
		this.iconArray[i] = par1IconRegister.registerIcon(bowPullIconNameArray[i]);
	}
}
@SideOnly(Side.CLIENT)
public Icon getItemIconForUseDuration(int par1)
{
	return this.iconArray[par1];
}
   
}

 

can someone help me?

if needed more info will be on when asked.

 

Posted

I get it from within minecraft also I did @Override all I get is create 'getItemIconForUseDuration()' in super type 'Item' but I don't know what i'm doing because it my first time doing this.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.