public string LoadItemDict(List <CocoDressItemHolder> itemHolders, Action <Dictionary <CocoDressItemHolder, List <GameObject> > > finishAction, string requestId = "") { if (itemHolders == null || itemHolders.Count <= 0) { Debug.LogErrorFormat("[{0}<{1}>]->LoadItems: item holders is EMPTY !", name, GetType().Name); if (finishAction != null) { finishAction(new Dictionary <CocoDressItemHolder, List <GameObject> > ()); } return(string.Empty); } if (string.IsNullOrEmpty(requestId)) { requestId = NextAnonymousRequestId.ToString(); } if (RequestIsProcessing(requestId)) { Debug.LogErrorFormat("[{0}<{1}>]->LoadItems: request id [{2}] ALREADY exists!", name, GetType().Name, requestId); if (finishAction != null) { finishAction(new Dictionary <CocoDressItemHolder, List <GameObject> > ()); } return(string.Empty); } ListenRequestFinish(); ProcessingRequestDic.Add(requestId, finishAction); dressRequestItemHolderSignal.Dispatch(itemHolders, requestId); return(requestId); }
private void OnDressRequestItemFinish(List <CocoDressItemHolder> itemHolders, string requestId) { if (!RequestIsProcessing(requestId)) { return; } var itemModelsDic = new Dictionary <CocoDressItemHolder, List <GameObject> > (); itemHolders.ForEach(itemHolder => { var models = LoadItemModels(itemHolder); itemHolder.UnloadAsset(); itemModelsDic.Add(itemHolder, models); }); var finishAction = ProcessingRequestDic [requestId]; ProcessingRequestDic.Remove(requestId); if (finishAction != null) { finishAction(itemModelsDic); } }
public bool RequestIsProcessing(string requestId) { return(ProcessingRequestDic.ContainsKey(requestId)); }
public void CancelRequest(string requestId) { ProcessingRequestDic.Remove(requestId); }