void Awake() { _researchingSlot = ResearchSlot.Instance(); _tooltip = Tooltip.Instance(); _GUIManager = GUIManager.Instance(); _characterManager = CharacterManager.Instance(); _messagePanelHandler = MessagePanelHandler.Instance(); }
public void GoToResearchScene() { _researchingSlot = ResearchSlot.Instance(); if (!_researchingSlot.ItemLocked) { if (_researchingSlot.IsEmpty()) { BuildTrainStarter(); SceneManager.LoadScene(SceneSettings.SceneIdForResearch); } } }
public void OnDrop(PointerEventData eventData) { ItemData draggedItem = eventData.pointerDrag.GetComponent <ItemData>(); ResearchSlot draggedResearch = eventData.pointerDrag.GetComponent <ResearchSlot>(); if (draggedItem == null && draggedResearch == null) { return; } if (draggedResearch != null) { if (draggedResearch.ReadyToUse()) { ResearchSlot researchingSlot = ResearchSlot.Instance(); ConsumeResearch(draggedResearch); researchingSlot.LoadEmpty(); } return; } ConsumeItem(draggedItem); }
// Use this for initialization void Start() { Debug.Log("***IH*** Start!"); //Instance _inv = InventoryHandler.Instance(); _itemDatabase = ItemDatabase.Instance(); _characterManager = CharacterManager.Instance(); _inventoryManager = InventoryManager.Instance(); _itemMixture = ItemMixture.Instance(); _researchingSlot = ResearchSlot.Instance(); _GUIManager = GUIManager.Instance(); _inventoryPanel = GameObject.Find("Inventory Panel"); _slotPanel = _inventoryPanel.transform.Find("Slot Panel").gameObject; _inventorySlotBroken = Resources.Load <GameObject>("Prefabs/SlotInventoryBroken"); _inventorySlot = Resources.Load <GameObject>("Prefabs/SlotInventory"); _inventoryItem = Resources.Load <GameObject>("Prefabs/Item"); //Disable All buttons inside building var insideBuilding = GameObject.Find("Building Interior"); if (insideBuilding != null) { _inTerrain = false; GameObject.Find("ButtonShop").GetComponent <Button>().interactable = false; GameObject.Find("ButtonSetting").GetComponent <Button>().interactable = false; GameObject.Find("ButtonAbout").GetComponent <Button>().interactable = false; GameObject.Find("Item Mixture").GetComponent <Button>().interactable = false; GameObject.Find("Research Slot").GetComponent <Button>().interactable = false; GameObject.Find("PlayerPic").GetComponent <Button>().interactable = false; GameObject.Find("CharacterPic").GetComponent <Button>().interactable = false; } _playerSlots = _characterManager.CharacterSetting.CarryCnt; _userInventory = _inventoryManager.UserInvItems; //Debug.Log("IH-UserInventory.Count = " + _userInventory.Count); //foreach (var item in _userInventory) item.Print(); //Equipment EquiSlots = _inventoryPanel.GetComponentsInChildren <SlotEquipment>(); for (int i = 0; i < EquiSlots.Length; i++) { EquiSlots[i].name = "Slot " + EquiSlots[i].EquType; EquiSlots[i].GetComponentInChildren <TextMeshProUGUI>().text = EquiSlots[i].EquType.ToString(); ItemEquipment equipmentItem = EquiSlots[i].GetComponentInChildren <ItemEquipment>(); equipmentItem.ItemIns = null; equipmentItem.name = "Empty"; foreach (var equipmentIns in _userInventory) { if (!equipmentIns.UserItem.Equipped) { continue; } if (((equipmentIns.Item.Type == ItemContainer.ItemType.Weapon || equipmentIns.Item.Type == ItemContainer.ItemType.Tool) && ((EquiSlots[i].EquType == ItemContainer.PlaceType.Right && equipmentIns.UserItem.Order == (int)ItemContainer.PlaceType.Right) || (EquiSlots[i].EquType == ItemContainer.PlaceType.Left && equipmentIns.UserItem.Order == (int)ItemContainer.PlaceType.Left))) || (equipmentIns.Item.PlaceHolder == EquiSlots[i].EquType && equipmentIns.Item.Type == ItemContainer.ItemType.Equipment) ) { equipmentItem.ItemIns = equipmentIns; equipmentItem.name = equipmentIns.Item.Name; equipmentItem.GetComponent <Image>().sprite = equipmentIns.Item.GetSprite(); break; } } } //Item Mixture InitMixture(_characterManager.CharacterMixture); //Researching InitResearching(_characterManager.CharacterResearching); //Inventory for (int i = 0; i < _slotAmount; i++) { if (i < _playerSlots) { InvSlots.Add(Instantiate(_inventorySlot)); InvSlots[i].GetComponent <SlotData>().SlotIndex = i; } else { InvSlots.Add(Instantiate(_inventorySlotBroken)); } InvSlots[i].transform.SetParent(_slotPanel.transform); if (i < _playerSlots) { GameObject itemObject = Instantiate(_inventoryItem); ItemData data = itemObject.GetComponent <ItemData>(); itemObject.transform.SetParent(InvSlots[i].transform); data.SlotIndex = i; foreach (var itemIns in _userInventory) { if (itemIns.UserItem.Equipped || itemIns.UserItem.Stored) { continue; } if (itemIns.UserItem.Order == i) { data.ItemIns = itemIns; itemObject.transform.position = Vector2.zero; InvSlots[i].name = itemObject.name = itemIns.Item.Name; itemObject.GetComponent <Image>().sprite = itemIns.Item.GetSprite(); itemObject.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = itemIns.UserItem.StackCnt > 1 ? itemIns.UserItem.ToString() : ""; break; } } } else { if (i == _playerSlots) { Button button = InvSlots[i].GetComponentInChildren <Button>(); button.GetComponent <Image>().sprite = LockSprite; InvSlots[i].name = button.name = "Lock"; if (_inTerrain) { button.interactable = true; } } } InvSlots[i].transform.localScale = Vector3.one; } _inventoryManager.PrintInventory(); }