Exemplo n.º 1
0
        public static void ReloadTextures(EventHandler <LoadProgressUpdatedEventArgs> updateEventHandler)
        {
            ITextureLoadStrategy resourceLoadStrategy;

            if (!LoadingWindowViewModel.Settings.GraphicsIsPackedResource)
            {
                resourceLoadStrategy = new FolderLoadStrategy(LoadingWindowViewModel.Settings.GraphicsFormat);
            }
            else
            {
                resourceLoadStrategy = new TCDLoadStrategy(
                    LoadingWindowViewModel.Settings.GraphicsResourceFile,
                    LoadingWindowViewModel.Settings.GraphicsResourceFilePassword,
                    LoadingWindowViewModel.Settings.GraphicsResourceFileFormat);
            }

            var progressUpdateAction = default(EventHandler <LoadProgressUpdatedEventArgs>);

            progressUpdateAction = (sender, args) =>
            {
                updateEventHandler(sender, args);
                if (args == null)
                {
                    resourceLoadStrategy.ProgressUpdated -= progressUpdateAction;
                }
            };
            resourceLoadStrategy.ProgressUpdated += progressUpdateAction;
            resourceLoadStrategy.Load();

            Constants.TextureLoadStrategy = resourceLoadStrategy;
        }
Exemplo n.º 2
0
        public static void ReloadSound(EventHandler <LoadProgressUpdatedEventArgs> updateEventHandler)
        {
            ISoundLoadStrategy resourceLoadStrategy;

            if (!LoadingWindowViewModel.Settings.SoundIsPackedResource)
            {
                resourceLoadStrategy = new FolderLoadStrategy(LoadingWindowViewModel.Settings.SoundFormat);
            }
            else
            {
                resourceLoadStrategy = new TCDLoadStrategy(
                    LoadingWindowViewModel.Settings.SoundResourceFile,
                    LoadingWindowViewModel.Settings.SoundResourceFilePassword,
                    LoadingWindowViewModel.Settings.SoundResourceFileFormat);
            }

            var progressUpdateAction = default(EventHandler <LoadProgressUpdatedEventArgs>);

            progressUpdateAction = (sender, args) =>
            {
                updateEventHandler(sender, args);
                if (args == null)
                {
                    resourceLoadStrategy.ProgressUpdated -= progressUpdateAction;

                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        Constants.SoundEffects.Clear();
                        var soundEffects = resourceLoadStrategy.GetProvidableFiles();
                        foreach (var se in soundEffects)
                        {
                            Constants.SoundEffects.Add(se);
                        }
                        Constants.SoundEffects.Add("none");
                    });
                }
            };
            resourceLoadStrategy.ProgressUpdated += progressUpdateAction;
            resourceLoadStrategy.Load();

            Constants.SoundLoadStrategy = resourceLoadStrategy;
        }