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; }
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; }