using LunaWolfStudiosEditor.ScriptableSheets.Layout; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; namespace LunaWolfStudiosEditor.ScriptableSheets { [System.Serializable] public class ExperimentalSettings : AbstractBaseSettings { [SerializeField] private List m_RenderingOverrides = new List(); private HashSet m_RenderingOverridesLookup; public override GUIContent FoldoutContent => SettingsContent.Foldouts.Experimental; public ExperimentalSettings() { m_RenderingOverrides = new List(); m_RenderingOverridesLookup = null; } protected override void DrawProperties(SerializedObject target) { var customDrawerAllowedTypesProperty = target.FindProperty($"m_Experimental.{nameof(m_RenderingOverrides)}"); EditorGUILayout.PropertyField(customDrawerAllowedTypesProperty, SettingsContent.Label.RenderingOverrides, true); m_RenderingOverridesLookup = new HashSet(m_RenderingOverrides); } public HashSet GetRenderingOverrides() { if (m_RenderingOverridesLookup == null) { m_RenderingOverridesLookup = new HashSet(m_RenderingOverrides); } return m_RenderingOverridesLookup; } } }