Пример #1
0
        public static void DeserializeGrid(IMapManagerInternal mapMan, MapId mapId, ref GridId?gridId, YamlMappingNode info,
                                           YamlSequenceNode chunks, IReadOnlyDictionary <ushort, string> tileDefMapping,
                                           ITileDefinitionManager tileDefinitionManager)
        {
            ushort csz  = 0;
            ushort tsz  = 0;
            float  sgsz = 0.0f;

            foreach (var kvInfo in info)
            {
                var key = kvInfo.Key.ToString();
                var val = kvInfo.Value.ToString();
                if (key == "chunksize")
                {
                    csz = ushort.Parse(val);
                }
                else if (key == "tilesize")
                {
                    tsz = ushort.Parse(val);
                }
                else if (key == "snapsize")
                {
                    sgsz = float.Parse(val);
                }
            }

            var grid = mapMan.CreateGridNoEntity(mapId, gridId);

            gridId = grid.Index;

            foreach (var chunkNode in chunks.Cast <YamlMappingNode>())
            {
                DeserializeChunk(mapMan, grid, chunkNode, tileDefMapping, tileDefinitionManager);
            }
        }
        public static void DeserializeGrid(IMapManager mapMan, IMap map, ref GridId?gridId, YamlMappingNode info, YamlSequenceNode chunks)
        {
            ushort csz  = 0;
            ushort tsz  = 0;
            float  sgsz = 0.0f;

            foreach (var kvInfo in info)
            {
                var key = kvInfo.Key.ToString();
                var val = kvInfo.Value.ToString();
                if (key == "csz")
                {
                    csz = ushort.Parse(val);
                }
                else if (key == "tsz")
                {
                    tsz = ushort.Parse(val);
                }
                else if (key == "sgsz")
                {
                    sgsz = float.Parse(val);
                }
            }

            var grid = map.CreateGrid(gridId, csz, sgsz);

            gridId = grid.Index;

            foreach (YamlMappingNode chunkNode in chunks.Cast <YamlMappingNode>())
            {
                DeserializeChunk(mapMan, grid, chunkNode);
            }
        }
        public static void DeserializeGrid(IMapManager mapMan, IMap map, ref GridId?gridId, YamlMappingNode info, YamlSequenceNode chunks, IReadOnlyDictionary <ushort, string> tileDefMapping, ITileDefinitionManager tileDefinitionManager)
        {
            ushort csz      = 0;
            ushort tsz      = 0;
            float  sgsz     = 0.0f;
            var    worldPos = Vector2.Zero;

            foreach (var kvInfo in info)
            {
                var key = kvInfo.Key.ToString();
                var val = kvInfo.Value.ToString();
                if (key == "chunksize")
                {
                    csz = ushort.Parse(val);
                }
                else if (key == "tilesize")
                {
                    tsz = ushort.Parse(val);
                }
                else if (key == "snapsize")
                {
                    sgsz = float.Parse(val);
                }
                else if (key == "worldpos")
                {
                    worldPos = kvInfo.Value.AsVector2();
                }
            }

            var grid = map.CreateGrid(gridId, csz, sgsz);

            gridId = grid.Index;

            foreach (YamlMappingNode chunkNode in chunks.Cast <YamlMappingNode>())
            {
                DeserializeChunk(mapMan, grid, chunkNode, tileDefMapping, tileDefinitionManager);
            }
        }
Пример #4
0
        public static MapGrid DeserializeGrid(IMapManagerInternal mapMan, MapId mapId, YamlMappingNode info,
                                              YamlSequenceNode chunks, IReadOnlyDictionary <ushort, string> tileDefMapping,
                                              ITileDefinitionManager tileDefinitionManager)
        {
            ushort csz  = 0;
            ushort tsz  = 0;
            float  sgsz = 0.0f;

            foreach (var kvInfo in info)
            {
                var key = kvInfo.Key.ToString();
                var val = kvInfo.Value.ToString();
                if (key == "chunksize")
                {
                    csz = ushort.Parse(val);
                }
                else if (key == "tilesize")
                {
                    tsz = ushort.Parse(val);
                }
                else if (key == "snapsize")
                {
                    sgsz = float.Parse(val, CultureInfo.InvariantCulture);
                }
            }

            //TODO: Pass in options
            var grid = mapMan.CreateUnboundGrid(mapId);

            foreach (var chunkNode in chunks.Cast <YamlMappingNode>())
            {
                DeserializeChunk(mapMan, grid, chunkNode, tileDefMapping, tileDefinitionManager);
            }

            return(grid);
        }