public void ApplyStampsToTerrain(TerrainWrapper wrapper) { wrapper.OnPostFinalise -= ApplyStampsToTerrain; if (!ApplyStamps) { return; } //Debug.Log("ApplyStampsToTerrain"); if (!wrapper.ObjectContainer) { return; } var ws = wrapper.ObjectContainer.transform.FindTransformInChildren(LayerName); if (!ws) { return; } var stamps = ws.GetComponentsInChildren <WorldStamp>(); List <string> layers = new List <string>(); foreach (var s in stamps) { if (layers.Contains(s.LayerName)) { continue; } layers.Add(s.LayerName); } layers = layers.OrderBy((x) => wrapper.Layers.FindIndex(0, (y) => x == y.name)).ToList(); for (var i = 0; i < layers.Count; ++i) { LayerComponentApplyManager.ApplyAllLayerComponents(wrapper, layers[i]); } }
void Sort() { if (Context == null) { if (_list != null) { _list.Clear(); } return; } _list = LayerComponentApplyManager.SortComponents(Context, Filter); }
public void RebakeAllNodes() { ForceThink(); var terrains = FindObjectsOfType <Terrain>(); foreach (var terrain in terrains) { if (!terrain) { continue; } var wrapper = terrain.gameObject.GetOrAddComponent <TerrainWrapper>(); if (!wrapper) { continue; } LayerComponentApplyManager.ApplyAllLayerComponents(wrapper, LAYER_NAME); } }
private void StampAll(string layerFilter = null) { HashSet <TerrainWrapper> wrappers = new HashSet <TerrainWrapper>(); foreach (var obj in targets) { var layerComponent = obj as LayerComponentBase; var relevantWrappers = layerComponent.GetTerrainWrappers(); if (relevantWrappers.Count == 0) { Debug.LogError("Unable to find any TerrainWrappers to write to. Do you need to add the TerrainWrapper component to your terrain?"); } foreach (var relevantWrapper in relevantWrappers) { wrappers.Add(relevantWrapper); } } foreach (var terrainWrapper in wrappers) { LayerComponentApplyManager.ApplyAllLayerComponents(terrainWrapper, layerFilter); //terrainWrapper.ApplyAllLayers(); } }