Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }