private void DrawTextureRepositorySelectorEditor()
        {
            var index = _textureRepositories.IndexOf(_textureRepository);

            index = EditorGUILayout.Popup("Texture repository", index, _textureRepositoryNames);
            _textureRepository = _textureRepositories[index];
        }
Ejemplo n.º 2
0
        private static Folder GenerateFolder(Frame frame)
        {
            var items = frame.filename.Split(TextureRepository.Separator).ToList();
            var depth = items.Count - 1;
            var root  = _textureRepository.Root;

            for (; items.Count > 1;)
            {
                var folder = TextureRepository.GetFolder(root, items[0]);
                if (folder == null)
                {
                    break;
                }
                items.RemoveAt(0);
                root = folder;
            }
            for (; items.Count > 1;)
            {
                _outputlog.Append(' ', (depth - 1) * 3);
                _outputlog.AppendLine(string.Format("* Folder created: {0}", items[0]));
                root = TextureRepository.CreateFolder(root, items[0], depth);
                items.RemoveAt(0);
            }
            return(root);
        }
Ejemplo n.º 3
0
 protected override void Initialize()
 {
     IsFixedTimeStep = false;
     Fps.AttachTo(this);
     Content.RootDirectory = "Content";
     Textures = new TextureRepository();
     base.Initialize();
 }
 private void LoadTextureRepositories()
 {
     _textureRepositories    = AssetDatabaseHelper.LoadAllAssets <TextureRepository>();
     _textureRepositoryNames = _textureRepositories.Select(x => x.name).ToArray();
     if (_textureRepositories.Count > 0)
     {
         _textureRepository = _textureRepositories[0];
     }
 }
        private void DrawTargetRepositoryInspector()
        {
            if (_textureRepositories.Count == 0)
            {
                EditorGUILayout.HelpBox("You don't have any Texture Repository instance", MessageType.Error);
                return;
            }
            var index = _textureRepositories.IndexOf(_targetTextureRepository);

            index = EditorGUILayout.Popup("Target texture repository", index, _textureRepositoryNames);
            _targetTextureRepository = _textureRepositories[index];
        }
Ejemplo n.º 6
0
 public static string Transform(TextureDescription textureDescription, TextureRepository textureRepository)
 {
     _outputlog             = new StringBuilder();
     _textureRepository     = textureRepository;
     _textureDescription    = textureDescription;
     _textureAssetPath      = AssetDatabase.GetAssetPath(_textureDescription.Texture);
     _rawContainer          = Domain.Domain.LoadContainer(_textureDescription.JsonDataFile);
     _newSpriteDescriptions = new List <SpriteDescription>();
     using (var textureImporterWrapper = new TextureImporterWrapper(_textureAssetPath))
     {
         textureImporterWrapper.ClearSpritesMetaData();
         MapRepository(textureImporterWrapper);
     }
     EditorUtility.SetDirty(_textureDescription);
     SetSprites();
     return(_outputlog.ToString());
 }
Ejemplo n.º 7
0
        private static void buildPreviewRepository()
        {
            uint i = 0;
            TextureRepository repository = new TextureRepository();

            AssetBundleBuild[] existingBundles = AssetDatabase.GetAllAssetBundleNames().Select(
                bundleName =>
            {
                Debug.Log(string.Format("Scanning Bundle: {0}", bundleName));
                string[] assets = AssetDatabase.GetAssetPathsFromAssetBundle(bundleName);
                foreach (string pageName in assets)
                {
                    if (pageName == lastUsedAssetPath)
                    {
                        wizard.GameContainer.TestImageID = i;
                    }
                    if (pageName.Contains(".jpg"))
                    {
                        repository.Add(new Texture(
                                           i,
                                           pageName,
                                           bundleName
                                           ));
                        Debug.Log(string.Format("\tAsset: \"{0}\"", pageName));
                        Debug.Log(repository.ToJSON());
                    }
                    i++;
                }
                return(new AssetBundleBuild {
                    assetBundleName = bundleName,
                    assetBundleVariant = "",
                    assetNames = assets
                });
            }).ToArray();

            AssetPath.CreateAssetPath(AssetPath.DEFAULT_REPOSITORY_EXPORT_PATH);

            File.WriteAllText(URLManager.CombinePath(
                                  Application.streamingAssetsPath,
                                  AssetPath.DEFAULT_REPOSITORY_IN_SA,
                                  URLManager.DEFAULT_TEXTURE_REPOSITORY_FILENAME),
                              repository.ToJSON());
        }
Ejemplo n.º 8
0
        private static void export()
        {
            System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();

            TextureRepository texturesRepository = new TextureRepository();

            texturesRepository.FromJSON(File.ReadAllText(
                                            URLManager.CombinePath(
                                                Application.streamingAssetsPath,
                                                AssetPath.DEFAULT_REPOSITORY_IN_SA,
                                                URLManager.DEFAULT_TEXTURE_REPOSITORY_FILENAME)
                                            ));

            PageRepository pagesRepository = new PageRepository();

            pagesRepository.FromJSON(File.ReadAllText(
                                         URLManager.CombinePath(
                                             Application.streamingAssetsPath,
                                             AssetPath.DEFAULT_REPOSITORY_IN_SA,
                                             URLManager.DEFAULT_PAGE_REPOSITORY_FILENAME)
                                         ));

            lastUsedAssetPath =
                AssetPath.CreateAssetPath(AssetPath.DEFAULT_RESOURCES_PATH, wizard.Folder) + "/" +
                PAGE_PREFIX + wizard.Name + ".asset";
            ImageData data = exportMeshData();

            AssetDatabase.CreateAsset(data, lastUsedAssetPath);
            AssetImporter asset = AssetImporter.GetAtPath(lastUsedAssetPath);

            string bundleName = wizard.Folder + ".unity3d";

            asset.SetAssetBundleNameAndVariant(bundleName, "");

            AssetDatabase.SaveAssets();

            // Модификация реестра страниц
            string previewPath = AssetDatabase.GetAssetPath(wizard.PreviewTexture);

            uint textureID = texturesRepository.Find(t => t.Location.ResourceName == previewPath).ID;

            List <uint> allPagesIDs = pagesRepository.FindAll(p => true).Select(p => p.ID).ToList();
            uint        maxPageID   = 0;

            allPagesIDs.ForEach(id => maxPageID = (id > maxPageID) ? id : maxPageID);

            Page oldPage = pagesRepository.Find(p => p.Location.ResourceName == lastUsedAssetPath);

            if (oldPage == null)
            {
                pagesRepository.Add(new Page(
                                        maxPageID + 1,
                                        lastUsedAssetPath,
                                        bundleName,
                                        textureID
                                        ));
            }
            else
            {
                pagesRepository.Storage[oldPage.ID].TextureID = textureID;
//                    = new Page(
//                    oldPage.ID,
//                    oldPage.Location.ResourceName,
//                    bundleName,
//                    textureID
//                );
            }

            File.WriteAllText(URLManager.CombinePath(
                                  Application.streamingAssetsPath,
                                  AssetPath.DEFAULT_REPOSITORY_IN_SA,
                                  URLManager.DEFAULT_PAGE_REPOSITORY_FILENAME),
                              pagesRepository.ToJSON());

            sw.Stop();
            Debug.Log(string.Format("Import completed. Time elapsed: {0}ms", sw.ElapsedMilliseconds));
        }