public static YamlMappingNode SerializeGrid(IMapGrid grid)
        {
            var gridn    = new YamlMappingNode();
            var info     = new YamlMappingNode();
            var chunkSeq = new YamlSequenceNode();

            gridn.Add("settings", info);
            gridn.Add("chunks", chunkSeq);

            info.Add("csz", grid.ChunkSize.ToString(CultureInfo.InvariantCulture));
            info.Add("tsz", grid.TileSize.ToString(CultureInfo.InvariantCulture));
            info.Add("sgsz", grid.SnapSize.ToString(CultureInfo.InvariantCulture));

            var chunks = grid.GetMapChunks();

            foreach (var chunk in chunks)
            {
                var chunkNode = SerializeChunk(chunk);
                chunkSeq.Add(chunkNode);
            }

            var root = new YamlMappingNode();

            root.Add("grid", gridn);
            return(root);
        }
        public static YamlMappingNode SerializeGrid(IMapGrid grid)
        {
            var gridn    = new YamlMappingNode();
            var info     = new YamlMappingNode();
            var chunkSeq = new YamlSequenceNode();

            gridn.Add("settings", info);
            gridn.Add("chunks", chunkSeq);

            info.Add("chunksize", grid.ChunkSize.ToString(CultureInfo.InvariantCulture));
            info.Add("tilesize", grid.TileSize.ToString(CultureInfo.InvariantCulture));
            info.Add("snapsize", grid.SnapSize.ToString(CultureInfo.InvariantCulture));
            info.Add("worldpos", $"{grid.WorldPosition.X},{grid.WorldPosition.Y}");

            var chunks = grid.GetMapChunks();

            foreach (var chunk in chunks)
            {
                var chunkNode = SerializeChunk(chunk);
                chunkSeq.Add(chunkNode);
            }

            return(gridn);
        }