Exemple #1
0
        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);
        }
Exemple #3
0
        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()));
        }
Exemple #4
0
        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));
            }
        }