Jump to content

Forge 1.7.2 How to make a new bow?


Sonyika

Recommended Posts

I take it that with the textures not working you mean the animation isn't being done?

 

This thread offers a perfect solution:

 

http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/modification-development/1438011-1-7-2-custom-bow-not-using-animation-textures

 

And if you have trouble with the texture itself, it might solve that as well.

Link to comment
Share on other sites

That's because the normal bow animation is a hardcoded one only useable for the vanilla code.

 

In this topic a solution is offered:

 

http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/modification-development/1437164-1-6-4-forge-bow-texture-not-working

 

And it might just solve your rotation problem, which is probably caused by the animation not working thus rendering a standard item.

Link to comment
Share on other sites

I gave it a quick test since I wanted to see whether this code was still viable in 1.7.10. I hadn't gotten around to fixing a syringe in my own mod so this was an excellent opportunity.

 

This animates the provided textures.

@Override
    @SideOnly(Side.CLIENT)
    public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) {
        if (usingItem == null) { return itemIcon; }
        int ticksInUse = stack.getMaxItemUseDuration() - useRemaining;

        if (ticksInUse > 18) {
              return iconArray[2];
        } else if (ticksInUse > 14) {
            return iconArray[1];
        } else if (ticksInUse > 0) {
            return iconArray[0];
        } else {
            return itemIcon;
        }
    }

 

As coolAlias said, set this.setFull3D() in constructor

 

and provide the texture with

public static final String[] SyringePullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"};
    @SideOnly(Side.CLIENT)
    private IIcon[] iconArray;

 

and this

 

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

        for (int i = 0; i < this.iconArray.length; ++i)
        {
            this.iconArray[i] = parIconRegister.registerIcon(MODID + ":" + "basesyringe" +  "_" + SyringePullIconNameArray[i]);
        }
    }

 

I gave you a lot, which is not my habit unless I see that the person knows java/modding/does effort, but at least I now know where to refer to once there is a similar question asked here.

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.