void OnLoadDataClicked(string fileName) { ClearData(); MapSaveData saveData = MapDataBase.LoadData(fileName); if (saveData == null) { return; } MapManager.Instant.ClearData(); for (int i = 0; i < saveData.blockList.Count; ++i) { MapSaveCoord saveCo = saveData.blockList [i]; MapManager.Instant.SetBlock(new Coord(saveCo.xPos, saveCo.yPos), false); } if (saveData.startCo != null) { OnClickGird(new Coord(saveData.startCo.xPos, saveData.startCo.yPos), MapView.GridType.StartPoint); } if (saveData.endCo != null) { OnClickGird(new Coord(saveData.endCo.xPos, saveData.endCo.yPos), MapView.GridType.EndPoint); } view.RefreshBlock(); }
void OnSaveDataClicked(string fileName) { MapSaveData saveData = new MapSaveData(); if (mHasStartCo) { saveData.startCo = new MapSaveCoord(); saveData.startCo.xPos = mStartCo.xPos; saveData.startCo.yPos = mStartCo.yPos; } if (mHasEndCo) { saveData.endCo = new MapSaveCoord(); saveData.endCo.xPos = mEndCo.xPos; saveData.endCo.yPos = mEndCo.yPos; } List <Coord> blockList = MapManager.Instant.GetBlockList(); for (int i = 0; i < blockList.Count; ++i) { MapSaveCoord saveCo = new MapSaveCoord(); saveCo.xPos = blockList [i].xPos; saveCo.yPos = blockList [i].yPos; saveData.blockList.Add(saveCo); } MapDataBase.SaveData(saveData, fileName); }
void Start() { MapDataBase.InitDataBase(); Instantiate(Resources.Load <GameObject>("blackFrame")); Instantiate(Resources.Load <GameObject>("bounds")); player = generatPlayer(); world = generateWorld(); player.SetActive(false); }
/// <summary> /// 通过[编号]二分快速查表 /// </summary> /// <param name="dwID">编号</param> /// <returns></returns> public static MapDataBase Query(this List <MapDataBase> sorted, uint dwID) { var key = new MapDataBase() { dwID = dwID }; var comparer = new Comparer1(); var index = sorted.BinarySearch(key, comparer); return(index >= 0 ? sorted[index] : default(MapDataBase)); }
/// <summary> /// Creates a new TileMap /// </summary> /// <param name="mapType"></param> /// <returns></returns> public bool CreateNewMap(MapDataBase.MAPS mapType) { // Create new Tilemap, parented under and positioned at m_GridGO GameObject mapObject = MapDataBase.GetInstance().GetMapGO(mapType); mapObject = Instantiate(mapObject, m_GridGO.transform.position, Quaternion.identity, m_GridGO.transform); m_currentMap = mapObject.GetComponent <BaseMapClass>(); // Resize the layout Array int totalSize = m_currentMap.GetTileMapSize().x *m_currentMap.GetTileMapSize().y; m_GridTakenArray.Clear(); m_GridTakenArray.Capacity = totalSize; // Set the capactiy to prevent calling Array.Resize() multiple times for (int i = 0; i < totalSize; ++i) { m_GridTakenArray.Add(false); } // Center the Camera to the map Vector3 centerMapWorldPos = m_GridGO.CellToWorld((Vector3Int)m_currentMap.GetTileMapSize() / 2); centerMapWorldPos += m_GridGO.cellSize * 0.5f; centerMapWorldPos.z = -10.0f; Camera.main.transform.position = centerMapWorldPos; // Fire the Map Generated Event OnMapGenerated(); //Get starting route from one of the routes build at spawn List <MapStartingBuildings> startingBuildingsList = m_currentMap.GetStartingBuildings(); Vector2Int mainRoadPos = Vector2Int.zero; foreach (MapStartingBuildings startingbuild in startingBuildingsList) { if (startingbuild.buildingID == BuildingDataBase.BUILDINGS.B_ROAD) { mainRoadPos = startingbuild.spawnGridPositions[0]; break; } } m_RoadManager.Init(m_currentMap.GetTileMapSize(), mainRoadPos); return(true); }
/// <summary> /// 设置地图名称 /// </summary> /// <param name="b">是否显示地图名称</param> /// <param name="lineId">分线</param> public void SetMapName(bool b, uint lineId = 1) { if (place != null) { if (b) { place.gameObject.SetActive(true); MapDataBase mapDataBase = GameTableManager.Instance.GetTableItem <MapDataBase>(this.teamMemberInfo.mapId); if (mapDataBase != null) { string mapName = string.Format("{0}({1}线)", mapDataBase.strName, lineId); place.text = mapName; } } else { place.gameObject.SetActive(false); } } }
void onClickHuntingGrid(HuntingDataBase huntDa) { HuntingDataBase data = huntDa; MonsterID = data.ID; DataManager.Manager <HuntingManager>().MonsterID = MonsterID; if (boss_dic.Count > 0 && boss_dic.ContainsKey(MonsterID)) { NpcDataBase monster = GameTableManager.Instance.GetTableItem <NpcDataBase>(boss_dic[MonsterID].boss_npc_id); if (monster != null) { m_label_BossName.text = monster.strName; MapDataBase map = GameTableManager.Instance.GetTableItem <MapDataBase>(data.mapID); m_label_mapLabel.text = map.strName; } } ShowModel(data); onClick_DropBtn_Btn(data); m_label_LieHunNum.text = data.HuntingScore.ToString(); }
void ShowIconOnMap(MapDataBase mdb) { if (mdb == null) { return; } List <NPCInfo> transList = DataManager.Manager <MapDataManager>().GetTransmitList(); for (int i = 0; i < transList.Count; i++) { NPCInfo npc = transList[i]; AddShowIcon(npc.pos.x, npc.pos.y, "tubiao_chuansongdian"); } string mapInfo = mdb.mapinfo; if (string.IsNullOrEmpty(mapInfo)) { return; } string[] infoArray = mapInfo.Split(','); for (int i = 0; i < infoArray.Length; i++) { string info = infoArray[i]; string[] strArray = info.Split(';'); if (strArray.Length != 3) { Log.Error("长度不符合规定"); return; } Vector3 iconPos = Vector3.zero; float x, y; if (float.TryParse(strArray[0], out x)) { if (float.TryParse(strArray[1], out y)) { AddShowIcon(x, y, strArray[2]); } } } }
private void Awake() { if (m_Instance != null) { Destroy(gameObject); return; } m_Instance = this; DontDestroyOnLoad(gameObject); // Check for duplicates int counter; for (int i = 0; i < (int)MAPS.M_TOTAL; ++i) { counter = 0; foreach (MapDataEntry dataEntry in listOfMaps) { if (dataEntry.GetMapID() == (MAPS)i) { counter++; } } if (counter > 1) { Debug.LogError("Duplicate Enum ID in MAP Database!!"); return; } } // If no duplicates, convert to Dictionary foreach (MapDataEntry dataEntry in listOfMaps) { dictOfMaps[dataEntry.GetMapID()] = dataEntry.GetMapObject(); } listOfMaps.Clear(); }
void ResetBtnBgPosition(MapBtnType type) { m_ctor_bgContent.SetVisible(true); m_btn_ColliderMask.gameObject.SetActive(true); TransferChildTypeDataBase tab = GameTableManager.Instance.GetTableItem <TransferChildTypeDataBase>((uint)type); if (tab == null) { Engine.Utility.Log.Error("传送表格找不到对应的表格数据ID{0}", (uint)type); return; } mapID.Clear(); mapData.Clear(); string[] ids = tab.MapIDList.Split('_'); uint id = 0; for (int i = 0; i < ids.Length; i++) { if (uint.TryParse(ids[i], out id)) { mapID.Add(id); } } if (mapID.Count == 1) { GotoMap((int)mapID[0]); return; } for (int j = 0; j < mapID.Count; j++) { MapDataBase map = GameTableManager.Instance.GetTableItem <MapDataBase>(mapID[j]); if (map != null) { mapData.Add(map); } } m_ctor_bgContent.CreateGrids(mapData.Count); isShowingGird = true; m_btn_ColliderMask.gameObject.SetActive(true); Vector3 vec = Vector3.zero; switch (type) { case MapBtnType.ChangShengDian: { vec = new Vector3(330, -240, 0); } break; case MapBtnType.JiuYouDiGong: { vec = new Vector3(155, -150, 0); } break; case MapBtnType.WanJieKu: { vec = new Vector3(250, -20, 0); } break; case MapBtnType.WuWangHai: { vec = new Vector3(100, 150, 0); } break; } AdjustBgPosition(vec, mapID.Count); }