From fa31c65c9f4aad5e78c7eeec59c574647d6f2a4f Mon Sep 17 00:00:00 2001 From: Shadows_of_Fire Date: Fri, 7 Jul 2017 13:51:44 -0400 Subject: [PATCH] Fix table on a stick now mimics vanilla behavior and tries to add stacks back to inv before dropping. --- .../mod/inventory/ContainerCrafter.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCrafter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCrafter.java index 767f9521c..05f305e1a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCrafter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerCrafter.java @@ -13,11 +13,13 @@ package de.ellpeck.actuallyadditions.mod.inventory; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import invtweaks.api.container.InventoryContainer; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.*; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; @InventoryContainer @@ -107,19 +109,21 @@ public class ContainerCrafter extends Container{ public void onContainerClosed(EntityPlayer player){ super.onContainerClosed(player); - if(!this.world.isRemote){ for(int i = 0; i < 9; ++i){ ItemStack stack = this.craftMatrix.removeStackFromSlot(i); if(StackUtil.isValid(stack)){ - player.dropItem(stack, false); - } + if(!player.addItemStackToInventory(stack)) + if(!this.world.isRemote) Block.spawnAsEntity(world, player.getPosition(), stack); } } } @Override public void onCraftMatrixChanged(IInventory inv){ - this.craftResult.setInventorySlotContents(0, CraftingManager.findMatchingRecipe(this.craftMatrix, this.world).getRecipeOutput()); + IRecipe output = CraftingManager.findMatchingRecipe(this.craftMatrix, this.world); + ItemStack stack = ItemStack.EMPTY; + if(output != null) stack = output.getRecipeOutput(); + this.craftResult.setInventorySlotContents(0, stack); } @Override