001 package net.minecraftforge.liquids; 002 003 import java.util.LinkedList; 004 005 import net.minecraft.src.ItemStack; 006 007 public class LiquidManager { 008 009 public static final int BUCKET_VOLUME = 1000; 010 public static LinkedList<LiquidData> liquids = new LinkedList<LiquidData>(); 011 012 public static LiquidStack getLiquidForFilledItem(ItemStack filledItem) { 013 if (filledItem == null) 014 return null; 015 016 for (LiquidData liquid : liquids) 017 if (liquid.filled.isItemEqual(filledItem)) 018 return liquid.stillLiquid; 019 020 return null; 021 } 022 023 public static int getLiquidIDForFilledItem(ItemStack filledItem) { 024 LiquidStack liquidForFilledItem = getLiquidForFilledItem(filledItem); 025 026 if (liquidForFilledItem == null) 027 return 0; 028 029 return liquidForFilledItem.itemID; 030 } 031 032 public static ItemStack getFilledItemForLiquid(LiquidStack liquid) { 033 for (LiquidData data : liquids) 034 if(data.stillLiquid.isLiquidEqual(liquid)) 035 return data.filled.copy(); 036 037 return null; 038 } 039 040 public static ItemStack fillLiquidContainer(int liquidId, int quantity, ItemStack emptyContainer) { 041 return fillLiquidContainer(new LiquidStack(liquidId, quantity, 0), emptyContainer); 042 } 043 044 public static ItemStack fillLiquidContainer(LiquidStack liquid, ItemStack emptyContainer) { 045 for(LiquidData data : liquids) 046 if(liquid.containsLiquid(data.stillLiquid) 047 && data.container.isItemEqual(emptyContainer)) 048 return data.filled.copy(); 049 return null; 050 } 051 052 public static boolean isLiquid(ItemStack block) { 053 if (block.itemID == 0) 054 return false; 055 056 for (LiquidData liquid : liquids) 057 if (liquid.stillLiquid.isLiquidEqual(block) || liquid.movingLiquid.isLiquidEqual(block)) 058 return true; 059 060 return false; 061 } 062 063 064 }