1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 06:56:10 +00:00

Refonte création des items

This commit is contained in:
Yan Maniez 2018-07-11 18:34:43 +02:00
parent 514ee67ef9
commit 1b1ab3c303
27 changed files with 824 additions and 129 deletions

View file

@ -62,7 +62,7 @@
<Version>1.60.0</Version>
</PackageReference>
<PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.60.0</Version>
<Version>1.60.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms">
<Version>3.1.0.583944</Version>

View file

@ -179,7 +179,7 @@
<Version>1.60.0</Version>
</PackageReference>
<PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.60.0</Version>
<Version>1.60.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.5" />
<PackageReference Include="Xamarin.Forms">

View file

@ -115,7 +115,7 @@
<Version>1.60.0</Version>
</PackageReference>
<PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.60.0</Version>
<Version>1.60.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms">
<Version>3.1.0.583944</Version>

View file

@ -26,9 +26,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Markdig" Version="0.15.0" />
<PackageReference Include="Markdig" Version="0.15.1" />
<PackageReference Include="SkiaSharp.Svg" Version="1.60.0" />
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.60.0" />
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.60.2" />
<PackageReference Include="Xamarin.Forms" Version="3.1.0.583944" />
</ItemGroup>

View file

@ -1,14 +1,13 @@
using System;
using AideDeJeu.ViewModels;
using AideDeJeu.ViewModels;
using AideDeJeu.Views;
using AideDeJeuLib.Models;
using AideDeJeuLib;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace AideDeJeu
{
public partial class App : Application
public partial class App : Application
{
public App ()

View file

@ -1,5 +1,4 @@
using AideDeJeuLib.Spells;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Xml;

View file

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Text;
using Markdig.Syntax;
namespace AideDeJeuLib.Conditions
namespace AideDeJeuLib
{
public class Condition : Item
{

View file

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Text;
using Markdig.Syntax;
namespace AideDeJeuLib.Models
namespace AideDeJeuLib
{
public class HomeItem : Item
{

View file

@ -3,7 +3,9 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AideDeJeu.Tools;
using Markdig.Syntax;
using Markdig.Syntax.Inlines;
namespace AideDeJeuLib
{
@ -23,7 +25,18 @@ namespace AideDeJeuLib
enumerator.MoveNext();
while (enumerator.Current != null)
{
var item = new Spells.SpellHD();
var block = enumerator.Current;
if(block.IsNewItem())
{
break;
}
enumerator.MoveNext();
}
//enumerator.MoveNext();
while (enumerator.Current != null)
{
var item = enumerator.Current.GetNewItem();
//var item = new Spells.SpellHD();
item.Parse(ref enumerator);
items.Add(item);
//enumerator.MoveNext();

View file

@ -4,7 +4,7 @@ using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Xml;
namespace AideDeJeuLib.Monsters
namespace AideDeJeuLib
{
public abstract class Monster : Item
{

View file

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using Markdig.Syntax;
namespace AideDeJeuLib.Monsters
namespace AideDeJeuLib
{
public class MonsterHD : Monster
{

View file

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using Markdig.Syntax;
namespace AideDeJeuLib.Monsters
namespace AideDeJeuLib
{
public class MonsterVO : Monster
{

View file

@ -5,7 +5,7 @@ using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
namespace AideDeJeuLib.Spells
namespace AideDeJeuLib
{
public abstract class Spell : Item
{

View file

@ -5,8 +5,9 @@ using System.Text;
using System.Text.RegularExpressions;
using AideDeJeu.Tools;
using Markdig.Syntax;
using Markdig.Syntax.Inlines;
namespace AideDeJeuLib.Spells
namespace AideDeJeuLib
{
public class SpellHD : Spell
{
@ -56,20 +57,21 @@ namespace AideDeJeuLib.Spells
{
return
$"# {Name}\n" +
$"{NameVO}\n" +
$"_{LevelType}_\n" +
$"**Temps d'incantation :** {CastingTime}\n" +
$"**Portée :** {Range}\n" +
$"**Composantes :** {Components}\n" +
$"**Durée :** {Duration}\n\n" +
$"- {NameVO}\n" +
$"- _{LevelType}_\n" +
$"- **Temps d'incantation :** {CastingTime}\n" +
$"- **Portée :** {Range}\n" +
$"- **Composantes :** {Components}\n" +
$"- **Durée :** {Duration}\n\n" +
$"{DescriptionHtml}\n\n" +
$"**Source :** {Source}";
$"- **Source :** {Source}";
}
}
public override void Parse(ref ContainerBlock.Enumerator enumerator)
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
@ -89,7 +91,12 @@ namespace AideDeJeuLib.Spells
}
if (block is Markdig.Syntax.ParagraphBlock)
{
if(block.IsNewItem())
{
return;
}
var paragraphBlock = block as Markdig.Syntax.ParagraphBlock;
this.DescriptionHtml += MarkdownExtensions.MarkdownToHtml(paragraphBlock.ToMarkdownString()) + "\n";
////DumpParagraphBlock(paragraphBlock);
//Console.WriteLine(paragraphBlock.IsBreakable);
@ -175,18 +182,6 @@ namespace AideDeJeuLib.Spells
var tableBlock = block as Markdig.Extensions.Tables.Table;
this.DescriptionHtml += "\n\n" + tableBlock.ToMarkdownString() + "\n\n";
}
//if (enumerator.Current is Markdig.Syntax.LinkReferenceDefinitionGroup)
//{
// var linkReferenceDefinitionGroup = enumerator.Current as Markdig.Syntax.LinkReferenceDefinitionGroup;
// var linkReferenceDefinition = linkReferenceDefinitionGroup.FirstOrDefault() as Markdig.Syntax.LinkReferenceDefinition;
// var label = linkReferenceDefinition.Label;
// var title = linkReferenceDefinition.Title;
// var url = linkReferenceDefinition.Url;
// if (label == "//")
// {
// return;
// }
//}
enumerator.MoveNext();
}

View file

@ -4,7 +4,7 @@ using System.Text;
using System.Text.RegularExpressions;
using Markdig.Syntax;
namespace AideDeJeuLib.Spells
namespace AideDeJeuLib
{
public class SpellVO : Spell
{

View file

@ -1,8 +1,5 @@
using AideDeJeuLib;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace AideDeJeu.Tools

View file

@ -1,15 +1,9 @@
using AideDeJeuLib.Spells;
using System;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Linq;
using System.Diagnostics;
using AideDeJeuLib.Monsters;
using Markdig;
using AideDeJeuLib;
using AideDeJeuLib.Conditions;
using Markdig.Syntax;
using Markdig.Syntax.Inlines;
@ -50,49 +44,66 @@ namespace AideDeJeu.Tools
{
var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build();
var document = Markdig.Parsers.MarkdownParser.Parse(md, pipeline);
var block = document.First();
var enumerator = document.GetEnumerator();
try
{
enumerator.MoveNext();
while (enumerator.Current != null)
{
var block = enumerator.Current;
if (enumerator.Current is Markdig.Syntax.ParagraphBlock)
{
var paragraphBlock = enumerator.Current as ParagraphBlock;
var linkInline = paragraphBlock.Inline.FirstChild as LinkInline;
if(linkInline != null)
if(block.IsNewItem())
{
var label = linkInline.Label;
var title = linkInline.Title;
var url = linkInline.Url;
if (title == "")
{
var name = $"AideDeJeuLib.{label}, AideDeJeu";
var type = Type.GetType(name);
var instance = Activator.CreateInstance(type) as Item;
instance.Parse(ref enumerator);
return instance;
}
}
}
if (enumerator.Current is Markdig.Syntax.LinkReferenceDefinitionGroup)
{
var linkReferenceDefinitionGroup = enumerator.Current as Markdig.Syntax.LinkReferenceDefinitionGroup;
var linkReferenceDefinition = linkReferenceDefinitionGroup.FirstOrDefault() as Markdig.Syntax.LinkReferenceDefinition;
var label = linkReferenceDefinition.Label;
var title = linkReferenceDefinition.Title;
var url = linkReferenceDefinition.Url;
if (label == "//")
{
var name = $"AideDeJeuLib.{title}, AideDeJeu";
var type = Type.GetType(name);
var instance = Activator.CreateInstance(type) as Item;
instance.Parse(ref enumerator);
return instance;
var item = block.GetNewItem();
item.Parse(ref enumerator);
return item;
}
}
enumerator.MoveNext();
}
}
finally
{
enumerator.Dispose();
}
return null;
}
public static bool IsNewItem(this Block block)
{
var paragraphBlock = block as ParagraphBlock;
var linkInline = paragraphBlock?.Inline?.FirstChild as LinkInline;
if (linkInline != null)
{
var title = linkInline.Title;
if (title == string.Empty)
{
return true;
}
}
return false;
}
public static Item GetNewItem(this Block block)
{
var paragraphBlock = block as ParagraphBlock;
var linkInline = paragraphBlock?.Inline?.FirstChild as LinkInline;
if (linkInline != null)
{
var label = linkInline.Label;
var title = linkInline.Title;
var url = linkInline.Url;
if (title == string.Empty)
{
var name = $"AideDeJeuLib.{label}, AideDeJeu";
var type = Type.GetType(name);
var instance = Activator.CreateInstance(type) as Item;
return instance;
}
}
return null;
}

View file

@ -1,9 +1,5 @@
using AideDeJeu.Tools;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Input;

View file

@ -5,9 +5,6 @@ using System.Runtime.CompilerServices;
using Xamarin.Forms;
using AideDeJeuLib.Spells;
using AideDeJeuLib.Monsters;
namespace AideDeJeu.ViewModels
{
public class BaseViewModel : INotifyPropertyChanged

View file

@ -1,15 +1,10 @@
using AideDeJeu.Tools;
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
namespace AideDeJeu.ViewModels
{

View file

@ -1,10 +1,4 @@
using AideDeJeu.Tools;
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Xamarin.Forms;
using AideDeJeuLib;
namespace AideDeJeu.ViewModels
{

View file

@ -1,15 +1,12 @@
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using Xamarin.Forms;
using System.Threading;
using System.Linq;
namespace AideDeJeu.ViewModels
{
@ -73,7 +70,7 @@ namespace AideDeJeu.ViewModels
{
resourceName = "AideDeJeu.Data.conditions_vo.md";
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Conditions.Condition>(md);
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
}
break;
case ItemSourceType.ConditionHD:
@ -81,7 +78,7 @@ namespace AideDeJeu.ViewModels
resourceName = "AideDeJeu.Data.conditions_hd.md";
//var md = await Tools.Helpers.GetStringFromUrl("https://raw.githubusercontent.com/Nioux/AideDeJeu/master/Data/spells_hd.md");
var md = await Tools.Helpers.GetResourceStringAsync(resourceName);
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Conditions.Condition>(md);
_AllItems = Tools.MarkdownExtensions.MarkdownToConditions<AideDeJeuLib.Condition>(md);
}
break;
}

View file

@ -1,11 +1,5 @@
using AideDeJeu.Views;
using AideDeJeuLib;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Xamarin.Forms;

View file

@ -1,18 +1,10 @@

using AideDeJeu.ViewModels;
using AideDeJeuLib.Monsters;
using AideDeJeuLib;
using SkiaSharp;
using SkiaSharp.Views.Forms;
using System;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using System.Linq;
using AideDeJeuLib.Spells;
using System.Text;
using System.Globalization;
using AideDeJeuLib;
namespace AideDeJeu.Views
{

View file

@ -1,6 +1,4 @@
using AideDeJeu.ViewModels;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using System;
using System.Linq;
using Xamarin.Forms;

View file

@ -1,10 +1,8 @@
using AideDeJeu.Tools;
using AideDeJeuLib.Monsters;
using AideDeJeuLib.Spells;
using AideDeJeuLib;
using Markdig;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;

File diff suppressed because it is too large Load diff