Files
@ d6859ea7177f
Branch filter:
Location: ATITD-Tools/Desert-Paint-Codex/ViewModels/WelcomeViewModel.cs - annotation
d6859ea7177f
1.6 KiB
text/x-csharp
Add some sanity checks on min/max concentration and min/max reagents in recipe generation. Also, clear out the search queue when generation has finished so the queue isn't loaded next time. This fixes the start/resume button state when entering the recipe generator after a prior run had finished.
40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 7117d2e703c8 7117d2e703c8 7117d2e703c8 7117d2e703c8 7117d2e703c8 7117d2e703c8 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 7117d2e703c8 7117d2e703c8 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 40eaee10ae56 | using System;
using System.Reactive;
using System.Reactive.Linq;
using DesertPaintCodex.Services;
using ReactiveUI;
namespace DesertPaintCodex.ViewModels
{
public class WelcomeViewModel : ViewModelBase
{
private SelectProfileViewModel? _selectProfileVM;
private CreateProfileViewModel? _createProfileVM;
private ViewModelBase? _profileActivity;
public ViewModelBase? ProfileActivity { get => _profileActivity; private set => this.RaiseAndSetIfChanged(ref _profileActivity, value); }
public WelcomeViewModel()
{
FinishWelcome = ReactiveCommand.Create(() => { });
if (ProfileManager.HasProfiles())
{
ShowSelectProfile();
}
else
{
ShowCreateProfile();
}
}
private void ShowSelectProfile()
{
_selectProfileVM = new SelectProfileViewModel();
_selectProfileVM.NewProfile.Subscribe(_ => ShowCreateProfile());
Observable.Merge(_selectProfileVM.Ok, _selectProfileVM.Cancel)
.Take(1)
.InvokeCommand(FinishWelcome);
ProfileActivity = _selectProfileVM;
}
private void ShowCreateProfile()
{
_createProfileVM = new CreateProfileViewModel();
Observable.Merge(_createProfileVM.Ok, _createProfileVM.Cancel).Subscribe(_ => ShowSelectProfile());
ProfileActivity = _createProfileVM;
}
public ReactiveCommand<Unit, Unit> FinishWelcome { get; }
}
}
|