public IEnumerator GenerateHeightMap( int width, int height, float xOffset, float yOffset, TerrainParameter para, IReturn <float[]> ret) { _width = width; _height = height; _xOffset = xOffset; _yOffset = yOffset; _para = para; _heightMap = new float[_width * _height]; var genLocalMonad = new BlockMonad <float[]>(r => _randPointGen.GenerateRandomLocalAreaMap( width, height, _para.RANDOM_POINT_GEN_PARA, r)); yield return(genLocalMonad.Do()); if (genLocalMonad.Error != null) { ret.Fail(genLocalMonad.Error); yield break; } _localAreaMap = genLocalMonad.Result; yield return(_GenerateHeightMap()); ret.Accept(_heightMap); }
void _MonadCompletionSourceTestTask2(IReturn <int> r) { ThreadPool.QueueUserWorkItem(state => { Thread.Sleep(500); r.Fail(new ArgumentException()); }); }
IEnumerator TestTask2(IReturn <string> ret) { yield return(null); yield return(null); ret.Fail(new System.Exception("error 2")); }
public IEnumerator TestTask6(string failMsg, int iter, IReturn <int> ret) { for (int i = 0; i < iter; ++i) { yield return(null); } ret.Fail(new System.Exception(failMsg)); }
public IEnumerator ChangeToNextWeather(IReturn <float[]> ret) { if (_para == null || _weatherMap == null) { ret.Fail(new System.Exception("Need Initial / Need Parameter")); yield break; } NextRandom(); yield return(_GenerateWeatherMap()); ret.Accept(_weatherMap); }
IEnumerator _FirstCompletedTestTask3(IReturn <int> ret) { yield return(null); ret.Fail(new System.Exception("3")); }