Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Mod_Ores.Blocks.Gemcutter;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import Mod_Ores.mod_Ores;
- import net.minecraft.block.Block;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- public class GemcutterRecipes
- {
- private static final GemcutterRecipes gemcutterBase = new GemcutterRecipes();
- /** The list of smelting results. */
- private Map gemcutterList = new HashMap();
- private Map experienceList = new HashMap();
- private HashMap<List<Integer>, ItemStack> gemcutterSmeltingList = new HashMap<List<Integer>, ItemStack>();
- private HashMap<List<Integer>, Float> metaExperience = new HashMap<List<Integer>, Float>();
- /**
- * Used to call methods addSmelting and getSmeltingResult.
- */
- public static final GemcutterRecipes smelting()
- {
- return gemcutterBase;
- }
- private GemcutterRecipes()
- {
- //Currently only one recipe but there will be loads more
- this.addGemcutterSmelting(mod_Ores.AmazoniteUncut.itemID, mod_Ores.Polisher.itemID, new ItemStack(mod_Ores.AmazoniteGem), 1.0F);
- }
- /**
- * Adds a smelting recipe.
- */
- public void addGemcutterSmelting(int par1, int par2, ItemStack par2ItemStack, float par3)
- {
- //changed this method almost completely
- StringBuffer sb = new StringBuffer(32);
- sb.append(Math.min(par1, par2)).append("_").append(Math.max(par1, par2));
- this.gemcutterList.put(Integer.valueOf(sb.toString()), par2ItemStack);
- this.experienceList.put(Integer.valueOf(par2ItemStack.itemID), Float.valueOf(par3));
- }
- /**
- * Returns the smelting result of an item.
- * Deprecated in favor of a metadata sensitive version
- */
- @Deprecated
- public ItemStack getSmeltingResult(int itemstack, int itemstack1)
- {
- //same here
- StringBuffer sb = new StringBuffer(32);
- sb.append(Math.min(itemstack, itemstack1)).append("_").append(Math.max(itemstack, itemstack1));
- return (ItemStack)this.gemcutterList.get(Integer.valueOf(sb.toString()));
- }
- public Map getSmeltingList()
- {
- return this.gemcutterList;
- }
- @Deprecated //In favor of ItemStack sensitive version
- public float getExperience(int par1)
- {
- return this.experienceList.containsKey(Integer.valueOf(par1)) ? ((Float)this.experienceList.get(Integer.valueOf(par1))).floatValue() : 0.0F;
- }
- /**
- * A metadata sensitive version of adding a furnace recipe.
- */
- public void addSmelting(int itemID, int metadata, ItemStack itemstack, float experience)
- {
- //Not sure if i need to change anything here
- gemcutterSmeltingList.put(Arrays.asList(itemID, metadata), itemstack);
- metaExperience.put(Arrays.asList(itemID, metadata), experience);
- }
- /**
- * Used to get the resulting ItemStack form a source ItemStack
- * @param item The Source ItemStack
- * @return The result ItemStack
- */
- public ItemStack getSmeltingResult(ItemStack item, ItemStack item2)
- {
- //I thought this might needed to be changed but i coulnd't figure out how
- if (item == null)
- {
- return null;
- }
- ItemStack ret = (ItemStack)gemcutterSmeltingList.get(Arrays.asList(item.itemID, item.getItemDamage()));
- if (ret != null)
- {
- return ret;
- }
- return (ItemStack)gemcutterList.get(Integer.valueOf(item.itemID));
- }
- /**
- * Grabs the amount of base experience for this item to give when pulled from the furnace slot.
- */
- public float getExperience(ItemStack item)
- {
- if (item == null || item.getItem() == null)
- {
- return 0;
- }
- float ret = item.getItem().getSmeltingExperience(item);
- if (ret < 0 && metaExperience.containsKey(Arrays.asList(item.itemID, item.getItemDamage())))
- {
- ret = metaExperience.get(Arrays.asList(item.itemID, item.getItemDamage()));
- }
- if (ret < 0 && experienceList.containsKey(item.itemID))
- {
- ret = ((Float)experienceList.get(item.itemID)).floatValue();
- }
- return (ret < 0 ? 0 : ret);
- }
- public Map<List<Integer>, ItemStack> getMetaSmeltingList()
- {
- return gemcutterSmeltingList;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment