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;