From 7e68a3a286ba07d23c60dd22beef92363700c5d2 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Thu, 16 Jan 2020 21:25:11 +0100 Subject: [PATCH] Suite Osgild --- AideDeJeu/AideDeJeuCmd/Program.cs | 53 ++++- Docs/Osgild/ferrance.html | 9 +- Docs/Osgild/ferrance.svg | 28 +++ Docs/Osgild/fourche.html | 7 +- Docs/Osgild/fourche.svg | 23 ++ Docs/Osgild/hauterive.html | 7 +- Docs/Osgild/hauterive.svg | 8 + Docs/Osgild/osgild.body.html | 11 + Docs/Osgild/osgild.html | 8 +- Docs/Osgild/osgild.svg | 383 ++++++++++++++++++++++++++++++ Docs/Osgild/port-sable.html | 7 +- Docs/Osgild/port-sable.svg | 18 ++ Docs/Osgild/scripts.js | 8 + Docs/Osgild/vercelise.html | 7 +- Docs/Osgild/vercelise.svg | 13 + Docs/Osgild/xelys.html | 7 +- Docs/Osgild/xelys.svg | 18 ++ 17 files changed, 582 insertions(+), 33 deletions(-) create mode 100644 Docs/Osgild/ferrance.svg create mode 100644 Docs/Osgild/fourche.svg create mode 100644 Docs/Osgild/hauterive.svg create mode 100644 Docs/Osgild/osgild.body.html create mode 100644 Docs/Osgild/osgild.svg create mode 100644 Docs/Osgild/port-sable.svg create mode 100644 Docs/Osgild/scripts.js create mode 100644 Docs/Osgild/vercelise.svg create mode 100644 Docs/Osgild/xelys.svg diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index f7d66cc2..1bddfd87 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -400,30 +400,67 @@ namespace AideDeJeuCmd } } + static string nsSvg = "http://www.w3.org/2000/svg"; static async Task ConvertMapsAsync() + { + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\osgild"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\ferrance"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\fourche"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\hauterive"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\port-sable"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\vercelise"); + await ConvertMapAsync(@"..\..\..\..\..\Docs\Osgild\xelys"); + } + static async Task ConvertMapAsync(string basename) { HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); - document.Load(@"..\..\..\..\..\Docs\Osgild\ferrance.map.html"); + document.Load($"{basename}.map.html"); var svg = new XmlDocument(); - var svgElt = svg.CreateElement("svg", "http://www.w3.org/2000/svg"); + var svgElt = svg.CreateElement("svg", nsSvg); + svgElt.SetAttribute("style", "fill: transparent"); svg.AppendChild(svgElt); + + var img = document.DocumentNode.SelectSingleNode("img"); + var image = svg.CreateElement("image", nsSvg); + image.SetAttribute("href", img.GetAttributeValue("src", "")); + var width = img.GetAttributeValue("width",""); + var height = img.GetAttributeValue("height", ""); + svgElt.SetAttribute("viewBox", $"0 0 {width} {height}"); + svgElt.AppendChild(image); + var areas = document.DocumentNode.SelectNodes("//area"); foreach(var area in areas) { var coords = area.GetAttributeValue("coords", ""); var coordsSplit = coords.Split(","); - var a = svg.CreateElement("a"); + var a = svg.CreateElement("a", nsSvg); a.SetAttribute("href", area.GetAttributeValue("href", "")); a.SetAttribute("target", area.GetAttributeValue("target", "")); - var rect = svg.CreateElement("rect"); - rect.SetAttribute("x", coordsSplit[0]); - var title = svg.CreateElement("title"); + var shapeAttr = area.GetAttributeValue("shape", ""); + XmlElement shape = null; + if (shapeAttr == "rect") + { + shape = svg.CreateElement("rect", nsSvg); + shape.SetAttribute("x", coordsSplit[0]); + shape.SetAttribute("y", coordsSplit[1]); + shape.SetAttribute("width", (int.Parse(coordsSplit[2]) - int.Parse(coordsSplit[0])).ToString()); + shape.SetAttribute("height", (int.Parse(coordsSplit[3]) - int.Parse(coordsSplit[1])).ToString()); + } + if (shapeAttr == "circle") + { + shape = svg.CreateElement("circle", nsSvg); + shape.SetAttribute("cx", coordsSplit[0]); + shape.SetAttribute("cy", coordsSplit[1]); + shape.SetAttribute("r", coordsSplit[2]); + } + var title = svg.CreateElement("title", nsSvg); title.InnerText = area.GetAttributeValue("alt", ""); - rect.AppendChild(title); - a.AppendChild(rect); + shape.AppendChild(title); + a.AppendChild(shape); svgElt.AppendChild(a); } + svg.Save($"{basename}.svg"); } static async Task ExtractYamlAsync() diff --git a/Docs/Osgild/ferrance.html b/Docs/Osgild/ferrance.html index fba7162b..3d9e0bcf 100644 --- a/Docs/Osgild/ferrance.html +++ b/Docs/Osgild/ferrance.html @@ -1,8 +1,9 @@ - + + - +
 

Ferrance

@@ -13,8 +14,8 @@ Source : Anathazerin p7, S4 Les Faux-Monnayeurs p88 Carte par Romje : - -