[
  {
    "path": ".gitignore",
    "content": "[Ll]ibrary/\n[Tt]emp/\n[Oo]bj/\n[Bb]uild/\n[Bb]uilds/\nAssets/AssetStoreTools*\n\n# Visual Studio cache directory\n.vs/\n\n# Autogenerated VS/MD/Consulo solution and project files\nExportedObj/\n.consulo/\n*.csproj\n*.unityproj\n*.sln\n*.suo\n*.tmp\n*.user\n*.userprefs\n*.pidb\n*.booproj\n*.svd\n*.pdb\n*.opendb\n\n# Unity3D generated meta files\n*.pidb.meta\n*.pdb.meta\n\n# Unity3D Generated File On Crash Reports\nsysinfo.txt\n\n# Builds\n*.apk\n*.unitypackage\n"
  },
  {
    "path": "Homebrew/DecorateFoldout/Attributes/FoldAttribute.cs",
    "content": "﻿//  Project : UNITY FOLDOUT\r\n// Contacts : Pix - ask@pixeye.games\r\n\r\n\r\nusing UnityEngine;\r\n\r\nnamespace Pixeye.Unity\r\n{\r\n\tpublic class FoldoutAttribute : PropertyAttribute\r\n\t{\r\n\t\tpublic string name;\r\n\t\tpublic bool foldEverything;\r\n\r\n\t\t/// <summary>Adds the property to the specified foldout group.</summary>\r\n\t\t/// <param name=\"name\">Name of the foldout group.</param>\r\n\t\t/// <param name=\"foldEverything\">Toggle to put all properties to the specified group</param>\r\n\t\tpublic FoldoutAttribute(string name, bool foldEverything = false)\r\n\t\t{\r\n\t\t\tthis.foldEverything = foldEverything;\r\n\t\t\tthis.name           = name;\r\n\t\t}\r\n\t}\r\n}"
  },
  {
    "path": "Homebrew/DecorateFoldout/Editor/EditorOverride.cs",
    "content": "﻿//  Project : UNITY FOLDOUT\r\n// Contacts : Pix - ask@pixeye.games\r\n\r\nusing Homebrew;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing UnityEditor;\r\nusing UnityEngine;\r\nusing Object = UnityEngine.Object;\r\n\r\n\r\nnamespace Pixeye.Unity\r\n{\r\n\t[CustomEditor(typeof(Object), true, isFallback = true)]\r\n\t[CanEditMultipleObjects]\r\n\tpublic class EditorOverride : Editor\r\n\t{\r\n\t\t//===============================//\r\n\t\t// Members\r\n\t\t//===============================//\r\n\r\n\r\n\t\tDictionary<string, CacheFoldProp> cacheFolds = new Dictionary<string, CacheFoldProp>();\r\n\t\tList<SerializedProperty> props = new List<SerializedProperty>();\r\n\t\tList<MethodInfo> methods = new List<MethodInfo>();\r\n\t\tbool initialized;\r\n\r\n\r\n\t\t//===============================//\r\n\t\t// Logic\r\n\t\t//===============================//\r\n\r\n\r\n\t\tvoid OnEnable()\r\n\t\t{\r\n\t\t\tinitialized = false;\r\n\t\t}\r\n\r\n\r\n\t\tvoid OnDisable()\r\n\t\t{\r\n\t\t\t//if (Application.wantsToQuit)\r\n\t\t\t//if (applicationIsQuitting) return;\r\n\t\t\t//\tif (Toolbox.isQuittingOrChangingScene()) return;\r\n\t\t\tif (target != null)\r\n\t\t\t\tforeach (var c in cacheFolds)\r\n\t\t\t\t{\r\n\t\t\t\t\tEditorPrefs.SetBool(string.Format($\"{c.Value.atr.name}{c.Value.props[0].name}{target.GetInstanceID()}\"), c.Value.expanded);\r\n\t\t\t\t\tc.Value.Dispose();\r\n\t\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tpublic override bool RequiresConstantRepaint()\r\n\t\t{\r\n\t\t\treturn EditorFramework.needToRepaint;\r\n\t\t}\r\n\r\n\t\tpublic override void OnInspectorGUI()\r\n\t\t{\r\n\t\t\tserializedObject.Update();\r\n\r\n\r\n\t\t\tSetup();\r\n\r\n\t\t\tif (props.Count == 0)\r\n\t\t\t{\r\n\t\t\t\tDrawDefaultInspector();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tHeader();\r\n\t\t\tBody();\r\n\r\n\t\t\tserializedObject.ApplyModifiedProperties();\r\n\r\n\t\t\tvoid Header()\r\n\t\t\t{\r\n\t\t\t\tusing (new EditorGUI.DisabledScope(\"m_Script\" == props[0].propertyPath))\r\n\t\t\t\t{\r\n\t\t\t\t\tEditorGUILayout.Space();\r\n\t\t\t\t\tEditorGUILayout.PropertyField(props[0], true);\r\n\t\t\t\t\tEditorGUILayout.Space();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvoid Body()\r\n\t\t\t{\r\n\t\t\t\tforeach (var pair in cacheFolds)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.UseVerticalLayout(() => Foldout(pair.Value), StyleFramework.box);\r\n\t\t\t\t\tEditorGUI.indentLevel = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tEditorGUILayout.Space();\r\n\r\n\t\t\t\tfor (var i = 1; i < props.Count; i++)\r\n\t\t\t\t{\r\n\t\t\t\t\t// if (props[i].isArray)\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \tDrawPropertySortableArray(props[i]);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else\r\n\t\t\t\t\t// {\r\n\t\t\t\t\tEditorGUILayout.PropertyField(props[i], true);\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tEditorGUILayout.Space();\r\n\r\n\t\t\t\tif (methods == null) return;\r\n\t\t\t\tforeach (MethodInfo memberInfo in methods)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.UseButton(memberInfo);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvoid Foldout(CacheFoldProp cache)\r\n\t\t\t{\r\n\t\t\t\tcache.expanded = EditorGUILayout.Foldout(cache.expanded, cache.atr.name, true,\r\n\t\t\t\t\t\tStyleFramework.foldout);\r\n\r\n\t\t\t\tif (cache.expanded)\r\n\t\t\t\t{\r\n\t\t\t\t\tEditorGUI.indentLevel = 1;\r\n\r\n\t\t\t\t\tfor (int i = 0; i < cache.props.Count; i++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.UseVerticalLayout(() => Child(i), StyleFramework.boxChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvoid Child(int i)\r\n\t\t\t\t{\r\n\t\t\t\t\t// if (cache.props[i].isArray)\r\n\t\t\t\t\t// {\r\n\t\t\t\t\t// \tDrawPropertySortableArray(cache.props[i]);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else\r\n\t\t\t\t\t// {\r\n\t\t\t\t\tEditorGUILayout.PropertyField(cache.props[i], new GUIContent(ObjectNames.NicifyVariableName(cache.props[i].name)), true);\r\n\t\t\t\t\t//}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvoid Setup()\r\n\t\t\t{\r\n\t\t\t\tEditorFramework.currentEvent = Event.current;\r\n\t\t\t\tif (!initialized)\r\n\t\t\t\t{\r\n\t\t\t\t\t//\tSetupButtons();\r\n\r\n\t\t\t\t\tList<FieldInfo>  objectFields;\r\n\t\t\t\t\tFoldoutAttribute prevFold = default;\r\n\r\n\t\t\t\t\tvar length = EditorTypes.Get(target, out objectFields);\r\n\r\n\t\t\t\t\tfor (var i = 0; i < length; i++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t#region FOLDERS\r\n\r\n\t\t\t\t\t\tvar           fold = Attribute.GetCustomAttribute(objectFields[i], typeof(FoldoutAttribute)) as FoldoutAttribute;\r\n\t\t\t\t\t\tCacheFoldProp c;\r\n\t\t\t\t\t\tif (fold == null)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif (prevFold != null && prevFold.foldEverything)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif (!cacheFolds.TryGetValue(prevFold.name, out c))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tcacheFolds.Add(prevFold.name, new CacheFoldProp {atr = prevFold, types = new HashSet<string> {objectFields[i].Name}});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tc.types.Add(objectFields[i].Name);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tprevFold = fold;\r\n\r\n\t\t\t\t\t\tif (!cacheFolds.TryGetValue(fold.name, out c))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar expanded = EditorPrefs.GetBool(string.Format($\"{fold.name}{objectFields[i].Name}{target.GetInstanceID()}\"), false);\r\n\t\t\t\t\t\t\tcacheFolds.Add(fold.name, new CacheFoldProp {atr = fold, types = new HashSet<string> {objectFields[i].Name}, expanded = expanded});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse c.types.Add(objectFields[i].Name);\r\n\r\n\t\t\t\t\t\t#endregion\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar property = serializedObject.GetIterator();\r\n\t\t\t\t\tvar next     = property.NextVisible(true);\r\n\t\t\t\t\tif (next)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdo\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tHandleFoldProp(property);\r\n\t\t\t\t\t\t} while (property.NextVisible(false));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinitialized = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// void SetupButtons()\r\n\t\t\t// {\r\n\t\t\t// \tvar members = GetButtonMembers(target);\r\n\t\t\t//\r\n\t\t\t// \tforeach (var memberInfo in members)\r\n\t\t\t// \t{\r\n\t\t\t// \t\tvar method = memberInfo as MethodInfo;\r\n\t\t\t// \t\tif (method == null)\r\n\t\t\t// \t\t{\r\n\t\t\t// \t\t\tcontinue;\r\n\t\t\t// \t\t}\r\n\t\t\t//\r\n\t\t\t// \t\tif (method.GetParameters().Length > 0)\r\n\t\t\t// \t\t{\r\n\t\t\t// \t\t\tcontinue;\r\n\t\t\t// \t\t}\r\n\t\t\t//\r\n\t\t\t// \t\tif (methods == null) methods = new List<MethodInfo>();\r\n\t\t\t// \t\tmethods.Add(method);\r\n\t\t\t// \t}\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tpublic void HandleFoldProp(SerializedProperty prop)\r\n\t\t{\r\n\t\t\tbool shouldBeFolded = false;\r\n\r\n\t\t\tforeach (var pair in cacheFolds)\r\n\t\t\t{\r\n\t\t\t\tif (pair.Value.types.Contains(prop.name))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar pr = prop.Copy();\r\n\t\t\t\t\tshouldBeFolded = true;\r\n\t\t\t\t\tpair.Value.props.Add(pr);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (shouldBeFolded == false)\r\n\t\t\t{\r\n\t\t\t\tvar pr = prop.Copy();\r\n\t\t\t\tprops.Add(pr);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// IEnumerable<MemberInfo> GetButtonMembers(object target)\r\n\t\t// {\r\n\t\t// \treturn target.GetType()\r\n\t\t// \t\t\t.GetMembers(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.NonPublic)\r\n\t\t// \t\t\t.Where(CheckButtonAttribute);\r\n\t\t// }\r\n\r\n\t\t// bool CheckButtonAttribute(MemberInfo memberInfo)\r\n\t\t// {\r\n\t\t// \treturn Attribute.IsDefined(memberInfo, typeof(ButtonAttribute));\r\n\t\t// }\r\n\r\n\t\tclass CacheFoldProp\r\n\t\t{\r\n\t\t\tpublic HashSet<string> types = new HashSet<string>();\r\n\t\t\tpublic List<SerializedProperty> props = new List<SerializedProperty>();\r\n\t\t\tpublic FoldoutAttribute atr;\r\n\t\t\tpublic bool expanded;\r\n\r\n\t\t\tpublic void Dispose()\r\n\t\t\t{\r\n\t\t\t\tprops.Clear();\r\n\t\t\t\ttypes.Clear();\r\n\t\t\t\tatr = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic class ditorUIHelper\r\n\t{\r\n\t\tpublic static void UseVerticalLayout(this Editor e, Action action, GUIStyle style)\r\n\t\t{\r\n\t\t\tEditorGUILayout.BeginVertical(style);\r\n\t\t\taction();\r\n\t\t\tEditorGUILayout.EndVertical();\r\n\t\t}\r\n\r\n\t\tpublic static void UseButton(this Editor e, MethodInfo m)\r\n\t\t{\r\n\t\t\tif (GUILayout.Button(m.Name))\r\n\t\t\t{\r\n\t\t\t\tm.Invoke(e.target, null);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tstatic class StyleFramework\r\n\t{\r\n\t\tpublic static GUIStyle box;\r\n\t\tpublic static GUIStyle boxChild;\r\n\t\tpublic static GUIStyle foldout;\r\n\t\tpublic static GUIStyle button;\r\n\t\tpublic static GUIStyle text;\r\n\r\n\t\tstatic StyleFramework()\r\n\t\t{\r\n\t\t\tbool pro = EditorGUIUtility.isProSkin;\r\n\r\n\t\t\tvar uiTex_in    = Resources.Load<Texture2D>(\"IN foldout focus-6510\");\r\n\t\t\tvar uiTex_in_on = Resources.Load<Texture2D>(\"IN foldout focus on-5718\");\r\n\r\n\t\t\tvar c_on = pro ? Color.white : new Color(51 / 255f, 102 / 255f, 204 / 255f, 1);\r\n\r\n\t\t\tbutton      = new GUIStyle(EditorStyles.miniButton);\r\n\t\t\tbutton.font = Font.CreateDynamicFontFromOSFont(new[] {\"Terminus (TTF) for Windows\", \"Calibri\"}, 17);\r\n\r\n\t\t\ttext               = new GUIStyle(EditorStyles.label);\r\n\t\t\ttext.richText      = true;\r\n\t\t\ttext.contentOffset = new Vector2(0, 5);\r\n\t\t\ttext.font          = Font.CreateDynamicFontFromOSFont(new[] {\"Terminus (TTF) for Windows\", \"Calibri\"}, 14);\r\n\r\n\t\t\tfoldout = new GUIStyle(EditorStyles.foldout);\r\n\r\n\t\t\tfoldout.overflow = new RectOffset(-10, 0, 3, 0);\r\n\t\t\tfoldout.padding  = new RectOffset(25, 0, -3, 0);\r\n\r\n\t\t\tfoldout.active.textColor    = c_on;\r\n\t\t\tfoldout.active.background   = uiTex_in;\r\n\t\t\tfoldout.onActive.textColor  = c_on;\r\n\t\t\tfoldout.onActive.background = uiTex_in_on;\r\n\r\n\t\t\tfoldout.focused.textColor    = c_on;\r\n\t\t\tfoldout.focused.background   = uiTex_in;\r\n\t\t\tfoldout.onFocused.textColor  = c_on;\r\n\t\t\tfoldout.onFocused.background = uiTex_in_on;\r\n\r\n\t\t\tfoldout.hover.textColor  = c_on;\r\n\t\t\tfoldout.hover.background = uiTex_in;\r\n\r\n\t\t\tfoldout.onHover.textColor  = c_on;\r\n\t\t\tfoldout.onHover.background = uiTex_in_on;\r\n\r\n\t\t\tbox         = new GUIStyle(GUI.skin.box);\r\n\t\t\tbox.padding = new RectOffset(10, 0, 10, 0);\r\n\r\n\t\t\tboxChild                     = new GUIStyle(GUI.skin.box);\r\n\t\t\tboxChild.active.textColor    = c_on;\r\n\t\t\tboxChild.active.background   = uiTex_in;\r\n\t\t\tboxChild.onActive.textColor  = c_on;\r\n\t\t\tboxChild.onActive.background = uiTex_in_on;\r\n\r\n\t\t\tboxChild.focused.textColor    = c_on;\r\n\t\t\tboxChild.focused.background   = uiTex_in;\r\n\t\t\tboxChild.onFocused.textColor  = c_on;\r\n\t\t\tboxChild.onFocused.background = uiTex_in_on;\r\n\r\n\t\t\tEditorStyles.foldout.active.textColor    = c_on;\r\n\t\t\tEditorStyles.foldout.active.background   = uiTex_in;\r\n\t\t\tEditorStyles.foldout.onActive.textColor  = c_on;\r\n\t\t\tEditorStyles.foldout.onActive.background = uiTex_in_on;\r\n\r\n\t\t\tEditorStyles.foldout.focused.textColor    = c_on;\r\n\t\t\tEditorStyles.foldout.focused.background   = uiTex_in;\r\n\t\t\tEditorStyles.foldout.onFocused.textColor  = c_on;\r\n\t\t\tEditorStyles.foldout.onFocused.background = uiTex_in_on;\r\n\r\n\t\t\tEditorStyles.foldout.hover.textColor  = c_on;\r\n\t\t\tEditorStyles.foldout.hover.background = uiTex_in;\r\n\r\n\t\t\tEditorStyles.foldout.onHover.textColor  = c_on;\r\n\t\t\tEditorStyles.foldout.onHover.background = uiTex_in_on;\r\n\t\t}\r\n\r\n\t\tpublic static string FirstLetterToUpperCase(this string s)\r\n\t\t{\r\n\t\t\tif (string.IsNullOrEmpty(s))\r\n\t\t\t\treturn string.Empty;\r\n\r\n\t\t\tvar a = s.ToCharArray();\r\n\t\t\ta[0] = char.ToUpper(a[0]);\r\n\t\t\treturn new string(a);\r\n\t\t}\r\n\r\n\t\tpublic static IList<Type> GetTypeTree(this Type t)\r\n\t\t{\r\n\t\t\tvar types = new List<Type>();\r\n\t\t\twhile (t.BaseType != null)\r\n\t\t\t{\r\n\t\t\t\ttypes.Add(t);\r\n\t\t\t\tt = t.BaseType;\r\n\t\t\t}\r\n\r\n\t\t\treturn types;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic class EditorTypes\r\n\t{\r\n\t\tpublic static Dictionary<int, List<FieldInfo>> fields = new Dictionary<int, List<FieldInfo>>(FastComparable.Default);\r\n\r\n\t\tpublic static int Get(Object target, out List<FieldInfo> objectFields)\r\n\t\t{\r\n\t\t\tvar t    = target.GetType();\r\n\t\t\tvar hash = t.GetHashCode();\r\n\r\n\t\t\tif (!fields.TryGetValue(hash, out objectFields))\r\n\t\t\t{\r\n\t\t\t\tvar typeTree = t.GetTypeTree();\r\n\t\t\t\tobjectFields = target.GetType()\r\n\t\t\t\t\t\t.GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.NonPublic)\r\n\t\t\t\t\t\t.OrderByDescending(x => typeTree.IndexOf(x.DeclaringType))\r\n\t\t\t\t\t\t.ToList();\r\n\t\t\t\tfields.Add(hash, objectFields);\r\n\t\t\t}\r\n\r\n\t\t\treturn objectFields.Count;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tclass FastComparable : IEqualityComparer<int>\r\n\t{\r\n\t\tpublic static FastComparable Default = new FastComparable();\r\n\r\n\t\tpublic bool Equals(int x, int y)\r\n\t\t{\r\n\t\t\treturn x == y;\r\n\t\t}\r\n\r\n\t\tpublic int GetHashCode(int obj)\r\n\t\t{\r\n\t\t\treturn obj.GetHashCode();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t[InitializeOnLoad]\r\n\tpublic static class EditorFramework\r\n\t{\r\n\t\tinternal static bool needToRepaint;\r\n\r\n\t\tinternal static Event currentEvent;\r\n\t\tinternal static float t;\r\n\r\n\t\tstatic EditorFramework()\r\n\t\t{\r\n\t\t\tEditorApplication.update += Updating;\r\n\t\t}\r\n\r\n\r\n\t\tstatic void Updating()\r\n\t\t{\r\n\t\t\tCheckMouse();\r\n\r\n\t\t\tif (needToRepaint)\r\n\t\t\t{\r\n\t\t\t\tt += Time.deltaTime;\r\n\r\n\t\t\t\tif (t >= 0.3f)\r\n\t\t\t\t{\r\n\t\t\t\t\tt             -= 0.3f;\r\n\t\t\t\t\tneedToRepaint =  false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tstatic void CheckMouse()\r\n\t\t{\r\n\t\t\tvar ev = currentEvent;\r\n\t\t\tif (ev == null) return;\r\n\r\n\t\t\tif (ev.type == EventType.MouseMove)\r\n\t\t\t\tneedToRepaint = true;\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "Homebrew/DecorateFoldout/Editor/Resources/IN foldout focus on-5718.png.meta",
    "content": "fileFormatVersion: 2\nguid: 07896d08487bbb049b494e9e216360ad\nTextureImporter:\n  fileIDToRecycleName: {}\n  externalObjects: {}\n  serializedVersion: 5\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 0\n    aniso: -1\n    mipBias: -1\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  platformSettings:\n  - serializedVersion: 2\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  - serializedVersion: 2\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  - serializedVersion: 2\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: \n    vertices: []\n    indices: \n    edges: []\n    weights: []\n  spritePackingTag: \n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "Homebrew/DecorateFoldout/Editor/Resources/IN foldout focus-6510.png.meta",
    "content": "fileFormatVersion: 2\nguid: 795626f49ade9024a86e0c1a58aa004b\nTextureImporter:\n  fileIDToRecycleName: {}\n  externalObjects: {}\n  serializedVersion: 5\n  mipmaps:\n    mipMapMode: 0\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 0\n    aniso: -1\n    mipBias: -1\n    wrapU: 1\n    wrapV: 1\n    wrapW: -1\n  nPOTScale: 0\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 1\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 1\n  spriteTessellationDetail: -1\n  textureType: 8\n  textureShape: 1\n  singleChannelComponent: 0\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  platformSettings:\n  - serializedVersion: 2\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  - serializedVersion: 2\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  - serializedVersion: 2\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: \n    vertices: []\n    indices: \n    edges: []\n    weights: []\n  spritePackingTag: \n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Dimitry\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "[![license](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/dimmpixeye/InspectorFoldoutGroup/blob/master/LICENSE)\n[![Join the chat at https://discord.gg/ukhzx83](https://img.shields.io/badge/discord-join%20channel-brightgreen.svg?style=flat-square)](https://discord.gg/ukhzx83)\n# InspectorFoldoutGroup\nGroup variables in Unity 3d inspector with style!\n\n[![https://gyazo.com/9f18eab9dfb123d928aecf7daa3e01da](https://i.gyazo.com/9f18eab9dfb123d928aecf7daa3e01da.gif)](https://gyazo.com/9f18eab9dfb123d928aecf7daa3e01da)\n\n[![https://gyazo.com/4e6566c2fca783e4cd557f95713a4ab5](https://i.gyazo.com/4e6566c2fca783e4cd557f95713a4ab5.gif)](https://gyazo.com/4e6566c2fca783e4cd557f95713a4ab5)\n\n## How to use \n\nPut attribute before variable and you are done ! \n\n```csharp\n[Foldout(\"DESIRED_NAME\")]\n```\n\n```csharp\n  public class Player : MonoBehaviour\n{\n\t[Foldout(\"Setup\")] public Transform selfTransform;\n\t\n\t[Foldout(\"Data\")] public int HP;\n\t[Foldout(\"Data\")] public int AT;\n \n}\n```\n\nYou don't need to write [Foldout] attribute each time! Instead, you can add \"true\" bool check afther naming to put all properties to the specified group\n```csharp\n  public class Player : MonoBehaviour\n{\n\t[Foldout(\"DATA OBJECT\", true)] \n\tpublic int hp;\n\tpublic int attack = 20;\n\t[SerializeField]\n\tprivate GameObject self;\n\t\n\t[Foldout(\"DATA ATTACK\")] \n\tpublic int AT;\n \n}\n```\n[![https://gyazo.com/2ce500e63fd604de8098aece2fa354fa](https://i.gyazo.com/2ce500e63fd604de8098aece2fa354fa.png)](https://gyazo.com/2ce500e63fd604de8098aece2fa354fa)\n\n \n## Other content\n* [Tag filters](https://github.com/dimmpixeye/Unity3d-Tags-Filters) -  an extension to add foldable groups to the inspector.\n* [ACTORS](https://github.com/dimmpixeye/Actors-Unity3d-Framework) - Unity3d data-driven framework I'm currently working on.\n\n"
  }
]