/*--------------------------------------------------------------------------------------------*/
        public override void OnInspectorGUI()
        {
            vTarget = (HoverItemHighlightState)target;

            DrawDefaultInspector();
            DrawHighlightInfo();
        }
示例#2
0
        /*--------------------------------------------------------------------------------------------*/
        public virtual void TreeUpdate()
        {
            HoverItem hoverItem = GetComponent <HoverItem>();

            DestroyRenderersIfNecessary();
            TryRebuildWithItemType(hoverItem.ItemType);

            ////

            HoverItemHighlightState highState      = GetComponent <HoverItemHighlightState>();
            HoverItemSelectionState selState       = GetComponent <HoverItemSelectionState>();
            HoverRenderer           activeRenderer = ((HoverRenderer)ButtonRenderer ?? SliderRenderer);

            UpdateRenderer(activeRenderer, hoverItem);
            UpdateRendererCanvas(activeRenderer, hoverItem);
            UpdateRendererIndicator(activeRenderer, highState, selState);

            if (ButtonRenderer != null)
            {
                UpdateButtonSettings(highState);
            }

            if (SliderRenderer != null)
            {
                UpdateSliderSettings(hoverItem);
                UpdateSliderSettings(hoverItem, highState);
            }

            Controllers.TryExpireControllers();
        }
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateItem(IItemData pItemData, bool pPreventHighlight)
        {
            HoverItemHighlightState highState = pItemData.gameObject
                                                .GetComponent <HoverItemHighlightState>();

            if (highState == null)
            {
                return;
            }

            UpdateHighState(highState, pPreventHighlight);
        }
示例#4
0
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateRendererIndicator(HoverRenderer pRenderer,
                                             HoverItemHighlightState pHighState, HoverItemSelectionState pSelState)
        {
            HoverIndicator rendInd = pRenderer.GetIndicator();

            rendInd.Controllers.Set(HoverIndicator.HighlightProgressName, this);
            rendInd.Controllers.Set(HoverIndicator.SelectionProgressName, this);

            rendInd.HighlightProgress = pHighState.MaxHighlightProgress;
            rendInd.SelectionProgress = pSelState.SelectionProgress;

            if (pSelState.WasSelectedThisFrame)
            {
                rendInd.LatestSelectionTime = DateTime.UtcNow;
            }
        }
示例#5
0
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateSliderSettings(HoverItem pHoverItem, HoverItemHighlightState pHighState)
        {
            HoverItemDataSlider data = (HoverItemDataSlider)pHoverItem.Data;

            HoverItemHighlightState.Highlight?high = pHighState.NearestHighlight;
            float highProg  = pHighState.MaxHighlightProgress;
            bool  isNearest = pHighState.IsNearestAcrossAllItemsForAnyCursor;

            SliderRenderer.Controllers.Set(HoverRendererSlider.JumpValueName, this);
            SliderRenderer.Controllers.Set(HoverRendererSlider.ShowButtonEdgesName, this);

            SliderRenderer.ShowButtonEdges = (isNearest && highProg > 0);

            if (high == null || highProg <= 0 || !isNearest)
            {
                data.HoverValue          = null;
                SliderRenderer.JumpValue = -1;
                return;
            }

            float value = SliderRenderer.GetValueViaNearestWorldPosition(high.Value.NearestWorldPos);

            data.HoverValue = value;

            float snapValue = (float)data.SnappedHoverValue;
            //float easePower = (1-high.Value.Progress)*5+1; //gets "snappier" as you pull away
            float showValue = DisplayUtil.GetEasedValue(data.Snaps, value, snapValue, 3);

            SliderRenderer.JumpValue = showValue;

            if (data.IsStickySelected)
            {
                data.Value = value;
                SliderRenderer.Controllers.Set(HoverRendererSlider.HandleValueName, this);
                SliderRenderer.HandleValue = showValue;
            }
        }
 /*--------------------------------------------------------------------------------------------*/
 private void UpdateHighState(HoverItemHighlightState pHighState, bool pPreventHighlight)
 {
     pHighState.PreventHighlightViaDisplay(PreventKey, pPreventHighlight);
 }
示例#7
0
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 private void UpdateButtonSettings(HoverItemHighlightState pHighState)
 {
     ButtonRenderer.Fill.Controllers.Set(HoverFillButton.ShowEdgeName, this);
     ButtonRenderer.Fill.ShowEdge = (pHighState.IsNearestAcrossAllItemsForAnyCursor &&
                                     pHighState.MaxHighlightProgress > 0);
 }