Advertisement
HalestormXV

Untitled

Feb 10th, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.85 KB | None | 0 0
  1. package halestormxv.objects.blocks.devices.inscriber;
  2.  
  3. import java.util.Map;
  4. import java.util.Map.Entry;
  5. import com.google.common.collect.HashBasedTable;
  6. import com.google.common.collect.Maps;
  7. import com.google.common.collect.Table;
  8. import halestormxv.init.BlockInit;
  9. import halestormxv.init.ItemInit;
  10. import net.minecraft.init.Blocks;
  11. import net.minecraft.item.ItemStack;
  12.  
  13. public class RunicInscriberRecipes
  14. {
  15.     private static final RunicInscriberRecipes INSTANCE = new RunicInscriberRecipes();
  16.     private final Table<ItemStack, ItemStack, ItemStack> smeltingList = HashBasedTable.<ItemStack, ItemStack, ItemStack>create();
  17.     private final Map<ItemStack, Float> experienceList = Maps.<ItemStack, Float>newHashMap();
  18.  
  19.     public static RunicInscriberRecipes getInstance()
  20.     {
  21.         return INSTANCE;
  22.     }
  23.  
  24.     private RunicInscriberRecipes()
  25.     {
  26.         addInscriberRecipe(new ItemStack(ItemInit.DUST_SIEGRE), new ItemStack(BlockInit.ORE_OVERWORLD), new ItemStack(ItemInit.ITEM_RUNE), 5.0F); //Test 1
  27.         addInscriberRecipe(new ItemStack(Blocks.ACACIA_FENCE), new ItemStack(Blocks.ACACIA_FENCE_GATE), new ItemStack(BlockInit.RUNIC_INSCRIBER), 5.0F); //Test 2
  28.     }
  29.  
  30.  
  31.     public void addInscriberRecipe(ItemStack input2, ItemStack input1, ItemStack result, float experience)
  32.     {
  33.         if(getInscriberResult(input2, input1) != ItemStack.EMPTY) return;
  34.         this.smeltingList.put(input2, input1, result);
  35.         this.experienceList.put(result, Float.valueOf(experience));
  36.     }
  37.  
  38.     public ItemStack getInscriberResult(ItemStack input1, ItemStack input2)
  39.     {
  40.         for(Entry<ItemStack, Map<ItemStack, ItemStack>> entry : this.smeltingList.columnMap().entrySet())
  41.         {
  42.             if(this.compareItemStacks(input1, (ItemStack)entry.getKey()))
  43.             {
  44.                 for(Entry<ItemStack, ItemStack> ent : entry.getValue().entrySet())
  45.                 {
  46.                     if(this.compareItemStacks(input2, (ItemStack)ent.getKey()))
  47.                     {
  48.                         return (ItemStack)ent.getValue();
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.         return ItemStack.EMPTY;
  54.     }
  55.  
  56.     private boolean compareItemStacks(ItemStack stack1, ItemStack stack2)
  57.     {
  58.         return stack2.getItem() == stack1.getItem() && (stack2.getMetadata() == 32767 || stack2.getMetadata() == stack1.getMetadata());
  59.     }
  60.  
  61.     public Table<ItemStack, ItemStack, ItemStack> getDualSmeltingList()
  62.     {
  63.         return this.smeltingList;
  64.     }
  65.  
  66.     public float getInscriberExperience(ItemStack stack)
  67.     {
  68.         for (Entry<ItemStack, Float> entry : this.experienceList.entrySet())
  69.         {
  70.             if(this.compareItemStacks(stack, (ItemStack)entry.getKey()))
  71.             {
  72.                 return ((Float)entry.getValue()).floatValue();
  73.             }
  74.         }
  75.         return 0.0F;
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement