public override bool Execute(Command command, Carrier playerCarrier = null) { bool result = base.Execute(command, playerCarrier); if (command == Command.PICKUP) { VegetableItem vegItem = Instantiate(vegetable); //TODO use object pooling playerCarrier.OnItemPickup(vegItem); result = true; } return(result); }
IEnumerator StartChopping(VegetableItem item) { Debug.Log("Start Chopping, chopping time: " + item.ChoppingTime); timeSpentInChopping = 0; item.SetChopping(true); while (timeSpentInChopping < item.ChoppingTime) { float deltaTime = Time.deltaTime; yield return(new WaitForSeconds(deltaTime)); timeSpentInChopping += deltaTime; } ChoppingEnd(item); }
public void AddItem(VegetableItem item) { VegetableItemTypes.Add(item.VegType); item.transform.SetParent(transform, false); item.transform.localPosition = Vector3.zero; if (VegetableItemTypes.Count == 1) { item.transform.localPosition = Vector3.zero; } else { AdjustItems(); } }
void ChoppingEnd(VegetableItem item) { currentState = KitchenStandState.CHOPPING_DONE; //chopped veg convertade to salad and add in salad list item.SetChopping(false); SaladItem salad; if (carrier.IsCarrying() && carrier.GetLastCarryingItem().Type == PickableType.SALAD) { salad = (SaladItem)carrier.GetLastCarryingItem(); salad.AddItem(item); } else { salad = Instantiate(saladPrefab); //TODO use object pooling instead salad.AddItem(item); carrier.OnItemPickup(salad); } TriggerChoppingDoneEvent(); Destroy(item, 0.1f); }