private IEnumerator StartCooking(GameObject p_cookedObject) { m_isCooking = true; HeldFoodObject currentCooked = p_cookedObject.GetComponent <HeldFoodObject>(); currentCooked.SetColliderState(false); m_cookingEvents.m_startCooking.Invoke(); yield return(new WaitForSeconds(m_cookingTime)); if (currentCooked != null) { currentCooked.ResetMe(); currentCooked.UseObject(); currentCooked.SetColliderState(true); int currentFoodIndex = 0; if (CanBeCooked(currentCooked.m_heldFoodIndex, out currentFoodIndex)) { m_collider.enabled = false; m_currentCookedObject = m_cookedVersions[currentFoodIndex].m_cookedVersion; m_currentCookedObject.SetActive(true); } } m_isCooking = false; m_cookingEvents.m_finishedCooking.Invoke(); }
/// <summary> /// Checks to see if the interaction should be performed. /// </summary> /// <param name="p_playerHand"></param> /// <returns></returns> public bool InteractionValid() { if (m_playerHand.CurrentHeldObject() == null) { return(false); } HeldFoodObject foodObject = m_playerHand.CurrentHeldObject().ReturnCurrentObject().GetComponent <HeldFoodObject>(); if (foodObject != null) { if (!m_currentSandwhich.m_hasBottomBread) { if (foodObject.m_heldFoodIndex == 0) { AddObjectToSandwich(foodObject.m_heldFoodIndex); m_playerHand.EmptyHand(true); return(true); } } else { AddObjectToSandwich(foodObject.m_heldFoodIndex); m_playerHand.EmptyHand(true); return(true); } } return(false); }