| package buildcraft.api.liquids; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| /** |
| * When creating liquids you should register them with this class. |
| * |
| * @author CovertJaguar <railcraft.wikispaces.com> |
| */ |
| public abstract class LiquidDictionary |
| { |
| |
| private static Map<String, LiquidStack> liquids = new HashMap<String, LiquidStack>(); |
| |
| /** |
| * When creating liquids you should call this function. |
| * |
| * Upon passing it a name and liquid item it will return either |
| * a preexisting implementation of that liquid or the liquid passed in. |
| * |
| * |
| * @param name the name of the liquid |
| * @param liquid the liquid to use if one doesn't exist |
| * @return |
| */ |
| public static LiquidStack getOrCreateLiquid(String name, LiquidStack liquid) |
| { |
| LiquidStack existing = liquids.get(name); |
| if(existing != null) { |
| return existing.copy(); |
| } |
| liquids.put(name, liquid.copy()); |
| return liquid; |
| } |
| |
| /** |
| * Returns the liquid matching the name, |
| * if such a liquid exists. |
| * |
| * Can return null. |
| * |
| * @param name the name of the liquid |
| * @param amount the amout of liquid |
| * @return |
| */ |
| public static LiquidStack getLiquid(String name, int amount) |
| { |
| LiquidStack liquid = liquids.get(name); |
| if(liquid == null) |
| return null; |
| |
| liquid = liquid.copy(); |
| liquid.amount = amount; |
| return liquid; |
| } |
| } |