Guest User

GemcutterRecipes

a guest
May 7th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. package Mod_Ores.Blocks.Gemcutter;
  2.  
  3. import java.util.Arrays;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import Mod_Ores.mod_Ores;
  9. import net.minecraft.block.Block;
  10. import net.minecraft.item.Item;
  11. import net.minecraft.item.ItemStack;
  12.  
  13. public class GemcutterRecipes
  14. {
  15.     private static final GemcutterRecipes gemcutterBase = new GemcutterRecipes();
  16.  
  17.     /** The list of smelting results. */
  18.     private Map gemcutterList = new HashMap();
  19.     private Map experienceList = new HashMap();
  20.     private HashMap<List<Integer>, ItemStack> gemcutterSmeltingList = new HashMap<List<Integer>, ItemStack>();
  21.     private HashMap<List<Integer>, Float> metaExperience = new HashMap<List<Integer>, Float>();
  22.  
  23.     /**
  24.      * Used to call methods addSmelting and getSmeltingResult.
  25.      */
  26.     public static final GemcutterRecipes smelting()
  27.     {
  28.         return gemcutterBase;
  29.     }
  30.  
  31.     private GemcutterRecipes()
  32.     {
  33. //Currently only one recipe but there will be loads more
  34.         this.addGemcutterSmelting(mod_Ores.AmazoniteUncut.itemID, mod_Ores.Polisher.itemID, new ItemStack(mod_Ores.AmazoniteGem), 1.0F);
  35.     }
  36.  
  37.     /**
  38.      * Adds a smelting recipe.
  39.      */
  40.     public void addGemcutterSmelting(int par1, int par2, ItemStack par2ItemStack, float par3)
  41.     {
  42.     //changed this method almost completely
  43.         StringBuffer sb = new StringBuffer(32);
  44.         sb.append(Math.min(par1, par2)).append("_").append(Math.max(par1, par2));
  45.         this.gemcutterList.put(Integer.valueOf(sb.toString()), par2ItemStack);
  46.         this.experienceList.put(Integer.valueOf(par2ItemStack.itemID), Float.valueOf(par3));
  47.     }
  48.  
  49.     /**
  50.      * Returns the smelting result of an item.
  51.      * Deprecated in favor of a metadata sensitive version
  52.      */
  53.     @Deprecated
  54.     public ItemStack getSmeltingResult(int itemstack, int itemstack1)
  55.     {
  56.     //same here
  57.         StringBuffer sb = new StringBuffer(32);
  58.         sb.append(Math.min(itemstack, itemstack1)).append("_").append(Math.max(itemstack, itemstack1));
  59.         return (ItemStack)this.gemcutterList.get(Integer.valueOf(sb.toString()));
  60.     }
  61.  
  62.     public Map getSmeltingList()
  63.     {
  64.         return this.gemcutterList;
  65.     }
  66.  
  67.     @Deprecated //In favor of ItemStack sensitive version
  68.     public float getExperience(int par1)
  69.     {
  70.         return this.experienceList.containsKey(Integer.valueOf(par1)) ? ((Float)this.experienceList.get(Integer.valueOf(par1))).floatValue() : 0.0F;
  71.     }
  72.  
  73.     /**
  74.      * A metadata sensitive version of adding a furnace recipe.
  75.      */
  76.     public void addSmelting(int itemID, int metadata, ItemStack itemstack, float experience)
  77.     {
  78.     //Not sure if i need to change anything here
  79.         gemcutterSmeltingList.put(Arrays.asList(itemID, metadata), itemstack);
  80.         metaExperience.put(Arrays.asList(itemID, metadata), experience);
  81.     }
  82.  
  83.     /**
  84.      * Used to get the resulting ItemStack form a source ItemStack
  85.      * @param item The Source ItemStack
  86.      * @return The result ItemStack
  87.      */
  88.     public ItemStack getSmeltingResult(ItemStack item, ItemStack item2)
  89.     {
  90.     //I thought this might needed to be changed but i coulnd't figure out how
  91.         if (item == null)
  92.         {
  93.             return null;
  94.         }
  95.         ItemStack ret = (ItemStack)gemcutterSmeltingList.get(Arrays.asList(item.itemID, item.getItemDamage()));
  96.         if (ret != null)
  97.         {
  98.             return ret;
  99.         }
  100.         return (ItemStack)gemcutterList.get(Integer.valueOf(item.itemID));
  101.     }
  102.  
  103.     /**
  104.      * Grabs the amount of base experience for this item to give when pulled from the furnace slot.
  105.      */
  106.     public float getExperience(ItemStack item)
  107.     {
  108.         if (item == null || item.getItem() == null)
  109.         {
  110.             return 0;
  111.         }
  112.         float ret = item.getItem().getSmeltingExperience(item);
  113.         if (ret < 0 && metaExperience.containsKey(Arrays.asList(item.itemID, item.getItemDamage())))
  114.         {
  115.             ret = metaExperience.get(Arrays.asList(item.itemID, item.getItemDamage()));
  116.         }
  117.         if (ret < 0 && experienceList.containsKey(item.itemID))
  118.         {
  119.             ret = ((Float)experienceList.get(item.itemID)).floatValue();
  120.         }
  121.         return (ret < 0 ? 0 : ret);
  122.     }
  123.  
  124.     public Map<List<Integer>, ItemStack> getMetaSmeltingList()
  125.     {
  126.         return gemcutterSmeltingList;
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment