Example #1
0
    private void OnEnable()
    {
        var update = new EggData.Update
        {
            EggType      = egg.Data.EggType,
            CurrentFood  = egg.Data.CurrentFood,
            CurrentState = egg.Data.CurrentState
        };

        OnDataChanged(update);
        egg.OnUpdate += OnDataChanged;
    }
Example #2
0
    private void OnDataChanged(EggData.Update update)
    {
        if (update.EggType.HasValue)
        {
            _eggType = update.EggType.Value;
            var      renderer = gameObject.GetComponent <MeshRenderer>();
            Color [] color    = new Color[3] {
                Color.black, Color.white, Color.green
            };
            renderer.material.color = color[(int)_eggType];
        }
        if (update.CurrentFood.HasValue)
        {
            _currentFood = update.CurrentFood.Value;
        }

        if (update.CurrentState.HasValue)
        {
            _currentState = update.CurrentState.Value;
            switch (_currentState)
            {
            case EggStateEnum.GOOD:
                _partGood.SetActive(true);
                _partBroken.SetActive(false);
                break;

            case EggStateEnum.BROKEN:
                _partGood.SetActive(false);
                _partBroken.SetActive(true);
                break;

            case EggStateEnum.EMPTY:
                _partGood.SetActive(false);
                _partBroken.SetActive(true);
                break;

            case EggStateEnum.VANISH:
                _partGood.SetActive(false);
                _partBroken.SetActive(true);
                StartCoroutine(Vanishing());
                break;
            }
        }
    }