FLUFFY2 Posted December 7, 2015 Share Posted December 7, 2015 Hi, So basically, i want to stop the swing animation when the player right click on a block with the item. I found that the resetEquippedProggress() does that, and also that Forge has an Event, that when its cancelled it shouldn't happen. Now i cancelled the PlayerInteractEvent when the item is held and the action is RIGHT_CLICK_BLOCK. With System prints i tested it it gets called, yet i can still see the animation What are the other possible ways to cancel the right click on block animation? Thanks! Quote Link to comment Share on other sites More sharing options...
FLUFFY2 Posted December 7, 2015 Author Share Posted December 7, 2015 Yeah i tought the same, BUT.... public class RightClickEventHandler{ @SubscribeEvent public void onRightClick(PlayerInteractEvent event){ EntityPlayer player = event.entityPlayer; if(player.getHeldItem() != null && player.getHeldItem().getItem() == Csgo.Usp){ if(event.action == Action.RIGHT_CLICK_BLOCK){ event.setCanceled(true); } } } } Registered in main mod file, init(): MinecraftForge.EVENT_BUS.register(new RightClickEventHandler()); Does not work sadly. Quote Link to comment Share on other sites More sharing options...
FLUFFY2 Posted December 8, 2015 Author Share Posted December 8, 2015 Huh........ I think when i set the private field to 1F, the animation is half way throught, so i can see the shorter version of it. Even if i put it inside the onUpdate(), its still to slow to set the private value. Guess you cannot cancel that animation. Oh well.... Thanks anyway buddy. Quote Link to comment Share on other sites More sharing options...
FLUFFY2 Posted December 8, 2015 Author Share Posted December 8, 2015 Ohhhh, you opened my eyes. Thank you sir! I have used getPrivateValue() in the reflection wich obviously dont get me anywhere. Updated code: @SubscribeEvent public void onRightClick(PlayerInteractEvent event){ EntityPlayer player = event.entityPlayer; if(event.world.isRemote){ if(player.getHeldItem() != null && player.getHeldItem().getItem() == Csgo.Usp){ if(event.action == Action.RIGHT_CLICK_BLOCK || event.action == Action.RIGHT_CLICK_AIR){ ObfuscationReflectionHelper.setPrivateValue(ItemRenderer.class, Minecraft.getMinecraft().getItemRenderer(), 1F, "equippedProgress", "field_78454_c"); } } } } This actually makes the animation not happend, YET allows me to use the onItemRightClick and onItemUse methods. Just how i wanted. I think the shouldCauseReequipAnimation() should also affect this animaton as well, because i think this will get asked a lot more. Why you upload a video about this? Never saw you do that.... angry? Thanks lad! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.