Posted October 22, 201312 yr 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 Have a nice day Don't blame me if i always ask for your help. I just want to learn to be better
October 22, 201312 yr See the ForgeHooksClient line ? Forge has a hook for that so you don't have to override player.
October 22, 201312 yr 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
October 22, 201312 yr Use the FOVUpdateEvent to add the part with if (Minecraft.getMinecraft().thePlayer.isUsingItem() && (Minecraft.getMinecraft().thePlayer.getItemInUse().itemID == mod_ores.main.rubyBow.itemID)) ...
October 29, 201311 yr 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.
October 29, 201311 yr 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.