private static void LoadEditorConfig()
        {
            // load config
            var path = CocoDressEditorHelper.GetFullPath(CocoDressSettings.EditorConfigFilePath);

            m_EditConfigHolder = CocoData.LoadFromJsonFile <CocoDressEditorConfigHolder> (path);

            // fix default config
            FixEditorDefaultConfig();

            UpdateAssetFullDirectory();
        }
        private void SaveEditorConfig()
        {
            if (m_EditConfigHolder == null)
            {
                return;
            }

            var path = CocoDressEditorHelper.GetFullPath(CocoDressSettings.EditorConfigFilePath);

            CocoData.SaveToJsonFile(m_EditConfigHolder, path, true);

            AssetDatabase.Refresh();
        }
示例#3
0
        private CocoAssetConfigHolder GenerateAssetConfig()
        {
            // create asset config holder
            var fullPath          = Path.Combine(_assetConfigFullDirectory, _editorConfigHolder.globalConfigFileName);
            var assetConfigHolder = new CocoAssetConfigHolder()
            {
                id        = Path.GetFileNameWithoutExtension(_editorConfigHolder.globalConfigFileName),
                assetPath = GetRelativePath(fullPath)
            };
            var allSceneDressItemIds = new Dictionary <string, Dictionary <string, HashSet <string> > > ();

            // create category holders
            var originAssetPath = Path.Combine(_rootFullDirectory, _editorConfigHolder.assetDirectory);

            originAssetPath = CocoDressEditorHelper.GetFullPath(originAssetPath);
            var categoryPaths = Directory.GetDirectories(originAssetPath);

            foreach (var path in categoryPaths)
            {
                Dictionary <string, HashSet <string> > sceneItemIds;
                var categoryHolder       = GenerateCategory(path, out sceneItemIds);
                var categoryConfigHolder = GenerateCategoryConfig(categoryHolder);

                var tItemCount = 0;
                foreach (var item in sceneItemIds.Values)
                {
                    tItemCount += item.Count;
                    if (tItemCount > 0)
                    {
                        break;
                    }
                }

                if (categoryHolder != null && tItemCount > 0)
                {
                    assetConfigHolder.categoryConfigHolders.Add(categoryConfigHolder);
                    CollectAllSceneDressItemIds(allSceneDressItemIds, sceneItemIds, categoryHolder.id);
                }
            }

            // create scene holders
            foreach (var kvpSceneDressItemIds in allSceneDressItemIds)
            {
                var sceneHolder       = GenerateScene(kvpSceneDressItemIds.Key, kvpSceneDressItemIds.Value);
                var sceneConfigHolder = GenerateSceneConfig(sceneHolder);
                if (sceneConfigHolder != null)
                {
                    assetConfigHolder.sceneConfigHolders.Add(sceneConfigHolder);
                }
            }

            // create role dress
            _editorConfigHolder.roleDressConfigHolders.ForEach(editorRoleDressConfigHolder => {
                var roleDressHolder = GenerateRoleDress(editorRoleDressConfigHolder, allSceneDressItemIds);
                if (roleDressHolder != null)
                {
                    var roleDressConfigHolder = GenerateRoleDressConfig(roleDressHolder);
                    if (roleDressConfigHolder != null)
                    {
                        assetConfigHolder.roleDressConfigHolders.Add(roleDressConfigHolder);
                    }
                }
            });


            // create role body
            _editorConfigHolder.roleBodyConfigHolders.ForEach(editorRoleBodyConfigHolder => {
                var roleBodyHolder = GenerateRoleBody(editorRoleBodyConfigHolder);
                if (roleBodyHolder != null)
                {
                    var roleBodyConfigHolder = GenerateRoleBodyConfig(roleBodyHolder);
                    if (roleBodyConfigHolder != null)
                    {
                        assetConfigHolder.roleBodyConfigHolders.Add(roleBodyConfigHolder);
                    }
                }
            });

            // create role
            _editorConfigHolder.roleConfigHolders.ForEach(editorRoleConfigHolder => {
                var roleHolder = GenerateRole(editorRoleConfigHolder);
                if (roleHolder != null)
                {
                    var roleConfigHolder = GenerateRoleConfig(roleHolder);
                    if (roleConfigHolder != null)
                    {
                        assetConfigHolder.roleConfigHolders.Add(roleConfigHolder);
                    }
                }
            });

            return(assetConfigHolder);
        }