PageRenderTime 62ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/bspkrs/util/ItemID.java

https://github.com/bspkrs-mods/bspkrsCore
Java | 95 lines | 76 code | 16 blank | 3 comment | 17 complexity | 6f49b49eeed7012ce4e5fa8d20ec016e MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
  1. package bspkrs.util;
  2. import net.minecraft.item.Item;
  3. import net.minecraft.item.ItemStack;
  4. import net.minecraftforge.fml.common.registry.ForgeRegistries;
  5. public class ItemID
  6. {
  7. /**
  8. * Unique ID of the item from the namespace registry
  9. */
  10. public final String id;
  11. public final int damage;
  12. public ItemID(String id, int damage)
  13. {
  14. this.id = id;
  15. this.damage = damage;
  16. }
  17. public ItemID(String id)
  18. {
  19. this(id, -1);
  20. }
  21. public ItemID(ItemStack itemStack, int damage)
  22. {
  23. this(itemStack.getItem(), damage);
  24. }
  25. public ItemID(ItemStack itemStack)
  26. {
  27. this(itemStack.getItem(), -1);
  28. }
  29. public ItemID(Item item, int damage)
  30. {
  31. this(ForgeRegistries.ITEMS.getKey(item).toString(), damage);
  32. }
  33. public ItemID(Item item)
  34. {
  35. this(ForgeRegistries.ITEMS.getKey(item).toString(), -1);
  36. }
  37. public ItemID(String format, String delimiter)
  38. {
  39. String[] parts = format.split(delimiter);
  40. if (parts.length > 1)
  41. {
  42. id = parts[0].trim();
  43. damage = CommonUtils.parseInt(parts[1], -1);
  44. }
  45. else
  46. {
  47. id = parts[0].trim();
  48. damage = -1;
  49. }
  50. }
  51. @Override
  52. public ItemID clone()
  53. {
  54. return new ItemID(id, damage);
  55. }
  56. @Override
  57. public boolean equals(Object obj)
  58. {
  59. if (this == obj)
  60. return true;
  61. if (!(obj instanceof ItemID))
  62. return false;
  63. ItemID o = (ItemID) obj;
  64. if ((o.damage == -1) || (damage == -1))
  65. return id != null ? id.equals(o.id) : o.id == null;
  66. else
  67. return id != null ? id.equals(o.id) && (damage == o.damage) : (o.id == null) && (damage == o.damage);
  68. }
  69. @Override
  70. public int hashCode()
  71. {
  72. return id.hashCode() * 31;
  73. }
  74. @Override
  75. public String toString()
  76. {
  77. return (damage == -1 ? id + "" : id + ", " + damage);
  78. }
  79. }