using UnityEngine; using System.Collections.Generic; using UnityEngine.Polybrush; namespace UnityEditor.Polybrush { /// /// A set of Prefabs. /// [CreateAssetMenuAttribute(menuName = "Polybrush/Prefab Palette", fileName = "Prefab Palette", order = 802)] [System.Serializable] internal class PrefabPalette : PolyAsset, IHasDefault, ICustomSettings { [SerializeField] internal List prefabs; public string assetsFolder { get { return "Prefab Palette/"; } } public void SetDefaultValues() { prefabs = new List() {}; } public bool Contains(GameObject prefab) { return prefabs.Find(x => x.gameObject == prefab) != null; } public int FindIndex(GameObject prefab) { return prefabs.IndexOf(Get(prefab)); } public PrefabAndSettings Get(GameObject prefab) { return prefabs.Find(x => x.gameObject == prefab); } public void RemoveRange(IList indexes) { List toRemove = new List(indexes.Count); foreach (int i in indexes) toRemove.Add(prefabs[i]); prefabs.RemoveAll(x => toRemove.Contains(x)); } } }