| 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; | |
| } | |
| } |