Advertisement
Guest User

Dense Recipes

a guest
May 24th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. public class DenseFurnaceRecipes {
  2. private static final DenseFurnaceRecipes INSTANCE = new DenseFurnaceRecipes();
  3. private final Table<ItemStack, ItemStack, ItemStack> smeltingList = HashBasedTable.<ItemStack, ItemStack, ItemStack>create();
  4. private final Map<ItemStack, Float> experienceList = Maps.<ItemStack, Float>newHashMap();
  5.  
  6. public static DenseFurnaceRecipes getInstance() {
  7. return INSTANCE;
  8. }
  9.  
  10. private DenseFurnaceRecipes() {
  11. addDenseRecipe(new ItemStack(BlockInit.DENSE_IRON_ORE), new ItemStack(ItemInit.SMELTING_CATALYST), new ItemStack(Items.IRON_INGOT, 8), 10.0f);
  12. addDenseRecipe(new ItemStack(BlockInit.DENSE_GOLD_ORE), new ItemStack(ItemInit.SMELTING_CATALYST), new ItemStack(Items.GOLD_INGOT, 8), 10.0f);
  13. addDenseRecipe(new ItemStack(BlockInit.DENSE_COAL_ORE), new ItemStack(ItemInit.SMELTING_CATALYST), new ItemStack(Items.COAL, 8), 10.0f);
  14. addDenseRecipe(new ItemStack(BlockInit.DENSE_DIAMOND_ORE), new ItemStack(ItemInit.SMELTING_CATALYST), new ItemStack(Items.DIAMOND, 8), 10.0f);
  15. }
  16.  
  17. public void addDenseRecipe(ItemStack input1, ItemStack input2, ItemStack result, float experience) {
  18. if(getDenseResult(input1, input2) != ItemStack.EMPTY) return;
  19. this.smeltingList.put(input1, input2, result);
  20. this.experienceList.put(result, Float.valueOf(experience));
  21. }
  22.  
  23. public ItemStack getDenseResult(ItemStack input1, ItemStack input2) {
  24. for(Entry<ItemStack, Map<ItemStack, ItemStack>> entry : this.smeltingList.columnMap().entrySet()) {
  25. if(this.compareItemStacks(input1, (ItemStack)entry.getKey())) {
  26. for(Entry<ItemStack, ItemStack> ent : entry.getValue().entrySet()) {
  27. if(this.compareItemStacks(input2, (ItemStack)ent.getKey())) {
  28. return (ItemStack)ent.getValue();
  29. }
  30. }
  31. }
  32. }
  33. return ItemStack.EMPTY;
  34. }
  35.  
  36. private boolean compareItemStacks(ItemStack stack1, ItemStack stack2) {
  37. return stack2.getItem() == stack1.getItem() && (stack2.getMetadata() == 32767 || stack2.getMetadata() == stack1.getMetadata());
  38. }
  39.  
  40. public Table<ItemStack, ItemStack, ItemStack> getDualSmeltingList() {
  41. return this.smeltingList;
  42. }
  43.  
  44. public float getDenseExperience(ItemStack stack) {
  45. for(Entry<ItemStack, Float> entry : this.experienceList.entrySet()) {
  46. if(this.compareItemStacks(stack, (ItemStack)entry.getKey())) {
  47. return((Float)entry.getValue()).floatValue();
  48. }
  49. }
  50. return 0.0f;
  51. }
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement