Beispiel #1
0
    public void OnRemoveAreaInspection(AreaInfo areaInfo)
    {
        --areaInspector.AreaInspectionCount;

        // if (areaInspector.AreaInspectionCount == 1)
        //     inspectorOutput.SetDropDownInteractive(InspectorTool.InspectorType.Area, false);

        if (areaInspector.AreaInspectionCount == 0)
        {
            inspectorTool.SetAction(InspectorTool.Action.None);
            areaInspector.CurrAreaInspection        = -1;
            removeAreaInspectionToggle.interactable = false;

            inspectorOutput.ResetAndClearOutput(InspectorTool.InspectorType.Area);

            // Update output
            inspectorOutput.AreaOutput.UpdateAreaInspectorOutput(null, dataLayers);
        }
        else
        {
            // Do necessary swapping of elements in areaInfos array upon deletion of inspection line
            var inspectionArea = areaInfo.areaInspectionDelete.transform.parent;
            int index          = inspectionArea.GetSiblingIndex();
            int count          = areaInspector.AreaInspectionCount;
            if (index < count)
            {
                for (int i = index; i < count; ++i)
                {
                    var temp = areaInfos[i];
                    areaInfos[i] = areaInfos[i + 1];
                    var tmpinspectionArea = areaInfos[i + 1].areaInspectionDelete.transform.parent;

                    var tempIndex = tmpinspectionArea.GetSiblingIndex();
                    inspectionArea.SetSiblingIndex(tempIndex);
                    areaInfos[i].inspectionIndex = i;

                    areaInfos[i + 1] = temp;
                }
            }

            // Update currAreaInspection value
            if (areaInspector.CurrAreaInspection == index)
            {
                areaInspector.CurrAreaInspection = Mathf.Clamp(index - 1, 0, 2);
            }
            else
            {
                Mathf.Clamp(--areaInspector.CurrAreaInspection, 0, 2);
            }
        }
        areaInspector.RemoveAreaInspectorInfoProperties(areaInfo);
        SetCurrInspection(areaInspector.CurrAreaInspection);

        createAreaInspectionToggle.interactable = true;
    }
Beispiel #2
0
    private void OnRemoveAreaInspection(AreaInfo areaInfo)
    {
        // Remove Inspector Toggle event listeners
        areaInfo.uiElement.RemoveOnPointerExitEvent();
        areaInfo.uiElement.RemoveOnPointerEnterEvent();

        areaInspector.RemoveAreaInspectorInfoProperties(areaInfo);
        areaInfo.uiElement.ResetToggle();
        --areaInspector.AreaInspectionCount;

        if (areaInspector.AreaInspectionCount == 0)
        {
            SetAction(Action.None);
            areaInspector.CurrAreaInspection        = -1;
            removeAreaInspectionToggle.interactable = false;

            // Update Inspector Toggles
            for (int i = 0; i < maxInspectionCount; ++i)
            {
                if (areaInfos[i] == null)
                {
                    continue;
                }

                areaInspector.UpdateAreaInspectorToggle(areaInfos[i], false);
                areaInfos[i].uiElement.transform.SetSiblingIndex(i);
            }

            // Update output
            inspectorOutput.UpdateAreaInspectorOutput(null, dataLayers);
        }
        else
        {
            int index = areaInfo.uiElement.transform.GetSiblingIndex();
            if (index < areaInspector.AreaInspectionCount)
            {
                // Push active inspection UI elements to the front of array
                for (int i = index; i < areaInspector.AreaInspectionCount; ++i)
                {
                    var temp = areaInfos[i];
                    areaInfos[i] = areaInfos[i + 1];

                    var tempIndex = areaInfos[i + 1].uiElement.transform.GetSiblingIndex();
                    areaInfo.uiElement.transform.SetSiblingIndex(tempIndex);

                    areaInfos[i + 1] = temp;
                }
            }

            // Update currAreaInspection value
            if (areaInspector.CurrAreaInspection == index)
            {
                areaInspector.CurrAreaInspection = Mathf.Clamp(index - 1, 0, 2);
            }
            else
            {
                Mathf.Clamp(--areaInspector.CurrAreaInspection, 0, 2);
            }

            UpdateAreasElements();
        }

        createAreaInspectionToggle.interactable = true;
    }