Jump to content

[SOLVED] [1.7.10] Custom Bow Pulling Animation Not Showing


swatkins

Recommended Posts

I'm creating a very basic extension of the ItemBow. Right now, I'm just trying to change the textures for my new bow. I have the "standby" icon working correctly, but when shooting the bow, I don't get the "pulling" icons to cycle through for the animation.

 

Below is a small screencast of the lack of animation. As you can see, the "standby" icon is present through the entire shot. The animation never cycles through the 3 "pulling" icons.

 

http://screencast-o-matic.com/watch/c2lfr0e0Ze

 

 

Here is my class:

 

package com.swatkins.firstmod;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBow;
import net.minecraft.util.IIcon;

public class DiamondBow extends ItemBow {

public static final String[] bowPullIconNameArray = new String[] {"diamond_bow_pulling_0", "diamond_bow_pulling_1", "diamond_bow_pulling_2"};
    @SideOnly(Side.CLIENT)
    private IIcon[] iconArray;
    
public DiamondBow()
{
	setUnlocalizedName(FirstMod.MODID + "_" + "diamond_bow");
}

@Override
@SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister p_94581_1_)
    {
        this.itemIcon = p_94581_1_.registerIcon(FirstMod.MODID + ":" + "diamond_bow_standby");
        this.iconArray = new IIcon[bowPullIconNameArray.length];

        for (int i = 0; i < this.iconArray.length; ++i)
        {
            this.iconArray[i] = p_94581_1_.registerIcon(FirstMod.MODID + ":" + bowPullIconNameArray[i]);
        }
    }
}

 

I know there is a getItemIconForUseDuration method, but it is never called when holding down the right mouse button to shoot the bow. I've also tried implementing a getIcon method, but it isn't called either.

 

Can anyone help me to get this animation working? I appreciate your help!

Link to comment
Share on other sites

Received an answer on StackOverflow (http://stackoverflow.com/a/27327256/844726), thought I'd share here for others.

 

These two methods need to be present in the Custom Bow class:

 

@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon (ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
{
    if (usingItem != null)
    {
        int time = 72000 - useRemaining;
        if (time <
            return iconArray[0];
        if (time < 14)
            return iconArray[1];
        return iconArray[2];
    }
    return getIcon(stack, renderPass);
}

@Override
public IIcon getItemIconForUseDuration(int par1)
{
    return this.iconArray[par1];
}

Link to comment
Share on other sites

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.