/// <summary> /// 更新甲板数据 /// </summary> public static void UpdateDeckRoomGrid() { List <RoomGrid> deckList = new List <RoomGrid>(); foreach (RoomGrid m in m_PutRoom) { RoomGrid Deck = FindNeighbourRoomGrid(m, DIR.UP); if (Deck != null && m_PutRoom.Contains(Deck) == false) { Deck.SetDeckRoomValue(m.upMap); deckList.Add(Deck); } } /* * List<RoomGrid> deckList = new List<RoomGrid>(); * //List<RoomGrid> l = GetTopmostLayerPutRoom(); * foreach(RoomGrid R in l) * { * RoomGrid Deck =FindNeighbourRoomGrid(R,DIR.UP); * if(Deck != null) * { * Deck.SetDeckRoomValue(R.upMap); * deckList.Add(Deck); * } * } */ //获取新增的甲板 for (int i = 0; i < m_DeckRoom.Count;) { RoomGrid R = m_DeckRoom[i]; if (deckList.Contains(R) == true || m_PutRoom.Contains(R) == true) { m_DeckRoom.Remove(R); } else { /*Int2 nMapDownGrid = new Int2(R.mPosRoomGrid.Unit,R.mPosRoomGrid.Layer-1); * RoomGrid rDown = RoomMap.FindRoomGrid(nMapDownGrid,XYSYS.MapGrid); * if(rDown!=null&& m_PutRoom.Contains(rDown) == true) * { * m_DeckRoom.Remove(R); * deckList.Add(R); * } * else*/ i++; } } // //清空新增的甲板数据 foreach (RoomGrid R in m_DeckRoom) { if (m_PutDeckRoom.Contains(R) == false) { R.SetDeckRoomValue(0); } } m_DeckRoom.Clear(); m_DeckRoom.AddRange(deckList); }