Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8]Crafting recipe help?[SOLVED]


Atijaf
 Share

Recommended Posts

Is it possible to add a shapeless recipe that requires multiple itemStacks in one slot to create?

 

Basically, put 64 gold nuggets in one slot and that 64 will create 1 gold ingot.  Is that possible?

 

I don't think is is possible due to the fact that I can not think of a mod that does this, all recipes that need more then 1 of a type of item always puts 1 item in a different slot. e.g. thermal fundations mods of making bronze needs 1 tin 3 copper however you need 3 of 1 copper to do this.

 

I hope I am wrong but as far I know there isn't a way.

Link to comment
Share on other sites

The vanilla crafting table only supports recipes that require a single item for each slot, you can't create a recipe that consumes multiple items from a single slot.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

You guys sure that IRecipe implementation won't allow that?

How about shapeless stuff?

 

(Last time I did recs was in like 1.3 lol)

 

You could probably make an

IRecipe

that only matched a stack of gold nuggets, but

SlotCrafting#onPickupFromSlot

specifically decrements the stack in each slot by 1.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Got it working.  I had actually forgotten I followed a tutorial showing me how to make requirements for crafting.  I can't remember who made the tutorial though:(  Sorry!

 

 

You could probably make an

IRecipe

that only matched a stack of gold nuggets, but

SlotCrafting#onPickupFromSlot

specifically decrements the stack in each slot by 1.

 

From within my class that implements IRecipe, i Override "GetRemainingItems" to remove the required amount from the slot, so in this case 64.

 

A little more complicated than that, but mostly just ifs.

@Override
public ItemStack[] getRemainingItems(InventoryCrafting inv) //getRecipeLeftovers
{

	EntityPlayer player = findPlayer(inv);
	CraftingRequirements crafting_requirements = CraftingRequirements.getObject(new MyItemStack(output));

	if(player != null && crafting_requirements != null){
		byte amountRequired = (byte) crafting_requirements.getAmountRequired();

		if(amountRequired > 1 && amountRequired <= 64){
			ItemStack[] ret = new ItemStack[inv.getSizeInventory()];
			for(int i = 0; i < ret.length; i++){
				ret[i] = inv.getStackInSlot(i);
				if(ret[i] != null){
					ret[i].stackSize -= amountRequired;
					if(ret[i].stackSize == 0){
						ret[i] = null;
					}
				}
			}
			return ret;
		}
	}
	//Vanilla method for when it needs to be handled the Vanilla way!
	return ForgeHooks.defaultRecipeGetRemainingItems(inv);
}

 

I also had to override "matches" to check if the slot has the amount required to make the item.

 

Thanks everyone!

Link to comment
Share on other sites

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

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.