private void AddVegetable(VegetableDispenserType DispenserType) { if (m_Vegetables != null) { if (m_Vegetables.Count == MAX_VEGETABLES_CAN_CARRY) { return; } Vegetable veg = LevelManager.Instance.CreateVegetable(DispenserType); veg.transform.SetParent(this.transform); veg.pOwner = this.gameObject.GetComponent <PlayerController>(); Utilities.Util.SetDefaultLocalTransform(veg.gameObject); m_Vegetables.Add(veg); if (m_Vegetables.Count == 1) { m_PlayerAttachmentNode_1.gameObject.SetActive(true); TextMesh textMesh = m_PlayerAttachmentNode_1.GetComponentInChildren <TextMesh>(); textMesh.text = Utilities.Util.GetVegId(veg.pVegetableType); } else if (m_Vegetables.Count == 2) { m_PlayerAttachmentNode_2.gameObject.SetActive(true); TextMesh textMesh = m_PlayerAttachmentNode_2.GetComponentInChildren <TextMesh>(); textMesh.text = Utilities.Util.GetVegId(veg.pVegetableType); } else { m_PlayerAttachmentNode_1.gameObject.SetActive(false); m_PlayerAttachmentNode_2.gameObject.SetActive(false); } GameManager.Instance.pGameEventSystem.TriggerEvent(GameEventsList.PlayerEvents.ON_COLLECT_VEGETABLE, new OnCollectVegetableEventArgs(this.gameObject.GetComponent <PlayerController>(), veg)); } }
public bool IsAlreadyExists(VegetableDispenserType dispenserType) { for (int i = 0; i < m_Vegetables.Count; i++) { if (m_Vegetables[i].pVegetableType.ToString() == dispenserType.ToString()) { return(true); } } return(false); }
public Vegetable CreateVegetable(VegetableDispenserType dispenserType) { GameObject go = (GameObject)Instantiate(Resources.Load(VEGETABLE_ASSETS_PATH + "/" + dispenserType.ToString())); return(go.GetComponent <Vegetable>()); }
private void ProcessInteraction() { switch (m_CollidedObject.tag) { case "VegetableDispenser": VegetableDispenserType dispenserType = m_CollidedObject.GetComponent <VegetableDispenser>().pDispenserType; if (!IsAlreadyExists(dispenserType)) { AddVegetable(dispenserType); } break; case "ChoppingBoard": ChoppingBoard choppingBoard = m_CollidedObject.GetComponent <ChoppingBoard>(); if (choppingBoard.pCurrentState == ChoppingBoardState.MAKE_SALAD) { Salad salad = choppingBoard.pSaldOnBoard; salad.transform.SetParent(this.gameObject.transform); Utilities.Util.SetDefaultLocalTransform(salad.gameObject); choppingBoard.SetState(ChoppingBoardState.CLEARED); m_SaladOnHand = salad; } else { if (m_Vegetables.Count > 0) { if (choppingBoard.CanAdd()) { Vegetable veg = m_Vegetables[0]; choppingBoard.AddVegetable(veg.pVegetableType); RemoveVegetable(veg); GameObject go = Utilities.Util.FindChildObject(gameObject, veg.name); veg.transform.SetParent(null); Destroy(go); } } } break; case "NextToChop": break; case "Salad": { } break; case "Customer": { if (m_SaladOnHand != null) { Customer customer = m_CollidedObject.GetComponent <Customer>(); Salad salad = m_SaladOnHand; customer.OnSaladServed(salad.pSaladType, this.gameObject.GetComponent <PlayerController>()); GameObject saladObj = Utilities.Util.FindChildObject(gameObject, salad.gameObject.name); saladObj.gameObject.transform.SetParent(null); Destroy(saladObj); } } break; } SetState(PlayerState.IDLE); }