PrettyPipes/src/main/java/de/ellpeck/prettypipes/compat/jei/CraftingModuleTransferHandler.java

47 lines
1.7 KiB
Java
Raw Normal View History

package de.ellpeck.prettypipes.compat.jei;
2022-06-27 13:57:06 +02:00
// TODO JEI
/*
2021-12-19 17:27:21 +01:00
public class CraftingModuleTransferHandler implements IRecipeTransferHandler<CraftingModuleContainer, CraftingRecipe> {
@Override
public Class<CraftingModuleContainer> getContainerClass() {
return CraftingModuleContainer.class;
}
@Override
2021-12-19 17:27:21 +01:00
public Class<CraftingRecipe> getRecipeClass() {
return CraftingRecipe.class;
}
@Override
public IRecipeTransferError transferRecipe(CraftingModuleContainer container, CraftingRecipe recipe, IRecipeLayout recipeLayout, Player player, boolean maxTransfer, boolean doTransfer) {
if (!doTransfer)
return null;
2021-12-19 17:27:21 +01:00
var ingredients = recipeLayout.getItemStacks().getGuiIngredients();
var inputs = new ArrayList<ItemStack>();
var outputs = new ArrayList<ItemStack>();
for (var entry : ingredients.entrySet()) {
var allIngredients = entry.getValue().getAllIngredients();
if (allIngredients.isEmpty())
continue;
2021-12-19 17:27:21 +01:00
var remain = allIngredients.get(0).copy();
var toAdd = entry.getValue().isInput() ? inputs : outputs;
for (var stack : toAdd) {
2021-03-03 01:56:19 +01:00
if (ItemEquality.compareItems(stack, remain)) {
2021-12-19 17:27:21 +01:00
var fits = Math.min(stack.getMaxStackSize() - stack.getCount(), remain.getCount());
stack.grow(fits);
remain.shrink(fits);
if (remain.isEmpty())
break;
}
}
if (!remain.isEmpty())
toAdd.add(remain);
}
PacketHandler.sendToServer(new PacketCraftingModuleTransfer(inputs, outputs));
return null;
}
}
2022-06-27 13:57:06 +02:00
*/