Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. {
  2. // Make a singleton instance of the object
  3. private static final FuelMixerIRecipes INSTANCE = new FuelMixerIRecipes();
  4. // HashMap<output, Triple<input, input, input>>
  5. private final HashMap<ItemStack, ImmutableTriple<ItemStack, ItemStack, ItemStack>>
  6. alloyList = Maps.<ItemStack, ImmutableTriple<ItemStack, ItemStack, ItemStack>>newHashMap();
  7. private final Map<ItemStack, Float>
  8. experienceList = Maps.<ItemStack, Float>newHashMap();
  9.  
  10. public static FuelMixerIRecipes getInstance() {
  11. return INSTANCE;
  12. }
  13.  
  14. private FuelMixerIRecipes() {
  15. addFuelMixerIRecipe(new ItemStack(Items.COAL), new ItemStack(ModItems.BURNT_COAL),
  16. new ItemStack(Items.COAL), new ItemStack(ModItems.BURNT_COAL), 2.0f);
  17. }
  18.  
  19. public void addBloomeryRecipe(ItemStack input1, ItemStack input2, ItemStack input3, ItemStack result, float experience) {
  20. if (getAlloyingResult(input1, input2, input3) != ItemStack.EMPTY) return;
  21. alloyList.put(result, new ImmutableTriple<ItemStack, ItemStack, ItemStack>(input1, input2, input3));
  22. experienceList.put(result, Float.valueOf(experience));
  23. }
  24.  
  25. public ItemStack getAlloyingResult(ItemStack input1, ItemStack input2, ItemStack input3) {
  26. // HashMap<output, Triple<input, input, input>>
  27. for (Entry<ItemStack, ImmutableTriple<ItemStack, ItemStack, ItemStack>> entry : alloyList.entrySet()) {
  28. if (compareItemStacks(input1, entry.getValue().getLeft()) && compareItemStacks(input2, entry.getValue().getMiddle())
  29. && compareItemStacks(input3, entry.getValue().getRight())) {
  30. return entry.getKey();
  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 HashMap<ItemStack, ImmutableTriple<ItemStack, ItemStack, ItemStack>> getAlloyingList() {
  41. return alloyList;
  42. }
  43.  
  44. public float getAlloyingExperience(ItemStack stack) {
  45. for (Entry<ItemStack, Float> entry : experienceList.entrySet()) {
  46. if (this.compareItemStacks(stack, entry.getKey())) {
  47. return entry.getValue();
  48. }
  49. }
  50. return 0.0f;
  51. }
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement