Posted February 2, 201510 yr good days long ago i post this same question but let it behind unsolved for things create this 3d item and make it animated swiching json files, when aim this drill at a block it begins to goin down and up like crazy, and thats anoing, worst is to see it in hand guns. in this video if aim the drill to a block it begins to bounse but aiming to air works well, the shotgun goes down when shoot and its not suppouse to goin down when shoot , if aiming to a block it bounse mad as well. if i dont use playerIn.setItemInUse() and EnumAction it swings even when aiming to air. Using the bow EnumAction, i like the way it looks in thirth view but is shitti in first person, the animation stop until getMaxItemUseDuration() run out of time and restart so help how i stop the swing animations at item rigth click ? the use i been using of playerIn.setItemInUse() is rigth? or Unnecessary this is mi code i been geting the tics to switch the animations from the getModel() method to avoid mesing whith onUpdate() method and events package mercenarymod.items.herraminetas; import mercenarymod.materialesMercenarios; import mercenarymod.Mercenary; import net.minecraft.block.Block; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.IBlockState; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumFacing; import net.minecraft.util.IChatComponent; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import mercenarymod.blocks.MercenaryModBlocks; import mercenarymod.items.MercenaryModItems; import mercenarymod.utilidades.chat; import mercenarymod.utilidades.nbtMercenaria; import java.lang.Math; import java.util.ArrayList; import java.util.List; import mercenarymod.utilidades.util; //############################################################################3 public class drillMercenario extends ItemPickaxe{ public static String name = "drillMercenario"; boolean giro=false; int munitionMax=0; static int munitionMax0=64; int tick=0; int textura; boolean continuar=false; public static ArrayList<Integer> coor0 = new ArrayList<Integer>(); public static final PropertyDirection FACING = PropertyDirection.create("facing"); //############################################################################3 public drillMercenario(){ super(materialesMercenarios.carbono_carbono()); setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerItem(this, name); setCreativeTab(Mercenary.herramientas); this.maxStackSize = 1; } //######################################################################################3 @Override public ModelResourceLocation getModel(ItemStack drill, EntityPlayer playerIn, int useRemaining){ ModelResourceLocation modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_04", "inventory"); animation(drill, playerIn,tick); if ((tick%10)==0){ boolean animation=nbtMercenaria.getBooleantag(drill, "animation"); //System.out.println("animation="+animation); if(!animation){ //animation(drill, playerIn,tick); //textura=nbtMercenaria.getInttag(drill, "textura"); giro=false; } } System.out.println("textura="+textura); switch(textura){ default:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario", "inventory") ;break; case 1:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_00", "inventory") ;break; case 2:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_01", "inventory") ; break; case 3:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_02", "inventory") ;break; case 4:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_03", "inventory") ;break; case 5:modelresourcelocation = new ModelResourceLocation("modmercenario:herramientas/drill/drillMercenario_04", "inventory") ;break; } tick++; if (tick>100){tick=0;nbtMercenaria.setBooleantag(drill, "animation",false);} return modelresourcelocation; } //####################################################################################3 void animation(ItemStack drill, EntityPlayer playerIn,int tick){ if (giro){ System.out.println("Giro="+tick); switch (tick){ case 0: case 12: case 49: textura=1;break; case 3: case 15: case 46: textura=2;break; case 6: case 18: case 43: textura=3;break; case 9: case 21: case 40: textura=4;break; case 23: textura=5;break; case 33: if(continuar){this.tick=22;continuar=false;}break; case 52: textura=0;this.tick=0;nbtMercenaria.setBooleantag(drill, "animation",false);giro=false;break; } } } //####################################################################################3 void inicializar(ItemStack drill){ //this do nothing for now int munition=0; int metadata=drill.getMetadata(); switch(metadata){ case 1: munition=munitionMax0/2;break; case 2: munition=munitionMax0;break; default:munition=0;break; } nbtMercenaria.setInttag(drill, "munition", munition); nbtMercenaria.setBooleantag(drill, "animation", false); nbtMercenaria.setBooleantag(drill, "liberar", false); nbtMercenaria.setInttag(drill, "bulletClip", 0); nbtMercenaria.setInttag(drill, "textura", 0); } //####################################################################################3 public ItemStack onItemRightClick(ItemStack drill, World worldIn, EntityPlayer playerIn){ System.out.println("onItemRightClick"); playerIn.setItemInUse(drill, this.getMaxItemUseDuration(drill)); boolean animation=nbtMercenaria.getBooleantag(drill, "animation"); if (!animation){ System.out.println("if (!animation)"); playerIn.setItemInUse(drill, this.getMaxItemUseDuration(drill)); int munition=nbtMercenaria.getInttag(drill,"munition"); //if (munition>0){} giro=true; tick=0; nbtMercenaria.setBooleantag(drill, "animation", true); System.out.println("\n\n acivar"); } if (animation & giro){ continuar=true; } return drill;} //############################################################################3 public int getMaxItemUseDuration(ItemStack stack) { return 1; } public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.NONE; } //######################################################################################3 @SideOnly(Side.CLIENT) public void addInformation(ItemStack drill, EntityPlayer player, List list, boolean aBoolean) { int munition=nbtMercenaria.getInttag(drill, "munition"); if((munition>9998)||(munition<0)){ //inicializar int metadata=drill.getMetadata(); switch(metadata){ case 1: munition=munitionMax0/2;break; case 2: munition=munitionMax0;break; default:munition=0;break; } } String lore="redstone="+munition; String lore0="requiere suspencion de redstone para funcionar"; if(lore != "") { list.add(lore); list.add(lore0); } } }//fin de la classe
September 10, 201510 yr Hello everyone! I found a very simple solution to this problem that has bothered me too. In the class "ItemRender.java" in method "updateEquippedItem()" is an assignment to a variable named flag flag = this.equippedItemSlot == entityclientplayermp.inventory.currentItem && itemstack == this.itemToRender; To solve this problem, just replace that line with this boolean flag; if(itemstack == null) { flag = this.equippedItemSlot == entityclientplayermp.inventory.currentItem && itemstack == this.itemToRender; } else { flag = this.equippedItemSlot == entityclientplayermp.inventory.currentItem && itemstack.itemID == this.itemToRender.itemID; } It worked, I'm using version 1.5.2.
September 10, 201510 yr As said in the other post you posted on a old topic, your code is for 1.5. Now you can do it with Forge hooks. Nobody wants your code which they can't even use. It is for a MC version almost nobody uses anymore. And you posted on a topic made in February! Don't revive old threads like these anymore. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
September 10, 201510 yr Well, if you are using the latest build of Forge (or close to it) for 1.8, you can utilize the fix LexManos implemented a little while ago. Just override the method shouldCauseReequipAnimation() in your classes of the Item type and simply return false. Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]
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.