Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. using UnityStandardAssets.Characters.FirstPerson;
  5. using UnityStandardAssets.Characters.ThirdPerson;
  6.  
  7. [System.Serializable]
  8. public class Inventory : MonoBehaviour {
  9.  
  10. public static Inventory inventory;
  11.  
  12. ItemDatabase database;
  13. GameObject slotPanel;
  14. public GameObject inventorySlot;
  15. public GameObject inventoryItem;
  16. public GameObject inventoryCanvas;
  17. public KeyCode inventoryKey = KeyCode.I;
  18.  
  19. private PauseManager pauseManager;
  20. //private RigidbodyFirstPersonController fpsController;
  21. //private ThirdPersonUserControl fpsController;
  22. //private float defaultSensetivityX = 2f;
  23. //private float defaultSensetivityY = 2f;
  24.  
  25.  
  26.  
  27. public bool isShown = false;
  28.  
  29. int slotAmount;
  30. public List<Item> items = new List<Item>();
  31. public List<GameObject> slots = new List<GameObject>();
  32.  
  33.  
  34.  
  35. void Start()
  36. {
  37. //fpsController = GameObject.FindGameObjectWithTag("Player").GetComponent<RigidbodyFirstPersonController>();
  38. //defaultSensetivityX = fpsController.mouseLook.XSensitivity;
  39. //defaultSensetivityY = fpsController.mouseLook.YSensitivity;
  40.  
  41. inventory = this;
  42.  
  43. database = GetComponent<ItemDatabase>();
  44.  
  45. slotAmount = 21;
  46. slotPanel = GameObject.Find("Slot Panel");
  47. for (int i = 0; i <slotAmount; i++)
  48. {
  49. items.Add(new Item());
  50. slots.Add(Instantiate(inventorySlot));
  51. slots[i].GetComponent<Slot>().id = i;
  52. slots[i].transform.SetParent(slotPanel.transform);
  53. }
  54.  
  55. AddItem(0);
  56. AddItem(0);
  57. AddItem(1);
  58. AddItem(1);
  59.  
  60. isShown = false;
  61.  
  62. }
  63.  
  64. public void AddItem(int id)
  65. {
  66. Item itemToAdd = database.FetchItemByID(id);
  67. if (itemToAdd.Stackable && CheckIfItemIsInInventory (itemToAdd))
  68. {
  69. for (int i = 0; i < items.Count; i++)
  70. {
  71. if (items[i].ID == id)
  72. {
  73. ItemData data = slots[i].transform.GetChild(0).GetComponent<ItemData>();
  74. data.amount++;
  75. data.transform.GetChild(0).GetComponent<Text>().text = data.amount.ToString();
  76. break;
  77. }
  78. }
  79. }
  80. else
  81. {
  82. for (int i = 0; i < items.Count; i++)
  83. {
  84. if (items[i].ID == -1)
  85. {
  86. items[i] = itemToAdd;
  87. GameObject itemObj = Instantiate(inventoryItem);
  88. itemObj.GetComponent<ItemData>().item = itemToAdd;
  89. itemObj.GetComponent<ItemData>().slot = i;
  90. itemObj.transform.SetParent(slots[i].transform);
  91. itemObj.transform.position = Vector2.zero;
  92. itemObj.GetComponent<Image>().sprite = itemToAdd.Sprite;
  93. itemObj.name = itemToAdd.Title;
  94. ItemData data = slots[i].transform.GetChild(0).GetComponent<ItemData>();
  95. data.amount = 1;
  96. break;
  97. }
  98. }
  99. }
  100. }
  101.  
  102. bool CheckIfItemIsInInventory(Item item)
  103. {
  104. for (int i = 0; i < items.Count; i++)
  105. if (items[i].ID == item.ID)
  106. return true;
  107. return false;
  108. }
  109.  
  110. void Update()
  111. {
  112.  
  113. if (Input.GetKeyDown(inventoryKey))
  114. {
  115. isShown = !isShown;
  116.  
  117. if (isShown == true)
  118. {
  119. //fpsController.mouseLook.XSensitivity = 0;
  120. //fpsController.mouseLook.YSensitivity = 0;
  121. }
  122. else if (isShown == false)
  123. {
  124. //fpsController.mouseLook.XSensitivity = defaultSensetivityX;
  125. //fpsController.mouseLook.YSensitivity = defaultSensetivityY;
  126. }
  127. }
  128.  
  129. if (isShown == true)
  130. {
  131. inventoryCanvas.SetActive(true);
  132. }
  133. else if (isShown == false)
  134. {
  135. inventoryCanvas.SetActive(false);
  136. }
  137. }
  138.  
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement