void Awake() { _researchingSlot = ResearchSlot.Instance(); _tooltip = Tooltip.Instance(); _GUIManager = GUIManager.Instance(); _characterManager = CharacterManager.Instance(); _messagePanelHandler = MessagePanelHandler.Instance(); }
private void ConsumeResearch(ResearchSlot draggedResearch) { if (draggedResearch.TargetResearch == null) { return; } _characterManager.CharacterSettingApplyResearch(draggedResearch.TargetResearch, draggedResearch.Level); }
public static ResearchSlot Instance() { if (!_researchingSlot) { _researchingSlot = FindObjectOfType(typeof(ResearchSlot)) as ResearchSlot; if (!_researchingSlot) { Debug.LogError("There needs to be one active ItemMixture script on a GameObject in your scene."); } } return(_researchingSlot); }
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); }
public override void OnInitialize() { visible = false; panel = new DragableUIPanel(); panel.BackgroundColor = Color.CornflowerBlue; panel.BorderColor = Color.White; panel.Top.Set(Main.screenHeight / 2 - 150, 0); panel.Left.Set(Main.screenWidth / 2 - 300, 0); panel.Width.Set(600, 0); panel.Height.Set(300, 0); panel.MinWidth.Set(600, 0); panel.MinHeight.Set(300, 0); panel.MaxWidth.Set(1920, 0); panel.MaxHeight.Set(1080, 0); destroySlot = new ResearchSlot(new Item()); destroySlot.Top.Set(0, 0); destroySlot.Left.Set(0, 0); panel.Append(destroySlot); totalText = new UIText("", 0.75f); totalText.Top.Set(0, 0f); totalText.Left.Set(0, 0f); panel.Append(totalText); search = new SearchUITextBox(); search.Top.Set(0, 0); search.Left.Set(destroySlot.Width.Pixels + destroySlot.MarginLeft + destroySlot.MarginRight + 112, 0); search.Width.Set(panel.GetInnerDimensions().Width - (destroySlot.Width.Pixels + destroySlot.MarginLeft + destroySlot.MarginRight + 12), 0); search.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0); search.OnTextChanged += () => setVisible(true); panel.Append(search); destroyButton = new ResearchButton(); destroyButton.BackgroundColor = Color.Blue; destroyButton.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0); destroyButton.Left.Set(destroySlot.Width.Pixels + 12, 0); destroyButton.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0); destroyButton.Width.Set(search.Width.Pixels / 6, 0); panel.Append(destroyButton); tooltipSearch = new TooltipSearchButton(); tooltipSearch.BackgroundColor = Color.Blue; tooltipSearch.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0); tooltipSearch.Left.Set(destroyButton.Left.Pixels + destroyButton.Width.Pixels + 24, 0); tooltipSearch.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0); tooltipSearch.Width.Set(search.Width.Pixels / 6, 0); panel.Append(tooltipSearch); clearText = new ClearTextButton(search); clearText.BackgroundColor = Color.Blue; clearText.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0); clearText.Left.Set(tooltipSearch.Left.Pixels + tooltipSearch.Width.Pixels + 24, 0); clearText.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0); clearText.Width.Set(search.Width.Pixels / 6, 0); panel.Append(clearText); closeButton = new CloseButton(); closeButton.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0); closeButton.Left.Set(panel.GetInnerDimensions().Width - 20, 0); panel.Append(closeButton); categories = new PathTreePanel(); categories.Top.Set(destroySlot.Height.Pixels + 32, 0); categories.Left.Set(0, 0); categories.Width.Set(panel.GetInnerDimensions().Width / 3 - 4, 0); categories.Height.Set(panel.GetInnerDimensions().Height - categories.Top.Pixels, 0); panel.Append(categories); recipes = new RecipePanel(this); recipes.Top.Set(destroySlot.Height.Pixels + 12, 0); recipes.Left.Set(panel.Width.Pixels / 3, 0); recipes.Width.Set(panel.GetInnerDimensions().Width * 2 / 3, 0); recipes.Height.Set(panel.GetInnerDimensions().Height - (recipes.Top.Pixels + 32), 0); panel.Append(recipes); Append(panel); }
// 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(); }