Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hi everyone! I'll ask you if you please help me to complete my custom bows :) I have already done the bow and the third person render class, the last thing i miss is the fov zoom when charging the arrow, like normal bows. I saw that the function is in the EntityPlayerSP class, but i want to make it work without modifying that class. So i made a new class called EntityPlayerBow in wich i have Override that function but i doesn't works, the function doesn't even start.... Maybe i'm missing something? I think the entity should be registered somewhere but i don't know where, i've already done the EntityRegistry instruction in mod's main file but it has no effect....

Here's my EntityPlayerBow class

package mod_ores.items.render;

import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeInstance;
import net.minecraft.util.Session;
import net.minecraft.world.World;
import net.minecraftforge.client.ForgeHooksClient;

public class EntityPlayerBow extends EntityPlayerSP {

public EntityPlayerBow(Minecraft par1Minecraft, World par2World,
		Session par3Session, int par4) {
	super(par1Minecraft, par2World, par3Session, par4);
	// TODO Auto-generated constructor stub
}

@Override
public float getFOVMultiplier()
{
    float f = 1.0F;

    if (Minecraft.getMinecraft().thePlayer.capabilities.isFlying)
    {
        f *= 1.1F;
    }

    AttributeInstance attributeinstance = Minecraft.getMinecraft().thePlayer.getEntityAttribute(SharedMonsterAttributes.movementSpeed);
    f = (float)((double)f * ((attributeinstance.getAttributeValue() / (double)Minecraft.getMinecraft().thePlayer.capabilities.getWalkSpeed() + 1.0D) / 2.0D));

    if (Minecraft.getMinecraft().thePlayer.isUsingItem() && (Minecraft.getMinecraft().thePlayer.getItemInUse().itemID == mod_ores.main.rubyBow.itemID))
    {
        int i = Minecraft.getMinecraft().thePlayer.getItemInUseDuration();
        float f1 = (float)i / 20.0F;

        if (f1 > 1.0F)
        {
            f1 = 1.0F;
        }
        else
        {
            f1 *= f1;
        }

        f *= 1.0F - f1 * 0.15F;
    }

    return ForgeHooksClient.getOffsetFOV(Minecraft.getMinecraft().thePlayer, f);
}

}

 

And the instruction in the mod's main file

EntityRegistry.registerGlobalEntityID(EntityPlayerBow.class, "PlayerBow", 0);

 

Hope someone will help me :D Have a nice day :)

Don't blame me if i always ask for your help. I just want to learn to be better :)

  • Author

So to call that function and make it works what am i supposed to do? :)

Don't blame me if i always ask for your help. I just want to learn to be better :)

Use the FOVUpdateEvent to add the part with

if (Minecraft.getMinecraft().thePlayer.isUsingItem() && (Minecraft.getMinecraft().thePlayer.getItemInUse().itemID == mod_ores.main.rubyBow.itemID))
    ...

Use the FOVUpdateEvent to add the part with

if (Minecraft.getMinecraft().thePlayer.isUsingItem() && (Minecraft.getMinecraft().thePlayer.getItemInUse().itemID == mod_ores.main.rubyBow.itemID))
    ...

 

Is this what will make minecraft use the iconArray where the pulling_0, pulling_1, and pulling_2 textures are used? That's the main issue for my custom bow I need to get fixed.

I have those set in my Custom Bow class which extends Item with the code base copied from ItemBow, however in the game it shows my goldenBow_standby and the shows an awkward texture trying to stretch the standby bow instead of the goldenBowpulling_0, 1, or 2 textures.

 

public class WeaponGoldenBow extends Item
{

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

.....

@SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.itemIcon = par1IconRegister.registerIcon(this.getIconString() + "_standby");
        this.iconArray = new Icon[bowPullIconNameArray.length];

        for (int i = 0; i < this.iconArray.length; ++i)
        {
            this.iconArray[i] = par1IconRegister.registerIcon(this.getIconString() + "_" + bowPullIconNameArray[i]);
        }
    }

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.