The Sap Bucket does not have a Container Item, aka Empty Bucket, meaning it gets used up by anything.
I'm sorry, same as for gases I have no idea how to fix this.
Here is how I am doing things:
A code which is adding a bucket for rubber tree sap in preInit stage if IHL:
if(type.haveBucket)
{
Item bucket = new ItemBucket(block).setTextureName(IHLModInfo.MODID+":bucket_"+type.fluidName).setUnlocalizedName("bucket_"+type.fluidName).setCreativeTab(IHLCreativeTab.tab);
GameRegistry.registerItem(bucket, "bucket_"+type.fluidName);
FluidContainerRegistry.registerFluidContainer(instance, new ItemStack(bucket), FluidContainerRegistry.EMPTY_BUCKET);
}
A code to check fluid containers (in a second slot of "Ore dictionary item scanner"):
if (this.itemsSlot.get(1) != null && this.itemsSlot.get(1) != lastItem) {
this.oreDictionaryEntries.clear();
FluidStack fluid = null;
this.oreDictionaryEntries.add("Fluid related item type:");
if (this.itemsSlot.get(1).getItem() instanceof IFluidContainerItem) {
this.oreDictionaryEntries.add(" IFluidContainerItem");
fluid = ((IFluidContainerItem) this.itemsSlot.get(1).getItem()).getFluid(this.itemsSlot.get(1));
} else if (FluidContainerRegistry.isContainer(this.itemsSlot.get(1))) {
this.oreDictionaryEntries.add(" FluidContainerRegistry entry");
if (FluidContainerRegistry.isBucket(this.itemsSlot.get(1))) {
this.oreDictionaryEntries.add("This is bucket.");
} else {
this.oreDictionaryEntries.add("This is not a bucket.");
}
ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(this.itemsSlot.get(1));
if (emptyContainer != null) {
this.oreDictionaryEntries.add("This container could return empty container:");
this.oreDictionaryEntries.add(" " + emptyContainer.getDisplayName());
} else {
this.oreDictionaryEntries.add("This container has no empty version.");
}
fluid = FluidContainerRegistry.getFluidForFilledItem(this.itemsSlot.get(1));
}
else{
this.oreDictionaryEntries.add(" none");
}
if (fluid != null) {
this.oreDictionaryEntries.add("Internal fluid name:");
this.oreDictionaryEntries.add(" " + fluid.getFluid().getName());
this.oreDictionaryEntries.add("Fluid class:");
this.oreDictionaryEntries.add(" " + fluid.getFluid().getClass().getName());
this.oreDictionaryEntries.add("Fluid id:");
this.oreDictionaryEntries.add(" " + fluid.getFluid().getID());
this.oreDictionaryEntries.add("Fluid still icon:");
if (fluid.getFluid().getStillIcon() != null) {
this.oreDictionaryEntries.add(" " + fluid.getFluid().getStillIcon().getIconName());
} else {
this.oreDictionaryEntries.add(" <missing icon> ");
}
this.oreDictionaryEntries.add("Fluid flowing icon:");
if (fluid.getFluid().getFlowingIcon() != null) {
this.oreDictionaryEntries.add(" " + fluid.getFluid().getFlowingIcon().getIconName());
} else {
this.oreDictionaryEntries.add(" <missing icon> ");
}
}
Display More
A result of such check:
Gregtech version: gregtech_1.7.10-6.04.07
bear989
Coagulator recipe in nerfed. Slower 4x times, also give out 22 time lower amount of rubber per bucket.