public async void Load() { var dir = DirectoryHelper.FindSubDirectory( @"resources\icon\job"); if (!Directory.Exists(dir)) { return; } await WPFHelper.InvokeAsync(() => { foreach (var job in (JobIDs[])Enum.GetValues(typeof(JobIDs))) { var png = Path.Combine(dir, $"{job}.png"); if (!File.Exists(png)) { continue; } var bmp = default(WriteableBitmap); using (var ms = new WrappingStream(new MemoryStream(File.ReadAllBytes(png)))) { bmp = new WriteableBitmap(BitmapFrame.Create(ms)); } bmp.Freeze(); this.Icons[job] = bmp; } }); this.isLoaded = true; }
public static bool IsValidPluginLoadOrder() { lock (LockObject) { if (isCheckedLoadOrder) { return(isLastValidPluginLoadOrder); } var isExistsXIVPlugin = false; foreach (var plugin in ActGlobals.oFormActMain.ActPlugins) { if (plugin.pluginFile.Name.ContainsIgnoreCase("FFXIV_ACT_Plugin")) { isExistsXIVPlugin = true; } if (plugin.pluginFile.Name.ContainsIgnoreCase("ACT.SpecialSpellTimer") || plugin.pluginFile.Name.ContainsIgnoreCase("ACT.TTSYukkuri") || plugin.pluginFile.Name.ContainsIgnoreCase("ACT.UltraScouter")) { isLastValidPluginLoadOrder = isExistsXIVPlugin; break; } } isCheckedLoadOrder = true; } if (!isLastValidPluginLoadOrder) { WPFHelper.InvokeAsync(() => { ModernMessageBox.ShowDialog( "Plugin load order is wrong.\n" + "Please load FFXIV_ACT_Plugin before Hojoring.\n\n" + "ex.\n" + "1. FFXIV_ACT_Plugin\n" + "2. ACT.TTSYukkuri\n" + "3. ACT.SpecialSpellTimer\n" + "4. ACT.UltraScouter\n", "Plugin Load Error"); }); } return(isLastValidPluginLoadOrder); }
public async void Load() { var dir = DirectoryHelper.FindSubDirectory( @"resources\icon\job"); if (!Directory.Exists(dir)) { return; } await WPFHelper.InvokeAsync(() => { foreach (var job in (JobIDs[])Enum.GetValues(typeof(JobIDs))) { var png = Path.Combine(dir, $"{job}.png"); if (!File.Exists(png)) { continue; } using (var fs = new FileStream(png, FileMode.Open)) { var decoder = PngBitmapDecoder.Create( fs, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); var bmp = new WriteableBitmap(decoder.Frames[0]); bmp.Freeze(); this.Icons[job] = bmp; } } }); this.isLoaded = true; }