@@ -122,12 +122,38 @@ public void writeItemStackData(NBTTagCompound itemStack) {
122122 public ICapabilityProvider initItemStackCapabilities (ItemStack itemStack ) {
123123 return new FluidHandlerItemStack (itemStack , tankSize ) {
124124 @ Override
125- protected void setContainerToEmpty () {
126- this .container .setTagCompound (null );
125+ public FluidStack drain (FluidStack resource , boolean doDrain ) {
126+ FluidStack drained = super .drain (resource , doDrain );
127+ this .removeTagWhenEmptied (doDrain );
128+ return drained ;
129+ }
130+
131+ @ Override
132+ public FluidStack drain (int maxDrain , boolean doDrain ) {
133+ FluidStack drained = super .drain (maxDrain , doDrain );
134+ this .removeTagWhenEmptied (doDrain );
135+ return drained ;
136+ }
137+
138+ private void removeTagWhenEmptied (boolean doDrain ) {
139+ if (doDrain && this .getFluid () == null ) {
140+ this .container .setTagCompound (null );
141+ }
142+ }
143+
144+ @ Override
145+ public boolean canFillFluidType (FluidStack fluid ) {
146+ return MetaTileEntityDrum .this .canFillFluidType (fluid );
127147 }
128148 };
129149 }
130150
151+ protected boolean canFillFluidType (FluidStack fluid ) {
152+ return !ModHandler .isMaterialWood (material ) &&
153+ !material .hasFlag (FLAMMABLE ) ||
154+ fluid .getFluid ().getTemperature (fluid ) <= 325 ;
155+ }
156+
131157 @ Override
132158 public void writeInitialSyncData (PacketBuffer buf ) {
133159 super .writeInitialSyncData (buf );
0 commit comments