mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-12-16 15:19:56 +00:00
Déplacements
This commit is contained in:
parent
73dc2a2a20
commit
2bb2173f01
39 changed files with 107 additions and 72 deletions
|
|
@ -50,22 +50,22 @@
|
|||
<Compile Update="Views\AboutPage.xaml.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Update="Views\ItemDetailPage.xaml.cs">
|
||||
<Compile Update="Views\Library\ItemDetailPage.xaml.cs">
|
||||
<DependentUpon>ItemDetailPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Views\FilteredItemsPage.xaml.cs">
|
||||
<Compile Update="Views\Library\FilteredItemsPage.xaml.cs">
|
||||
<DependentUpon>FilteredItemsPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Views\ItemsPage.xaml.cs">
|
||||
<Compile Update="Views\Library\ItemsPage.xaml.cs">
|
||||
<DependentUpon>ItemsPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Views\MainTabbedPage.xaml.cs">
|
||||
<Compile Update="Views\Library\MainTabbedPage.xaml.cs">
|
||||
<DependentUpon>MainTabbedPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Views\ItemPicker.xaml.cs">
|
||||
<Compile Update="Views\PlayerCharacter\ItemPicker.xaml.cs">
|
||||
<DependentUpon>ItemPicker.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Views\ItemPickerView.xaml.cs">
|
||||
<Compile Update="Views\PlayerCharacter\ItemPickerView.xaml.cs">
|
||||
<DependentUpon>ItemPickerView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
|
@ -85,10 +85,10 @@
|
|||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\BookmarksPage.xaml">
|
||||
<EmbeddedResource Update="Views\Library\BookmarksPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\DeepSearchPage.xaml">
|
||||
<EmbeddedResource Update="Views\Library\DeepSearchPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\MainNavigationPage.xaml">
|
||||
|
|
@ -100,16 +100,16 @@
|
|||
<EmbeddedResource Update="Views\MainShell.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\MainTabbedPage.xaml">
|
||||
<EmbeddedResource Update="Views\Library\MainTabbedPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\PlayerCharacterEditorPage.xaml">
|
||||
<EmbeddedResource Update="Views\PlayerCharacter\PlayerCharacterEditorPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\StringPicker.xaml">
|
||||
<EmbeddedResource Update="Views\PlayerCharacter\StringPicker.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\StringPickerView.xaml">
|
||||
<EmbeddedResource Update="Views\PlayerCharacter\StringPickerView.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Views\TextInputCancellableView.xaml">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using AideDeJeu.Views;
|
||||
using AideDeJeuLib;
|
||||
using System.Linq;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
|
|
|
|||
35
AideDeJeu/AideDeJeu/Models/Items/Attribute.cs
Normal file
35
AideDeJeu/AideDeJeu/Models/Items/Attribute.cs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Text;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class ItemAttribute
|
||||
{
|
||||
public ItemAttribute(string key, string value)
|
||||
{
|
||||
Key = key;
|
||||
Value = value;
|
||||
}
|
||||
public string Key { get; set; }
|
||||
public string Value { get; set; }
|
||||
|
||||
public static OrderedDictionary ExtractKeyValues(OrderedDictionary attributes)
|
||||
{
|
||||
var dico = new OrderedDictionary();
|
||||
foreach (string akey in attributes.Keys)
|
||||
{
|
||||
if (akey.EndsWith("Key"))
|
||||
{
|
||||
var key = akey.Substring(0, akey.Length - 3);
|
||||
if (attributes.Contains(key + "Value"))
|
||||
{
|
||||
dico[key] = new ItemAttribute(attributes[key + "Key"] as string, attributes[key + "Value"] as string);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dico;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using SQLite;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -349,16 +350,6 @@ namespace AideDeJeuLib
|
|||
return $"{Name} ({NewId})";
|
||||
}
|
||||
|
||||
public class Attribute
|
||||
{
|
||||
public Attribute(string key, string value)
|
||||
{
|
||||
Key = key;
|
||||
Value = value;
|
||||
}
|
||||
public string Key { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
[NotMapped]
|
||||
[IgnoreDataMember]
|
||||
public virtual OrderedDictionary Attributes { get; set; } = new OrderedDictionary();
|
||||
|
|
@ -367,19 +358,7 @@ namespace AideDeJeuLib
|
|||
{
|
||||
get
|
||||
{
|
||||
var dico = new OrderedDictionary();
|
||||
foreach (string akey in Attributes.Keys)
|
||||
{
|
||||
if (akey.EndsWith("Key"))
|
||||
{
|
||||
var key = akey.Substring(0, akey.Length - 3);
|
||||
if (Attributes.Contains(key + "Value"))
|
||||
{
|
||||
dico[key] = new Attribute(Attributes[key + "Key"] as string, Attributes[key + "Value"] as string);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dico;
|
||||
return ItemAttribute.ExtractKeyValues(Attributes);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ using System.Runtime.Serialization;
|
|||
using System.Text;
|
||||
using YamlDotNet.Serialization;
|
||||
using System.Linq;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ using System.Windows.Input;
|
|||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Internals;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.Library
|
||||
{
|
||||
public class BookmarksViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
|||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.Library
|
||||
{
|
||||
public class DeepSearchViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -6,7 +6,7 @@ using System.Threading;
|
|||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.Library
|
||||
{
|
||||
public abstract class FilterViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using AideDeJeuLib;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.Library
|
||||
{
|
||||
public class ItemDetailViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.Library
|
||||
{
|
||||
public class ItemsViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.Tools;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using AideDeJeu.Views;
|
||||
using AideDeJeuLib;
|
||||
using Rg.Plugins.Popup.Services;
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ using System.Threading.Tasks;
|
|||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.PlayerCharacter
|
||||
{
|
||||
public class PlayerCharacterEditorViewModel : BaseViewModel
|
||||
{
|
||||
public PlayerCharacterEditorViewModel()
|
||||
{
|
||||
ResetAlignments();
|
||||
Races = new NotifyTaskCompletion<List<ExpandedRaceItem>>(Task.Run(() => LoadRacesAsync()));
|
||||
Races = new NotifyTaskCompletion<List<RaceViewModel>>(Task.Run(() => LoadRacesAsync()));
|
||||
Classes = new NotifyTaskCompletion<List<ClassItem>>(Task.Run(() => LoadClassesAsync()));
|
||||
|
||||
Backgrounds = new NotifyTaskCompletion<List<BackgroundItem>>(Task.Run(() => LoadBackgroundsAsync()));
|
||||
|
|
@ -149,7 +149,7 @@ namespace AideDeJeu.ViewModels
|
|||
#endregion Alignment
|
||||
|
||||
#region Race
|
||||
public NotifyTaskCompletion<List<ExpandedRaceItem>> Races { get; private set; }
|
||||
public NotifyTaskCompletion<List<RaceViewModel>> Races { get; private set; }
|
||||
private int _RaceSelectedIndex = -1;
|
||||
public int RaceSelectedIndex
|
||||
{
|
||||
|
|
@ -166,8 +166,8 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
}
|
||||
private ExpandedRaceItem _SelectedRace = null;
|
||||
public ExpandedRaceItem SelectedRace
|
||||
private RaceViewModel _SelectedRace = null;
|
||||
public RaceViewModel SelectedRace
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -180,19 +180,19 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public class ExpandedRaceItem : RaceItem
|
||||
public class RaceViewModel : BaseViewModel
|
||||
{
|
||||
public RaceItem Race { get; set; }
|
||||
public SubRaceItem SubRace { get; set; }
|
||||
|
||||
private RaceItem RaceOrSubRace { get { return SubRace ?? Race; } }
|
||||
public override string Name { get { return RaceOrSubRace.Name; } }
|
||||
public override string Description { get { return RaceOrSubRace.Description; } }
|
||||
public override string NewId { get { return RaceOrSubRace.NewId; } }
|
||||
public override string Id { get { return RaceOrSubRace.Id; } }
|
||||
public override string RootId { get { return RaceOrSubRace.RootId; } }
|
||||
public string Name { get { return RaceOrSubRace.Name; } }
|
||||
public string Description { get { return RaceOrSubRace.Description; } }
|
||||
public string NewId { get { return RaceOrSubRace.NewId; } }
|
||||
public string Id { get { return RaceOrSubRace.Id; } }
|
||||
public string RootId { get { return RaceOrSubRace.RootId; } }
|
||||
|
||||
public override string AbilityScoreIncrease
|
||||
public string AbilityScoreIncrease
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -203,7 +203,7 @@ namespace AideDeJeu.ViewModels
|
|||
return Race.AbilityScoreIncrease;
|
||||
}
|
||||
}
|
||||
public override OrderedDictionary Attributes
|
||||
public OrderedDictionary Attributes
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -224,18 +224,26 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public override string Age { get { return Race.Age; } }
|
||||
public override string Alignment { get { return Race.Alignment; } }
|
||||
public override string Size { get { return Race.Size; } }
|
||||
public override string Speed { get { return Race.Speed; } }
|
||||
public override string Darkvision { get { return Race.Darkvision; } }
|
||||
public override string Languages { get { return Race.Languages; } }
|
||||
public virtual OrderedDictionary AttributesKeyValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return AideDeJeuLib.ItemAttribute.ExtractKeyValues(Attributes);
|
||||
}
|
||||
}
|
||||
|
||||
public string Age { get { return Race.Age; } }
|
||||
public string Alignment { get { return Race.Alignment; } }
|
||||
public string Size { get { return Race.Size; } }
|
||||
public string Speed { get { return Race.Speed; } }
|
||||
public string Darkvision { get { return Race.Darkvision; } }
|
||||
public string Languages { get { return Race.Languages; } }
|
||||
}
|
||||
public async Task<List<ExpandedRaceItem>> LoadRacesAsync()
|
||||
public async Task<List<RaceViewModel>> LoadRacesAsync()
|
||||
{
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
var expandedRaces = new List<ExpandedRaceItem>();
|
||||
var expandedRaces = new List<RaceViewModel>();
|
||||
var races = context.Races.Where(r => r.GetType() == typeof(RaceItem));
|
||||
foreach(var race in races)
|
||||
{
|
||||
|
|
@ -244,12 +252,12 @@ namespace AideDeJeu.ViewModels
|
|||
var subraces = context.SubRaces.Where(sr => sr.ParentLink == race.Id);
|
||||
foreach(var subrace in subraces)
|
||||
{
|
||||
expandedRaces.Add(new ExpandedRaceItem() { Race = race, SubRace = subrace });
|
||||
expandedRaces.Add(new RaceViewModel() { Race = race, SubRace = subrace });
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
expandedRaces.Add(new ExpandedRaceItem() { Race = race, SubRace = null });
|
||||
expandedRaces.Add(new RaceViewModel() { Race = race, SubRace = null });
|
||||
}
|
||||
}
|
||||
return expandedRaces.OrderBy(r => Tools.Helpers.RemoveDiacritics(r.Name)).ToList();
|
||||
|
|
@ -3,7 +3,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace AideDeJeu.ViewModels
|
||||
namespace AideDeJeu.ViewModels.PlayerCharacter
|
||||
{
|
||||
public class PlayerCharacterViewModel : BaseViewModel
|
||||
{
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using AideDeJeuLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -7,7 +8,7 @@ using System.Threading.Tasks;
|
|||
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using static AideDeJeu.ViewModels.DeepSearchViewModel;
|
||||
using static AideDeJeu.ViewModels.Library.DeepSearchViewModel;
|
||||
|
||||
namespace AideDeJeu.Views
|
||||
{
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Xamarin.Forms;
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using AideDeJeuLib;
|
||||
using SkiaSharp;
|
||||
using SkiaSharp.Views.Forms;
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.Library;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Xamarin.Forms;
|
||||
|
|
@ -14,7 +14,7 @@ namespace AideDeJeu.Views
|
|||
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
public partial class ItemPicker : ContentPage
|
||||
{
|
||||
public PickerViewModel<Item> ViewModel { get; set; } = new PickerViewModel<Item>();
|
||||
public PickerViewModel<object> ViewModel { get; set; } = new PickerViewModel<object>();
|
||||
public ItemPicker()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
@ -49,16 +49,16 @@ namespace AideDeJeu.Views
|
|||
typeof(ItemPickerView),
|
||||
defaultValue: default(string));
|
||||
|
||||
public Item SelectedItem
|
||||
public object SelectedItem
|
||||
{
|
||||
get { return (Item)GetValue(SelectedItemProperty); }
|
||||
get { return (object)GetValue(SelectedItemProperty); }
|
||||
set { SetValue(SelectedItemProperty, value); }
|
||||
}
|
||||
public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create(
|
||||
nameof(SelectedItem),
|
||||
typeof(Item),
|
||||
typeof(object),
|
||||
typeof(ItemPickerView),
|
||||
defaultValue: default(Item),
|
||||
defaultValue: default(object),
|
||||
defaultBindingMode: BindingMode.TwoWay);
|
||||
|
||||
public System.Collections.IEnumerable ItemsSource
|
||||
|
|
@ -85,7 +85,7 @@ namespace AideDeJeu.Views
|
|||
return new Command<System.Collections.IList>(async (items) => SelectedItem = await ExecuteItemPickerCommandAsync(items));
|
||||
}
|
||||
}
|
||||
private async Task<Item> ExecuteItemPickerCommandAsync(System.Collections.IEnumerable items)
|
||||
private async Task<object> ExecuteItemPickerCommandAsync(System.Collections.IEnumerable items)
|
||||
{
|
||||
var picker = new Views.ItemPicker();
|
||||
var vm = picker.ViewModel;
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using AideDeJeu.ViewModels.PlayerCharacter;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
Loading…
Add table
Add a link
Reference in a new issue