2020-05-09 14:56:58 +02:00
|
|
|
package de.ellpeck.prettypipes.compat.jei;
|
|
|
|
|
|
|
|
import de.ellpeck.prettypipes.packets.PacketGhostSlot;
|
|
|
|
import de.ellpeck.prettypipes.packets.PacketHandler;
|
|
|
|
import de.ellpeck.prettypipes.terminal.containers.CraftingTerminalContainer;
|
|
|
|
import mezz.jei.api.gui.IRecipeLayout;
|
|
|
|
import mezz.jei.api.recipe.transfer.IRecipeTransferError;
|
|
|
|
import mezz.jei.api.recipe.transfer.IRecipeTransferHandler;
|
2021-12-19 17:27:21 +01:00
|
|
|
import net.minecraft.world.entity.player.Player;
|
|
|
|
import net.minecraft.world.item.crafting.CraftingRecipe;
|
2020-05-09 14:56:58 +02:00
|
|
|
|
|
|
|
import javax.annotation.Nullable;
|
2022-05-20 10:31:00 +02:00
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
2020-05-09 14:56:58 +02:00
|
|
|
|
2021-12-19 17:27:21 +01:00
|
|
|
public class CraftingTerminalTransferHandler implements IRecipeTransferHandler<CraftingTerminalContainer, CraftingRecipe> {
|
|
|
|
|
2020-05-09 14:56:58 +02:00
|
|
|
@Override
|
|
|
|
public Class<CraftingTerminalContainer> getContainerClass() {
|
|
|
|
return CraftingTerminalContainer.class;
|
|
|
|
}
|
|
|
|
|
2021-12-19 17:27:21 +01:00
|
|
|
@Override
|
|
|
|
public Class<CraftingRecipe> getRecipeClass() {
|
|
|
|
return CraftingRecipe.class;
|
|
|
|
}
|
|
|
|
|
2020-05-09 14:56:58 +02:00
|
|
|
@Nullable
|
|
|
|
@Override
|
2021-12-19 17:27:21 +01:00
|
|
|
public IRecipeTransferError transferRecipe(CraftingTerminalContainer container, CraftingRecipe recipe, IRecipeLayout recipeLayout, Player player, boolean maxTransfer, boolean doTransfer) {
|
2020-05-09 14:56:58 +02:00
|
|
|
if (!doTransfer)
|
|
|
|
return null;
|
2022-05-20 10:31:00 +02:00
|
|
|
Map<Integer, PacketGhostSlot.Entry> stacks = new HashMap<>();
|
2021-12-19 17:27:21 +01:00
|
|
|
var ingredients = recipeLayout.getItemStacks().getGuiIngredients();
|
|
|
|
for (var entry : ingredients.entrySet()) {
|
2020-05-09 14:56:58 +02:00
|
|
|
if (entry.getValue().isInput())
|
2022-05-20 10:31:00 +02:00
|
|
|
stacks.put(entry.getKey() - 1, new PacketGhostSlot.Entry(entry.getValue().getAllIngredients()));
|
2020-05-09 14:56:58 +02:00
|
|
|
}
|
2021-12-19 17:27:21 +01:00
|
|
|
PacketHandler.sendToServer(new PacketGhostSlot(container.getTile().getBlockPos(), stacks));
|
2020-05-09 14:56:58 +02:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|