private void UpdateAlbumArt(string albumArtUri) { if (string.IsNullOrEmpty(albumArtUri)) { throw new Exception("Unable to update album art for playback monitor: album art uri string was null or empty"); } if (_albumArtUri == albumArtUri) { // if currently displaying requested image return; } ImageSource albumArtImage = null; Application.Current.Dispatcher.Invoke(() => { albumArtImage = ImageResourceLoader.LoadImageFromResourceUri(albumArtUri); }); AlbumArt = albumArtImage; _albumArtUri = albumArtUri; }
private void OnGUI() { importDirectory = this.GetPath(importDirectory, "Import Directory:", "Select Folder", "Select a folder to import from."); prefabTemplateDirectory = this.GetPath(prefabTemplateDirectory, "Prefab Templates:", "Select Folder", "Select a prefab template folder."); outputDirectory = this.GetPath(outputDirectory, "Output Directory:", "Select Folder", "Select an output directory."); if (GUILayout.Button("Begin Import", GUILayout.Width(100))) { ImageResourceLoader imageLoader = new ImageResourceLoader(importDirectory, outputDirectory + "/Images"); PrefabTemplateLoader prefabTemplateLoader = new PrefabTemplateLoader(prefabTemplateDirectory, outputDirectory + "/Prefabs"); TemplateImport import = new TemplateImport(imageLoader.Get(), prefabTemplateLoader.Get(), stringReplacements ?? new Dictionary <string, string>()); ImageResourceComparer comparer = new ImageResourceComparer(); this.templateViews = new List <TemplateView>(); foreach (Templates.PrefabTemplate template in import.Templates) { List <Assignment> assignments = new List <Assignment>(); foreach (Changeable changeable in template.changeables) { Assignment assignment = changeable.CreateAssignment(import.ResourceData); assignment.SetTemplate(template); // Sort after every assignment so that unassigned images come first import.ResourceData.Images.Sort(comparer); assignments.Add(assignment); } TemplateView templateView = new TemplateView(template, assignments); templateView.Initialize(); this.templateViews.Add(templateView); } } if (this.templateViews != null) { foreach (TemplateView view in this.templateViews) { view.OnGUI(); } if (GUILayout.Button("Export", GUILayout.Width(100))) { foreach (TemplateView view in this.templateViews) { Templates.PrefabTemplate template = view.template; bool required = false; foreach (Assignment assignment in view.assignments) { required |= assignment.PrefabRequired; assignment.Apply(); assignment.Cleanup(); } if (required) { template.MarkRequired(); } template.Cleanup(); } foreach (ImageResource resource in TemplateImport.Instance.ResourceData.Images) { if (resource.Usages <= 0) { Debug.Log("Resource " + resource.sprite.name + " had 0 usages, <color=red>deleting</color>."); resource.DeleteAsset(); } } this.templateViews = null; TemplateImport.Clear(); if (onComplete != null) { onComplete(); onComplete = null; } } } }