package net.tropicraft.drinks;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.tropicraft.registry.TCDrinkMixerRegistry;
public final class MixerRecipes {
private static Map<Drink, Ingredient[]> drinkToIngredientsMap = new HashMap<Drink, Ingredient[]>();
private MixerRecipes() {}
public static void addMixerRecipes() {
registerMixerRecipe(Drink.limeade, Ingredient.lime, Ingredient.sugar, Ingredient.waterBucket);
registerMixerRecipe(Drink.caipirinha, Ingredient.lime, Ingredient.sugarcane, Ingredient.waterBucket);
registerMixerRecipe(Drink.orangeade, Ingredient.orange, Ingredient.sugar, Ingredient.waterBucket);
registerMixerRecipe(Drink.lemonade, Ingredient.lemon, Ingredient.sugar, Ingredient.waterBucket);
registerMixerRecipe(Drink.blackCoffee, Ingredient.roastedCoffeeBean, Ingredient.waterBucket);
//registerMixerRecipe(Drink.pinaColada, Ingredient.pineapple, Ingredient.coconutChunk);
registerMixerRecipe(Drink.pinaColada, Ingredient.pineappleCubes, Ingredient.coconutChunk);
}
/**
* Helper method for registering a mixer recipe
* @param result Result of the mixer recipe to be registered
* @param ingredients Ingredients of the mixer recipe to be registered
*/
private static void registerMixerRecipe(Drink result, Ingredient...ingredients) {
TCDrinkMixerRegistry.getInstance().registerRecipe(new MixerRecipe(result, ingredients));
drinkToIngredientsMap.put(result, ingredients);
}
/**
* Probably a more efficient way of doing this, but whatever. This gives you an ItemStack result from a Drink object
* @param drink Drink you want in ItemStack form
* @return ItemStack form of a Drink
*/
public static ItemStack getItemStack(Drink drink) {
List<ItemStack> stack = new ArrayList<ItemStack>();
for (Ingredient i : drinkToIngredientsMap.get(drink)) {
stack.add(i.getIngredient());
}
return TCDrinkMixerRegistry.getInstance().getResult(stack.toArray(new ItemStack[stack.size()]));
}
}