99using ColorMC . Core ;
1010using ColorMC . Core . Objs ;
1111using ColorMC . Gui . Manager ;
12+ using ColorMC . Gui . Objs ;
1213using ColorMC . Gui . UI . Model . Items ;
1314using ColorMC . Gui . UIBinding ;
1415using ColorMC . Gui . Utils ;
@@ -205,7 +206,7 @@ public void Drop(IDataTransfer data)
205206 /// 设置游戏实例项目
206207 /// </summary>
207208 /// <param name="list"></param>
208- public void SetItems ( List < GameSettingObj > list )
209+ public SetGamesRes ? SetItems ( List < GameSettingObj > list )
209210 {
210211 var remove = new List < Guid > ( ) ;
211212 var ins = new List < GameSettingObj > ( ) ;
@@ -229,28 +230,31 @@ public void SetItems(List<GameSettingObj> list)
229230 remove . Add ( item ) ;
230231 }
231232
233+ //完全空的组,不会存在这样的情况
232234 if ( GameList . Count == 0 || GameList . Count - 1 < 0 )
233235 {
234- return ;
236+ return null ;
235237 }
236238 GameList . RemoveAt ( GameList . Count - 1 ) ;
237239
240+ var res = new SetGamesRes ( ) ;
241+
238242 foreach ( var item in remove )
239243 {
240- Items . Remove ( item ) ;
241- var model = GameList . FirstOrDefault ( item1 => item1 . Obj . UUID == item ) ;
242- if ( model != null )
244+ if ( Items . Remove ( item , out var item1 ) )
243245 {
244- model . Close ( ) ;
245- GameList . Remove ( model ) ;
246+ GameList . Remove ( item1 ) ;
247+ res . Removes . Add ( item1 ) ;
248+ item1 . Close ( ) ;
246249 }
247250 }
248251
249252 //筛选添加的内容
250253 foreach ( var item in ins )
251254 {
252- var model1 = new GameItemModel ( Window , Top , item ) ;
253- Items . Add ( item . UUID , model1 ) ;
255+ var model = new GameItemModel ( Window , Top , item ) ;
256+ Items . Add ( item . UUID , model ) ;
257+ res . Adds . Add ( model ) ;
254258 }
255259
256260 Task . Run ( ( ) =>
@@ -269,6 +273,8 @@ public void SetItems(List<GameSettingObj> list)
269273 GameList . Add ( _addItem ) ;
270274 } ) ;
271275 } ) ;
276+
277+ return res ;
272278 }
273279
274280 public override void Close ( )
0 commit comments