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 MapContext(IMapManagerInternal maps, ITileDefinitionManager tileDefs, IServerEntityManagerInternal entities, IPauseManager pauseManager) { _mapManager = maps; _tileDefinitionManager = tileDefs; _serverEntityManager = entities; _pauseManager = pauseManager; RootNode = new YamlMappingNode(); }
/// <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; }
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; }
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); }