public void LoadBlockMap(bool isCreate) { string tagFilePath = GameManager.Instance.GetBlockMapPath(archiveDir); if (!isCreate && File.Exists(tagFilePath)) { using (var streamReader = new StreamReader(tagFilePath)) { string text = streamReader.ReadToEnd(); try { blockMapData = JsonMapper.ToObject <BlockMapData>(text); BlockManager.Instance.UpdateBlockMap(blockMapData); } catch (Exception e) { Debug.LogError(e); blockMapData = BlockManager.Instance.CreateBlockMap(); } } } else { blockMapData = BlockManager.Instance.CreateBlockMap(); } }
/// <summary> /// 翻转键值对 /// </summary> /// <param name="blockMapData"></param> /// <returns></returns> public Dictionary <string, string> GetBlockMapOverturn(BlockMapData blockMapData) { Dictionary <string, string> mapOverturn = new Dictionary <string, string>(); foreach (var item in blockMapData.blockMap) { mapOverturn.Add(item.Value, item.Key); } return(mapOverturn); }
public BlockMapData CreateBlockMap() { BlockMapData blockMapData = new BlockMapData(); blockMapData.blockMap = new Dictionary <string, string>(); int i = 0; foreach (var item in blocks) { blockMapData.blockMap.Add(i.ToString(), item.Value.blockID); i++; } return(blockMapData); }
public void UpdateBlockMap(BlockMapData blockMapData) { if (blockMapData.blockMap == null) { blockMapData.blockMap = new Dictionary <string, string>(); } int i = 0; foreach (var item in blocks) { if (blockMapData.blockMap.ContainsKey(i.ToString())) { i++; continue; } if (blockMapData.blockMap.ContainsValue(item.Value.blockID)) { continue; } i++; } }