void Update() { if (currCraft) { if (currCraft.craftTime > currCraftTime) { currCraftTime += Time.deltaTime * craftSpeedMod; onUpdateCraftTimeFill?.Invoke(currCraftTime / currCraft.craftTime); } if (currCraft.craftTime <= currCraftTime) { if (inventoryToAddItem.IsCanFitItems(currCraft.results)) { currCraftTime -= currCraft.craftTime; foreach (var result in currCraft.results) { inventoryToAddItem.AddItem(result.CloneItem()); } currCraft = null; onEndCraft?.Invoke(); } else { //TODO: Inventory full popup text if used by player } } } }
void OnClickOnItem(CraftSO craft) { selectedCraft = craft; inventoryToAddItem.InitInvetory(selectedCraft.results.Length); inventoryToRemoveItem.InitInvetory(selectedCraft.ingradients.Length); for (int i = 0; i < selectedCraft.results.Length; ++i) { inventoryToAddItem.SetFilter(i, selectedCraft.results[i].itemSO); } for (int i = 0; i < selectedCraft.ingradients.Length; ++i) { inventoryToRemoveItem.SetFilter(i, selectedCraft.ingradients[i].itemSO); } cgSelectCraft.interactable = cgSelectCraft.blocksRaycasts = false; LeanTween.cancel(cgSelectCraft.gameObject, false); LeanTweenEx.ChangeAlpha(cgSelectCraft, 0.0f, 0.2f).setEase(LeanTweenType.easeInOutQuad); cgCraftingPlace.interactable = cgCraftingPlace.blocksRaycasts = true; LeanTween.cancel(cgCraftingPlace.gameObject, false); LeanTweenEx.ChangeAlpha(cgCraftingPlace, 1.0f, 0.2f).setEase(LeanTweenType.easeInOutQuad); craftingPlace.ResetCraftTime(); TryCraft(); previousCraft = null; }
public void Init(CraftSO _craft, CraftSO.CraftPlaceType _myPlace, Action <CraftSO> _onClick) { craft = _craft; isNeededPlace = craft.place.HasFlag(_myPlace); onClick += _onClick; isEnoughIngradients = true; UpdateVisual(); }
public bool CheckIsEnoughIngradients(CraftSO craft) { foreach (var ingradient in craft.ingradients) { if (!ContainsItem(ingradient)) { return(false); } } return(true); }
public void Init(CraftSO _craft, Action <CraftingQueueItemUI> _onClick) { craft = _craft; onClick += _onClick; if (craft.resultSpriteOverride) { itemImage.sprite = craft.resultSpriteOverride; } else { itemImage.sprite = craft.results[0].itemSO.sprite; } }
public void SelectOtherCraft() { previousCraft = selectedCraft; selectedCraft = null; if (isCrafting) { foreach (var ingradient in previousCraft.ingradients) { ItemData leftItem = GameManager.Instance.player.inventory.AddItem(ingradient.CloneItem()); if (leftItem.count != 0) { //TODO: Inventory full popup text Vector3 pos = GameManager.Instance.player.transform.position; ItemOnGround.CreateOnGround(leftItem, pos); leftItem.itemSO = null; } } craftingPlace.AbortCraft(); } inventoryToAddItem.GiveAllItemsToPlayerOrDrop( myBlock.MyCell.transform.position, new Vector2(-myBlock.MyCell.MyGrid.cellSize.x / 2, myBlock.MyCell.MyGrid.cellSize.x / 2) * 0.8f, new Vector2(-myBlock.MyCell.MyGrid.cellSize.y / 2, myBlock.MyCell.MyGrid.cellSize.y / 2) * 0.8f ); inventoryToRemoveItem.GiveAllItemsToPlayerOrDrop( myBlock.MyCell.transform.position, new Vector2(-myBlock.MyCell.MyGrid.cellSize.x / 2, myBlock.MyCell.MyGrid.cellSize.x / 2) * 0.8f, new Vector2(-myBlock.MyCell.MyGrid.cellSize.y / 2, myBlock.MyCell.MyGrid.cellSize.y / 2) * 0.8f ); cgCraftingPlace.interactable = cgCraftingPlace.blocksRaycasts = false; LeanTween.cancel(cgCraftingPlace.gameObject, false); LeanTweenEx.ChangeAlpha(cgCraftingPlace, 0.0f, 0.2f).setEase(LeanTweenType.easeInOutQuad); cgSelectCraft.interactable = cgSelectCraft.blocksRaycasts = true; LeanTween.cancel(cgSelectCraft.gameObject, false); LeanTweenEx.ChangeAlpha(cgSelectCraft, 1.0f, 0.2f).setEase(LeanTweenType.easeInOutQuad); }
void OnClickOnItem(CraftSO craft) { CraftingQueueItemUI newCraft = Instantiate(itemInQueuePrefab, queueParent.transform).GetComponent <CraftingQueueItemUI>(); newCraft.Init(craft, OnClickOnItemInQueue); if (currCraft == null) { currCraft = newCraft; craftingPlace.Craft(currCraft.craft); } else { itemsQueueUI.Enqueue(newCraft); } foreach (var ingradient in craft.ingradients) { inventoryToRemoveItem.RemoveItem(ingradient.CloneItem()); } }
public void AbortCraft() { currCraftTime = 0; currCraft = null; onEndCraft?.Invoke(); }
public void Craft(CraftSO craftSO) { currCraft = craftSO; }