namespace Mapbox.Unity.Map { using System; using System.Collections.Generic; using Mapbox.Platform.TilesetTileJSON; using Mapbox.Unity.Utilities; using UnityEngine; using System.Linq; [Serializable] public class VectorLayerProperties : LayerProperties { #region Events public event System.EventHandler SubLayerPropertyAdded; public virtual void OnSubLayerPropertyAdded(System.EventArgs e) { System.EventHandler handler = SubLayerPropertyAdded; if (handler != null) { handler(this, e); } } public event System.EventHandler SubLayerPropertyRemoved; public virtual void OnSubLayerPropertyRemoved(System.EventArgs e) { System.EventHandler handler = SubLayerPropertyRemoved; if (handler != null) { handler(this, e); } } #endregion /// /// Raw tileJSON response received from the requested source tileset id(s) /// public TileJsonData tileJsonData = new TileJsonData(); [SerializeField] protected VectorSourceType _sourceType = VectorSourceType.MapboxStreets; public VectorSourceType sourceType { get { return _sourceType; } set { if (value != VectorSourceType.Custom) { sourceOptions.Id = MapboxDefaultVector.GetParameters(value).Id; } if (value == VectorSourceType.None) { sourceOptions.isActive = false; } else { sourceOptions.isActive = true; } _sourceType = value; } } public LayerSourceOptions sourceOptions = new LayerSourceOptions() { isActive = true, layerSource = MapboxDefaultVector.GetParameters(VectorSourceType.MapboxStreets) }; [Tooltip("Use Mapbox style-optimized tilesets, remove any layers or features in the tile that are not represented by a Mapbox style. Style-optimized vector tiles are smaller, served over-the-wire, and a great way to reduce the size of offline caches.")] public bool useOptimizedStyle = false; [StyleSearch] public Style optimizedStyle; public LayerPerformanceOptions performanceOptions; [NodeEditorElementAttribute("Feature Sublayers")] public List vectorSubLayers = new List(); [NodeEditorElementAttribute("POI Sublayers")] public List locationPrefabList = new List(); public override bool NeedsForceUpdate() { return true; } } }