public static IEnumerator GetMoldModel( Client client, string formationNamespaceName, string moldModelName, GetMoldModelEvent onGetMoldModel, ErrorEvent onError ) { AsyncResult <EzGetMoldModelResult> result = null; yield return(client.Formation.GetMoldModel( r => { result = r; }, formationNamespaceName, moldModelName )); if (result.Error != null) { onError.Invoke( result.Error ); yield break; } var moldModel = result.Result.Item; onGetMoldModel.Invoke(moldModelName, moldModel); }
public IEnumerator Run( Client client, GameSession session, string formationNamespaceName, string moldModelName, GetMoldModelEvent onGetMoldModel, GetFormEvent onGetForm, UpdateFormEvent onUpdateForm, ErrorEvent onError ) { if (_watching) { throw new InvalidOperationException("already started"); } _watching = true; _client = client; _session = session; _formationNamespaceName = formationNamespaceName; _moldModelName = moldModelName; _onGetMoldModel = onGetMoldModel; _onGetForm = onGetForm; _onUpdateForm = onUpdateForm; _onError = onError; void GetMoldModelAction( string formationNamespaceNameTmp, EzMoldModel moldModel ) { if (formationNamespaceNameTmp != _formationNamespaceName) { return; } _moldModel = moldModel; _onGetMoldModel.RemoveListener(GetMoldModelAction); } _onGetMoldModel.AddListener(GetMoldModelAction); yield return(FormationController.GetMoldModel( _client, formationNamespaceName, moldModelName, onGetMoldModel, onError )); _onGetForm.AddListener(GetFormAction); yield return(Refresh()); }