Exemplo n.º 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);
            }
        }
Exemplo n.º 2
0
            public MapContext(IMapManagerInternal maps, ITileDefinitionManager tileDefs, IServerEntityManagerInternal entities, IPauseManager pauseManager)
            {
                _mapManager            = maps;
                _tileDefinitionManager = tileDefs;
                _serverEntityManager   = entities;
                _pauseManager          = pauseManager;

                RootNode = new YamlMappingNode();
            }
Exemplo n.º 3
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MapGrid"/> class.
 /// </summary>
 /// <param name="mapManager">Reference to the <see cref="MapManager"/> that will manage this grid.</param>
 /// <param name="gridIndex">Index identifier of this grid.</param>
 /// <param name="chunkSize">The dimension of this square chunk.</param>
 /// <param name="snapSize">Distance in world units between the lines on the conceptual snap grid.</param>
 /// <param name="parentMapId">Parent map identifier.</param>
 internal MapGrid(IMapManagerInternal mapManager, GridId gridIndex, ushort chunkSize, float snapSize,
                  MapId parentMapId)
 {
     _mapManager      = mapManager;
     Index            = gridIndex;
     ChunkSize        = chunkSize;
     SnapSize         = snapSize;
     ParentMapId      = parentMapId;
     LastModifiedTick = CreatedTick = _mapManager.GameTiming.CurTick;
 }
Exemplo n.º 4
0
            public MapContext(IMapManagerInternal maps, ITileDefinitionManager tileDefs, IServerEntityManagerInternal entities,
                              IPauseManager pauseManager, YamlMappingNode node, MapId targetMapId)
            {
                _mapManager            = maps;
                _tileDefinitionManager = tileDefs;
                _serverEntityManager   = entities;
                _pauseManager          = pauseManager;

                RootNode  = node;
                TargetMap = targetMapId;
            }
Exemplo n.º 5
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);
        }