From bf6437c12a1b30e8b6caedc117f8c77ec15da742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20R=C3=B6sch?= Date: Tue, 13 Sep 2016 09:02:01 +0200 Subject: [PATCH] Fix universal bucket not being returned in crafting recipes (#3234) --- .../minecraftforge/fluids/UniversalBucket.java | 17 +++++++++++++++++ .../net/minecraftforge/debug/DynBucketTest.java | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java index 2c75bc699d..dcf5c9bc5b 100644 --- a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java +++ b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java @@ -79,6 +79,23 @@ public class UniversalBucket extends Item implements IFluidContainerItem BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject(this, DispenseFluidContainer.getInstance()); } + @Override + public boolean hasContainerItem(ItemStack stack) + { + return getEmpty() != null; + } + + @Override + public ItemStack getContainerItem(ItemStack itemStack) + { + if (getEmpty() != null) + { + // Create a copy such that the game can't mess with it + return getEmpty().copy(); + } + return super.getContainerItem(itemStack); + } + @SideOnly(Side.CLIENT) @Override public void getSubItems(Item itemIn, CreativeTabs tab, List subItems) diff --git a/src/test/java/net/minecraftforge/debug/DynBucketTest.java b/src/test/java/net/minecraftforge/debug/DynBucketTest.java index 7943612976..28192f4aab 100644 --- a/src/test/java/net/minecraftforge/debug/DynBucketTest.java +++ b/src/test/java/net/minecraftforge/debug/DynBucketTest.java @@ -28,6 +28,7 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.debug.ModelFluidDebug.TestFluid; import net.minecraftforge.debug.ModelFluidDebug.TestGas; import net.minecraftforge.event.entity.player.FillBucketEvent; @@ -121,6 +122,8 @@ public class DynBucketTest //GameRegistry.registerItem(dynBucket, "dynbucket"); GameRegistry.register(dynBottle); + GameRegistry.addShapelessRecipe(new ItemStack(Items.DIAMOND), + UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, TestFluid.instance)); // register fluid containers int i = 0;