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);
 }
Exemple #3
0
    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);
    }