Example #1
0
        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);
 }
Example #3
0
        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();
            }
        }