Exemple #1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void UpdateViaManager()
        {
            HoverItemHighlightState highState = GetComponent <HoverItemHighlightState>();
            HoverItemData           itemData  = GetComponent <HoverItem>().Data;
            IItemDataSelectable     selData   = (itemData as IItemDataSelectable);

            TryResetSelection(highState, selData);
            UpdateSelectionProgress(highState, selData);
            UpdateNearestCursor(highState);
            UpdateState(selData);
        }
Exemple #2
0
        /*--------------------------------------------------------------------------------------------*/
        private HoverItemData TransferData(HoverItemData pDataToFill)
        {
            HoverItemData oldData = _Data;
            HoverItemData newData = pDataToFill;

            if (oldData == null)
            {
                return(newData);
            }

            newData.AutoId            = oldData.AutoId;
            newData.IsAncestryEnabled = oldData.IsAncestryEnabled;
            newData.IsAncestryVisible = oldData.IsAncestryVisible;
            newData.Id        = oldData.Id;
            newData.Label     = oldData.Label;
            newData.IsEnabled = oldData.IsEnabled;
            newData.IsVisible = oldData.IsVisible;

            HoverItemDataSelectable oldSelData = (oldData as HoverItemDataSelectable);
            HoverItemDataSelectable newSelData = (newData as HoverItemDataSelectable);

            if (oldSelData == null || newSelData == null)
            {
                return(newData);
            }

            newSelData.OnSelectedEvent   = oldSelData.OnSelectedEvent;
            newSelData.OnDeselectedEvent = oldSelData.OnDeselectedEvent;
            //newSelData.OnSelected += oldSelData.OnSelected;
            //newSelData.OnDeselected += oldSelData.OnDeselected;

            HoverItemDataSelectableBool oldSelBoolData = (oldData as HoverItemDataSelectableBool);
            HoverItemDataSelectableBool newSelBoolData = (newData as HoverItemDataSelectableBool);

            if (oldSelBoolData != null && newSelBoolData != null)
            {
                newSelBoolData.Value = oldSelBoolData.Value;
                newSelBoolData.OnValueChangedEvent = oldSelBoolData.OnValueChangedEvent;
                //newSelBoolData.OnValueChanged += oldSelBoolData.OnValueChanged;
            }

            HoverItemDataSelectableFloat oldSelFloatData = (oldData as HoverItemDataSelectableFloat);
            HoverItemDataSelectableFloat newSelFloatData = (newData as HoverItemDataSelectableFloat);

            if (oldSelFloatData != null && newSelFloatData != null)
            {
                newSelFloatData.Value = oldSelFloatData.Value;
                newSelFloatData.OnValueChangedEvent = oldSelFloatData.OnValueChangedEvent;
                //newSelFloatData.OnValueChanged += oldSelFloatData.OnValueChanged;
            }

            return(newData);
        }
Exemple #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void BuildDataIfNeeded()
        {
            if (_Data == null)
            {
                _Data = gameObject.GetComponent <HoverItemData>();
            }

            if (_Data == null)
            {
                _Data = BuildData(_ItemType);
            }
            else if (FindDuplicateData())
            {
                _Data = Instantiate(_Data);                 //handle duplication via Unity editor
            }
        }
Exemple #4
0
        /*--------------------------------------------------------------------------------------------*/
        private void DestroyData(HoverItemData pData, HoverItemData pIgnoreNewData)
        {
            gameObject.GetComponents(vDataComponentBuffer);

            for (int i = 0; i < vDataComponentBuffer.Count; i++)
            {
                HoverItemData data = vDataComponentBuffer[i];

                if (data == pIgnoreNewData)
                {
                    continue;
                }

                if (data != pData)
                {
                    Debug.LogWarning("Removed unexpected " + typeof(HoverItemData).Name + ": " + data, this);
                }

                DestroyImmediate(data, false);
            }
        }
Exemple #5
0
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateWithLatestItemTypeIfNeeded()
        {
            if (_ItemType == vPrevItemType)
            {
                return;
            }

            HoverItemData newData = BuildData(_ItemType);

            TransferData(newData);
            DestroyData(_Data, newData);

            _Data = newData;

            if (OnTypeChanged != null)
            {
                OnTypeChanged.Invoke(this);
            }

            vPrevItemType = _ItemType;
        }