mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
3.0.0.3
This commit is contained in:
parent
40917df822
commit
35cabfa540
@ -1,7 +1,10 @@
|
||||
### Changelog
|
||||
|
||||
#### Version - 3.0.0.3 -
|
||||
#### Version - 3.0.0.3 - 8/20/2022
|
||||
* Properly detect the program version
|
||||
* Fix how the download folder is set in MO2 during installation
|
||||
* During compilation, output location is now selected as a folder not a file
|
||||
* Fix several CTD issues inside WJ itself
|
||||
|
||||
#### Version - 3.0.0.2 - 8/19/2022
|
||||
* Be more tolerant of bad picture Urls while validating Nexus Downloads (thanks ForgottenGlory)
|
||||
|
@ -9,6 +9,8 @@ using DynamicData.Binding;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using NLog;
|
||||
using NLog.Targets;
|
||||
using ReactiveUI;
|
||||
using Wabbajack.Extensions;
|
||||
using LogLevel = NLog.LogLevel;
|
||||
|
||||
namespace Wabbajack.Models;
|
||||
@ -34,8 +36,14 @@ public class LogStream : TargetWithLayout
|
||||
.DisposeWith(_disposables);
|
||||
|
||||
Messages
|
||||
.ObserveOnGuiThread()
|
||||
.Subscribe(m => _messageLog.AddOrUpdate(m))
|
||||
.Subscribe(m =>
|
||||
{
|
||||
RxApp.MainThreadScheduler.Schedule(m, (_, message) =>
|
||||
{
|
||||
_messageLog.AddOrUpdate(message);
|
||||
return Disposable.Empty;
|
||||
});
|
||||
})
|
||||
.DisposeWith(_disposables);
|
||||
|
||||
_messages.DisposeWith(_disposables);
|
||||
|
@ -81,6 +81,7 @@ namespace Wabbajack
|
||||
this.WhenAny(x => x.TargetPath)
|
||||
// Dont want to debounce the initial value, because we know it's null
|
||||
.Skip(1)
|
||||
.ObserveOnGuiThread()
|
||||
.Debounce(TimeSpan.FromMilliseconds(200), RxApp.MainThreadScheduler)
|
||||
.StartWith(default(AbsolutePath)),
|
||||
resultSelector: (existsOption, type, path) => (ExistsOption: existsOption, Type: type, Path: path))
|
||||
|
@ -147,11 +147,10 @@ namespace Wabbajack
|
||||
OutputLocation = new FilePickerVM
|
||||
{
|
||||
ExistCheckOption = FilePickerVM.CheckOptions.Off,
|
||||
PathType = FilePickerVM.PathTypeOptions.File,
|
||||
PathType = FilePickerVM.PathTypeOptions.Folder,
|
||||
PromptTitle = "Location where the compiled modlist will be stored"
|
||||
};
|
||||
OutputLocation.Filters.Add(new CommonFileDialogFilter(".wabbajack", "*.wabbajack"));
|
||||
|
||||
|
||||
ModlistLocation.Filters.AddRange(new []
|
||||
{
|
||||
new CommonFileDialogFilter("MO2 Modlist", "*" + Ext.Txt),
|
||||
@ -227,6 +226,8 @@ namespace Wabbajack
|
||||
|
||||
Source = settings.Source;
|
||||
DownloadLocation.TargetPath = settings.Downloads;
|
||||
if (settings.OutputFile.Extension == Ext.Wabbajack)
|
||||
settings.OutputFile = settings.OutputFile.Parent;
|
||||
OutputLocation.TargetPath = settings.OutputFile;
|
||||
SelectedProfile = settings.Profile;
|
||||
PublishUpdate = settings.PublishUpdate;
|
||||
@ -251,6 +252,9 @@ namespace Wabbajack
|
||||
|
||||
var mo2Settings = GetSettings();
|
||||
mo2Settings.UseGamePaths = true;
|
||||
if (mo2Settings.OutputFile.DirectoryExists())
|
||||
mo2Settings.OutputFile = mo2Settings.OutputFile.Combine(mo2Settings.ModListName.ToRelativePath()
|
||||
.WithExtension(Ext.Wabbajack));
|
||||
|
||||
if (PublishUpdate && !await RunPreflightChecks(token))
|
||||
{
|
||||
@ -262,8 +266,8 @@ namespace Wabbajack
|
||||
|
||||
var events = Observable.FromEventPattern<StatusUpdate>(h => compiler.OnStatusUpdate += h,
|
||||
h => compiler.OnStatusUpdate -= h)
|
||||
.Debounce(TimeSpan.FromSeconds(0.5))
|
||||
.ObserveOnGuiThread()
|
||||
.Debounce(TimeSpan.FromSeconds(0.5))
|
||||
.Subscribe(update =>
|
||||
{
|
||||
var s = update.EventArgs;
|
||||
@ -302,12 +306,15 @@ namespace Wabbajack
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
StatusText = "Compilation Failed";
|
||||
StatusProgress = Percent.Zero;
|
||||
RxApp.MainThreadScheduler.Schedule(_logger, (_, _) =>
|
||||
{
|
||||
StatusText = "Compilation Failed";
|
||||
StatusProgress = Percent.Zero;
|
||||
|
||||
|
||||
State = CompilerState.Errored;
|
||||
_logger.LogInformation(ex, "Failed Compilation : {Message}", ex.Message);
|
||||
State = CompilerState.Errored;
|
||||
_logger.LogInformation(ex, "Failed Compilation : {Message}", ex.Message);
|
||||
return Disposable.Empty;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -57,7 +57,7 @@ namespace Wabbajack
|
||||
|
||||
CompilationComplete.GoToModlistButton.Command = ReactiveCommand.Create(() =>
|
||||
{
|
||||
UIUtils.OpenFolder(ViewModel.OutputLocation.TargetPath.Parent);
|
||||
UIUtils.OpenFolder(ViewModel.OutputLocation.TargetPath);
|
||||
}).DisposeWith(disposables);
|
||||
|
||||
ViewModel.WhenAnyValue(vm => vm.BackCommand)
|
||||
@ -169,9 +169,7 @@ namespace Wabbajack
|
||||
|
||||
this.Bind(ViewModel, vm => vm.MachineUrl, view => view.MachineUrl.Text)
|
||||
.DisposeWith(disposables);
|
||||
|
||||
this.Bind(ViewModel, vm => vm.StatusText, view => view.TopProgressBar.Title)
|
||||
.DisposeWith(disposables);
|
||||
|
||||
|
||||
ViewModel.WhenAnyValue(vm => vm.StatusText)
|
||||
.BindToStrict(this, view => view.TopProgressBar.Title)
|
||||
|
@ -55,7 +55,7 @@ public class CompilerSettingsInferencer
|
||||
cs.ModListName = selectedProfile;
|
||||
cs.Profile = selectedProfile;
|
||||
|
||||
cs.OutputFile = cs.Source.Parent.Combine(selectedProfile).WithExtension(Ext.Wabbajack);
|
||||
cs.OutputFile = cs.Source.Parent;
|
||||
|
||||
var settings = iniData["Settings"];
|
||||
cs.Downloads = settings["download_directory"].FromMO2Ini().ToAbsolutePath();
|
||||
|
@ -162,7 +162,7 @@ public class StandardInstaller : AInstaller<StandardInstaller>
|
||||
|
||||
var iniData = iniFile.LoadIniFile();
|
||||
var settings = iniData["Settings"];
|
||||
settings["download_directory"] = _configuration.Downloads.ToString();
|
||||
settings["download_directory"] = _configuration.Downloads.ToString().Replace("\\", "/");
|
||||
iniData.SaveIniFile(iniFile);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user