public void ProceduralHSVFromScratch() { var packname = "scratch"; var twidth = 100; var theight = 300; var hues1 = new float[] { 0.1f, 0.84f }; var hues2 = new float[] { 0.35f, 0.65f }; var saturation = 0.4f; var luminosity = 0.8f; var phsv1 = new ProceduralHSVTileSet(packname + "1", twidth, theight, hues1, saturation, luminosity); var phsv2 = new ProceduralHSVTileSet(packname + "2", twidth + 1, theight + 2, hues2, saturation + 0.11f, luminosity + 0.12f); var serialized1 = phsv1.Serialize(); var serialized2 = phsv2.Serialize(); System.Console.Write(serialized1); StringAssert.Contains(@"packname"": ""scratch1", serialized1); StringAssert.Contains(@"packname"": ""scratch2", serialized2); StringAssert.Contains(@"twidth"": 100", serialized1); StringAssert.Contains(@"twidth"": 101", serialized2); StringAssert.Contains(@"theight"": 302", serialized2); StringAssert.Contains(@"saturation"": 0.4", serialized1); StringAssert.Contains(@"luminosity"": 0.92", serialized2); StringAssert.Contains(@"""hues"": [", serialized1); }
public void RepoFromScratch() { var repo = new TileSetRepo.TileSetRepo(); var repo_string_0ts = repo.Serialize(); var tsr1 = ProceduralHSVTileSet.Default(); tsr1.packname = "unique1"; var tsr2 = ProceduralHSVTileSet.Default(); tsr2.packname = "unique2"; repo.AddTileSet(tsr1); repo.AddTileSet(tsr2); var repo_string_2ts = repo.Serialize(); var repo0 = TileSetRepo.TileSetRepo.DeSerialize(repo_string_0ts); var repo2 = TileSetRepo.TileSetRepo.DeSerialize(repo_string_2ts); // System.Console.WriteLine(String.Format("Repo0 serialization {0}", repo_string_0ts)); // System.Console.WriteLine(String.Format("Repo2 serialization {0}", repo_string_2ts)); Assert.AreEqual(0, repo0.NumberOfTilesets()); Assert.AreEqual(2, repo2.NumberOfTilesets()); StringAssert.Contains("unique1", repo_string_2ts); }
public void TileSetTypeSerialization() { var phsv1 = ProceduralHSVTileSet.Default(); var bmts2 = ChoppedBitmapTileSet.Default(); Assert.AreEqual("ProceduralHSVTileSet", TileSet.DetermineType(phsv1.Serialize())); Assert.AreEqual("ChoppedBitmapTileSet", TileSet.DetermineType(bmts2.Serialize())); }
public void ProceduralHSVDeserialization() { String hsv_string = @"{""twidth"":333,""theight"":300,""hues"":[0.9, 0.99],""saturation"":0.55,""luminosity"":0.123,""packname"":""from_hsv_string""}"; var hsv = ProceduralHSVTileSet.DeSerialize(hsv_string); Assert.AreEqual(hsv.twidth, 333); Assert.AreEqual(hsv.theight, 300); Assert.AreEqual(hsv.hues[1], 0.99f); Assert.AreEqual(hsv.saturation, 0.55f); Assert.AreEqual(hsv.luminosity, 0.123f); Assert.AreEqual(hsv.packname, "from_hsv_string"); }
/// <summary> /// Initialize/Construct a TileSetRepo via de-serialization from json. /// </summary> /// <returns>A de-serialized instance.</returns> /// <param name="serialized">JSon representation of Serialized object.</param> public static TileSetRepo DeSerialize(String serialized) { var tsr = new TileSetRepo(); JsonConvert.PopulateObject(serialized, tsr); foreach (Dictionary <String, String> tset_data in tsr.serialized_tsets) { String tset_type = tset_data["tset_type"]; String tset_serialized = tset_data["tset_serialized"]; if (tset_type == "ProceduralHSVTileSet") { tsr.AddTileSet(ProceduralHSVTileSet.DeSerialize(tset_serialized)); } System.Console.WriteLine(String.Format("type {0}, ser {1}", tset_type, tset_serialized)); } return(tsr); }
/// <summary> /// Loads the tset file. /// </summary> /// <param name="abspath">Abspath.</param> /// <param name="population">Population.</param> private static void LoadTsetFile(String abspath, List <ITileSet> population) { var jsonstr = System.IO.File.ReadAllText(abspath); var tileset_type = TileSetTypes.TileSet.DetermineType(jsonstr); switch (tileset_type) { case "ProceduralHSVTileSet": population.Add(ProceduralHSVTileSet.DeSerialize(jsonstr)); break; case "ChoppedBitmapTileSet": var tileset = ChoppedBitmapTileSet.DeSerialize(jsonstr); var origin = Path.GetDirectoryName(abspath); System.Console.WriteLine("Setting tileset '{0} 'origin to '{1}'", tileset.PackName(), origin); tileset.SetOriginPath(origin); population.Add(tileset); break; default: throw new JsonException(String.Format("Could not determine tileset type from file {0}", abspath)); } }