Advertisement
Guest User

Untitled

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