示例#1
0
        public static void WriteConfigTo(string filePath, IniConfig config)
        {
            StringBuilder configSB = new StringBuilder();

            configSB.AppendLine(INI_HEAD_CONTENT);

            dynamic dynamicConfig = config.AsDynamic();
            Dictionary <string, IniGroup> groupDic = dynamicConfig.groupDic;

            if (groupDic != null && groupDic.Count > 0)
            {
                foreach (var kvp in groupDic)
                {
                    IniGroup group = kvp.Value;
                    configSB.AppendLine($"#{group.Name}|{group.Comment}");

                    dynamic dynamicGroup = group.AsDynamic();
                    Dictionary <string, IniData> dataDic = dynamicGroup.dataDic;
                    foreach (var kvp2 in dataDic)
                    {
                        IniData data = kvp2.Value;
                        configSB.AppendLine($"-{data.Key}|{data.Value}|{data.Comment}|{string.Join(",", data.OptionValues)}");
                    }
                }

                configSB.AppendLine();
            }

            File.WriteAllText(filePath, configSB.ToString());
        }
示例#2
0
        private void DrawGroup(IniGroup group)
        {
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);
                {
                    EditorGUILayout.LabelField(new GUIContent(group.Name, group.Comment));

                    GUILayout.FlexibleSpace();

                    if (GUILayout.Button(Contents.DeleteGroupContent, EditorStyles.toolbarButton, GUILayout.Width(80)))
                    {
                        deleteData = new DeleteData()
                        {
                            groupName = group.Name
                        };
                    }

                    if (GUILayout.Button(Contents.AddDataContent, EditorStyles.toolbarButton, GUILayout.Width(80)))
                    {
                        PopupWindow.Show(new Rect(Event.current.mousePosition, Vector2.zero), new CreateIniDataContent(group, (groupName, dataKey) =>
                        {
                            Repaint();
                        }));
                    }
                }
                EditorGUILayout.EndHorizontal();

                foreach (var dKVP in group.AsDynamic().dataDic)
                {
                    if (string.IsNullOrEmpty(searchText) || dKVP.Key.ToLower().IndexOf(searchText) >= 0)
                    {
                        DrawData(group, dKVP.Value);
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }