Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. package main;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. /**
  7. * A class that holds a list of Item objects. It is used in the game to
  8. * keep track of the items held by a player, and also those held in a room.
  9. * @author Patrick and Jack
  10. *
  11. */
  12.  
  13. public class Inventory {
  14.  
  15. private HashMap <Item, Integer> inventory;
  16.  
  17. /**
  18. * A Constructor that initializes the values for inventory and list.
  19. */
  20.  
  21. public Inventory() {
  22. inventory = new HashMap<Item, Integer>();
  23. }
  24.  
  25. /**
  26. * Adds an item to the inventory based on an input.
  27. * @param input
  28. */
  29.  
  30. public void addItemByName(String input) {
  31. addItem(getItemByName(input));
  32. }
  33.  
  34. /**
  35. * Gets an item by name and returns it.
  36. * @param input
  37. * @return an associated Item object.
  38. */
  39.  
  40. public Item getItemByName(String input) {
  41. return ItemList.getItemByName(input);
  42. }
  43.  
  44. public boolean removeItemByName(String input) {
  45. return removeItem(getItemByName(input));
  46. }
  47.  
  48. /**
  49. * Puts an item into the inventory.
  50. * @param item
  51. */
  52.  
  53. public void addItem(Item item) {
  54. if (inventory.containsKey(item)) {
  55. int currentNumber = inventory.get(item);
  56. inventory.put(item, currentNumber + 1);
  57. } else {
  58. inventory.put(item, 1);
  59. }
  60. }
  61.  
  62.  
  63. /**
  64. * Removes an item from the inventory
  65. * @param item
  66. * @return T/F if the item is found or not.
  67. */
  68.  
  69. public boolean removeItem(Item item) {
  70. boolean flag = false;
  71. if (inventory.containsKey(item)) {
  72. int currentNumber = inventory.get(item);
  73. inventory.replace(item, currentNumber - 1);
  74. if (inventory.get(item) == 0) {
  75. inventory.remove(item);
  76. }
  77. flag = true;
  78. }
  79. return flag;
  80. }
  81.  
  82. /**
  83. * Gets the size of an inventory.
  84. * @return integer
  85. */
  86.  
  87. public int getSizeOfInventory() {
  88. return inventory.size();
  89. }
  90.  
  91. /**
  92. * Get the names of the items in inventory.
  93. * @return String of item names
  94. */
  95.  
  96. public String[] getInventoryNames() {
  97. String[] inv = new String[inventory.size()];
  98. int index = 0;
  99. for (Item name: inventory.keySet()) {
  100. inv[index] = name.getName();
  101. index++;
  102. }
  103. return inv;
  104. }
  105.  
  106. /**
  107. * Unused method that gets weapon types of items.
  108. * @return String of item names
  109. */
  110.  
  111. public ArrayList<String> getWeaponNames() {
  112. ArrayList<String> inv = new ArrayList<String>();
  113. for(Item item: inventory.keySet()) {
  114. if(item.getType().equals("weapon")) {
  115. inv.add(item.getName());
  116. }
  117. }
  118. return inv;
  119. }
  120.  
  121. /**
  122. * Gets an item name with number.
  123. * @return name of item.
  124. */
  125.  
  126. public String getNameWithNumber(String name) {
  127. return name + " (" +inventory.get(name) + ")" ;
  128. }
  129.  
  130.  
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement