public override void GetItems(bool refresh, bool rebuildGlobalLists, bool resetTextures) { if (resetTextures) { DisposeTextures(); } itemList.Clear(); totalActive = 0; int listIndex = 0; for (int i = t.childCount - 1; i >= 0; i--) { Transform child = t.GetChild(i); TC_SelectItem selectItem = child.GetComponent <TC_SelectItem>(); if (selectItem == null) { TC.MoveToDustbin(child); } else { selectItem.SetParameters(this, listIndex); selectItem.parentItem = this; selectItem.active = selectItem.visible; if (outputId == TC.splatOutput && selectItem.splatCustom) { if (TC_Settings.instance.hasMasterTerrain) { if (selectItem.splatCustomValues.Length != TC_Settings.instance.masterTerrain.terrainData.splatPrototypes.Length) { selectItem.splatCustomValues = Mathw.ResizeArray <float>(selectItem.splatCustomValues, TC_Settings.instance.masterTerrain.terrainData.splatPrototypes.Length); } } selectItem.CalcSplatCustomTotal(); } selectItem.SetPreviewItemTexture(); // Put deactive if listIndex is out of bounds if (selectItem.active) { ++totalActive; } if (outputId == TC.treeOutput) { if (selectItem.tree == null) { selectItem.tree = new TC_SelectItem.Tree(); } if (selectItem.active) { bool addToList = true; List <TC_SelectItem> treeSelectItems = TC_Area2D.current.terrainLayer.treeSelectItems; if (!rebuildGlobalLists) { int index = treeSelectItems.IndexOf(selectItem); if (index != -1) { addToList = false; selectItem.globalListIndex = index; } } if (addToList) { treeSelectItems.Add(selectItem); selectItem.globalListIndex = treeSelectItems.Count - 1; } } } else if (outputId == TC.objectOutput) { if (selectItem.spawnObject == null) { selectItem.spawnObject = new TC_SelectItem.SpawnObject(); } if (selectItem.spawnObject.go == null) { selectItem.active = false; TC_Area2D.current.terrainLayer.objectSelectItems.Remove(selectItem); // Debug.Log("Remove from list"); } if (selectItem.active) { bool addToList = true; List <TC_SelectItem> objectSelectItems = TC_Area2D.current.terrainLayer.objectSelectItems; if (!rebuildGlobalLists) { int index = objectSelectItems.IndexOf(selectItem); if (index != -1) { addToList = false; selectItem.globalListIndex = index; } } if (addToList) { objectSelectItems.Add(selectItem); selectItem.globalListIndex = objectSelectItems.Count - 1; } selectItem.selectIndex = listIndex; } } selectItem.SetPreviewItemTexture(); selectItem.SetPreviewColor(); itemList.Add(selectItem); listIndex++; } } if (refreshRangeItem != null || refreshRanges) { refreshRanges = false; RefreshRanges(); refreshRangeItem = null; } else if (refresh || TC.refreshPreviewImages) { CalcPreview(); } }