Jump to content

Handsaw Item


Dajel_Deker

Recommended Posts

Hi im a nobe and i know it.

 

Im working on a small mod thats based on Forge.

I want to add an item that takes damage when used in a crafting recipe like the handsaws from redpower.

I read that its uses Forge to function. I looked for something that could do that in the source files, google, Forge Wiki but i cant find anything.

 

Please If you know how to do it please tell me or point me in the right direction.

:)

 

EDIT:

Hi do annubody know how it works on 1.4?

 

 

(Sorry For my Spelling)

Link to comment
Share on other sites

  • 4 weeks later...

hey, i am looking for some healp in the same thing like the author.

 

i looked in the ICraftingHandler, but i dont understand how it works :( do i have to create a ItemTool with this handler implemented?

 

and then make it like:

 

stack.setItemDamage(stack.getItemDamage() - 1);

 

greetz

helfull

Developing CocktailsMod :)

Link to comment
Share on other sites

Success!!!

 

After mining (get it :)) through the source code for half a day (not to be provd of :)) I at last came up with a method which does what you want (and so do I).

 

!WARNING!

 

This is a code which was a result of a half a day of reading through the internet so it's not writen well. Also... if you can rewrite in a better state then do that and post it here please. So here goes:

 

 

@Override
        public void takenFromCrafting(EntityPlayer e, ItemStack item, IInventory m)
        {
        	for(int i=0; i<m.getSizeInventory(); i++)
    		{        	
        		if(m.getStackInSlot(i) != null)
        		{
        			ItemStack j = m.getStackInSlot(i);
        			if(j.getItem() != null && j.getItem() == this.pickSapphire)
        			{				
        				ItemStack k = new ItemStack(pickSapphire, 2);
        				k.damageItem(j.getItemDamage() + 1, e);
        				m.setInventorySlotContents(i, k);
        			}
        		}    			
    		}
        }

 

 

 

I think I also have some explaining to do :)

 

1. This goes in the mod_xxx.java

2. For loop loops through the slots in the current inventory (crafting table/inventory crafting space) looking for the item stated in the if statement

3. Now this is the stupid part but I couldn't find a better way... The truth is that takenFromCrafting is called before the ingredients are destroied or at least that is what I've found (Lex?) that is why you have to make an ItemStack of two Items so that one is destroied and the other stays in the grid

4. this in the if statement is the BaseMod class or the class having your item defined in

5. Then is just the damage calculation depending on the ingredient (Item)

 

This is it :) If you have some more questions be sure to ask and I'll respond asap.

 

Have fun, JKK.

 

EDIT: Eloraam if you see this, would you mind not die because of laughing :) Maybe even supply us with your code? (not begging ofc)

 

Link to comment
Share on other sites

Thats actually quite similar to how El does it.

Except instead of creating a new ItemStack like a berp, she just edits the ItemStack instance.

stack.damage++;

stack.stackSize++;

Done.

 

As for this line:

if(j.getItem() != null && j.getItem() == this.pickSapphire)

the PROPER line should be:

if(j != null && j.getItem() == this.pickSapphire)

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Thats actually quite similar to how El does it.

Except instead of creating a new ItemStack like a berp, she just edits the ItemStack instance.

stack.damage++;

stack.stackSize++;

Done.

 

As for this line:

if(j.getItem() != null && j.getItem() == this.pickSapphire)

the PROPER line should be:

if(j != null && j.getItem() == this.pickSapphire)

Thank you for the respons Lex. Tbh I was trying out the solution that you first stated (++) but at that time I didn't know I need 2 stacks so I thought it somehow isn't working. For the second one... makes sence to use it that way.

Link to comment
Share on other sites

Do not specify a damage value for it in the recipe and it will use all.

 

My recipe:

ModLoader.addShapelessRecipe(new ItemStack(DecPlanks, 4, 2),new Object[]{
Block.planks,Block.planks,Block.planks,Block.planks, Item.axeGold
	});

 

I can only use the golden axe once in the recipe, because when its damaged after the first time I use it in the recipe Its not new hence I cant use it anymore this is very frustrating. btw JKK, because you got it working, can you please help me out? I need this! Thank you!

Link to comment
Share on other sites

  • 4 weeks later...

Was Reading this and i was trying to get this working but i did something wrong. I got errors on the e and m's

 

After i pieced together what the comments said and i got it to this.

 

 

    for(int i=0; i<m.getSizeInventory(); i++)

    {       

    if(m.getStackInSlot(i) != null)

    {

    ItemStack j = m.getStackInSlot(i);

    if(j != null && j.getItem() == this.Test)

    {

    ItemStack k = new ItemStack(Test, 2);

    k.damageItem(j.getItemDamage() + 1, e);

    m.setInventorySlotContents(i, k);

    }

    }   

    }

 

 

 

What are wrong?!?!

Link to comment
Share on other sites

  • 2 weeks later...

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • After uninstalling this mod, everything works! Thanks!
    • I had been playing on this fabric server for about a month with some friend and one day it just stopped starting, can anyone help me understand what the cause is? https://mclo.gs/2jop3r5    
    • The mobs are moving normally for a second, then freeze, then go back to normal, and this repeats. I describe this as mob lag, bc they stutter as if they were lagging. I don't have the best wifi, but that shouldn't matter since its 10mbps which is enough for a server. I have 8 gigs of ram for it, no optimizations have worked, if there is anything more you may need to help lmk, ill describe. The modlist is pretty hefty: VS_ClockworkSurvivalSupportV1.4 aether-1.20.1-1.2.0-neoforge.jar alexsdelight-1.5.jar alexsmobs-1.22.7.jar appleskin-forge-mc1.20.1-2.5.1.jar backpacked-forge-1.20.1-2.2.5.jar balm-forge-1.20.1-7.2.1.jar bettervillage-forge-1.20.1-3.2.0.jar BiomesOPlenty-1.20.1-18.0.0.598.jar botarium-forge-1.20.1-2.3.2.jar CGM-Unofficial-1.4.11+Forge+1.20.1.jar citadel-2.5.2-1.20.1.jar clockwork-1.20.1-0.1.2-forge-05f5d5fbbb.jar configured-forge-1.20.1-2.2.2.jar connectivity-1.20.1-4.9.jar create-1.20.1-0.5.1.f.jar create-new-age-forge-1.20.1-1.1.2.jar createarmoryv0.6.1n.jar createbigcannons-forge-1.20.1-0.5.3.b.jar createchunkloading-1.6.0-forge.jar createdeco-2.0.1-1.20.1-forge.jar createdieselgenerators-1.20.1-1.2h.jar createendertransmission-2.0.7-1.20.1.jar create_misc_and_things_ 1.20.1_4.0A.jar cristellib-1.1.5-forge.jar cupboard-1.20.1-2.3.jar curios-forge-5.7.0+1.20.1.jar destroy-1.20.1-0.8.jar Dungeon Crawl-1.20.1-2.3.14.jar FallingTree-1.20.1-4.3.4.jar FarmersDelight-1.20.1-1.2.4.jar framework-forge-1.20.1-0.6.26.jar geckolib-forge-1.20.1-4.4.2.jar InsaneLib-1.12.1-mc1.20.1.jar Jade-1.20.1-forge-11.8.0.jar jei-1.20.1-forge-15.3.0.4.jar journeymap-1.20.1-5.9.18-forge.jar JustEnoughResources-1.20.1-1.4.0.247.jar kotlinforforge-4.10.0-all.jar l2library-2.4.23.jar libraryferret-forge-1.20.1-4.0.0.jar macawsbridgesbop-1.20-1.1.jar mcw-bridges-2.1.0-mc1.20.4forge.jar moonlight-1.20-2.9.17-forge.jar morevillagers-forge-1.20.1-5.0.0.jar Mo_ZombiesWave-1.20.1-0.1.0-forge.jar NaturesCompass-1.20.1-1.11.2-forge.jar Placebo-1.20.1-8.6.1.jar refinedstorage-1.12.4.jar soundphysics-forge-1.20.1-1.1.2.jar spark-1.10.53-forge.jar stealing_villagers-forge-1.20.1-1.0.0.jar s_a_b-1.3.0_1.20.1.jar takesapillage-1.0.3-1.20.1.jar TerraBlender-forge-1.20.1-3.0.1.4.jar tombstone-1.20.1-8.6.2.jar Towns-and-Towers-1.12-Fabric+Forge.jar twilightforest-1.20.1-4.3.2145-universal.jar valkyrienskies-120-2.1.3-beta.1.jar veinmining-forge-1.3.0+1.20.1.jar waystones-forge-1.20-14.1.3.jar YungsApi-1.20-Forge-4.0.3.jar YungsBetterDesertTemples-1.20-Forge-3.0.3.jar YungsBetterDungeons-1.20-Forge-4.0.3.jar YungsBetterEndIsland-1.20-Forge-2.0.5.jar YungsBetterJungleTemples-1.20-Forge-2.0.4.jar YungsBetterMineshafts-1.20-Forge-4.0.4.jar YungsBetterNetherFortresses-1.20-Forge-2.0.5.jar YungsBetterOceanMonuments-1.20-Forge-3.0.4.jar YungsBetterStrongholds-1.20-Forge-4.0.3.jar YungsBetterWitchHuts-1.20-Forge-3.0.3.jar YungsBridges-1.20-Forge-4.0.3.jar zaynens_leather_from_rotten_flesh_mod_1.20.1.jar
    • Thank you so much! Unfortunately before reading this I reinstalled my java installer. Now when I try to open the forge installer I receive an error message stating 'Unable to install Java' even though I have definitely downloaded and installed the latest version. Any idea what this could be or how I could fix it?  
    • IT WORKED! THANK YOU!
  • Topics

×
×
  • Create New...

Important Information

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