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; }
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; }