void OnFlowNodeSignal(FlowNode node, PropertyInfo signal)
        {
            if (node.GetType() != typeof(RunScene) || signal.Name != "OnStart")
            {
                return;
            }
            var runScene = node as RunScene;

            if (runScene.SceneName == "ChoiceDialog")
            {
                _currentScene = new ChoiceDialogScene(runScene, _canvas);
                _currentScene.OnSignalQuit += (n) =>
                {
                    _currentScene = null;
                    if (n.Return == "Exit")
                    {
                        Shutdown();
                    }
                };
            }
            else if (runScene.SceneName == "GoCloseup")
            {
                var targetEntity = Global.gEnv.pEntitySystem.FindEntityByName("ThePlane");
                _currentScene = new CameraGoToScene(runScene, targetEntity, new Vec3(0.6f, -1.5f, 3.5f) / 6);
                _currentScene.OnSignalQuit += (n) => _currentScene = null;
            }
        }
 public void OnDestroy()
 {
     if (_currentScene != null)
     {
         _currentScene.Cleanup();
     }
     _currentScene = null;
     Mouse.HideCursor();
 }
Example #3
0
        static async Task Main(string[] args)
        {
            var data   = new List <string>();
            var client = new System.Net.Http.HttpClient
            {
                BaseAddress = new Uri("https://jsonplaceholder.typicode.com")
            };

            var flow = FlowBuilder
                       .When <ExecuteHttpRequest <string, string>, string, string>(builder =>
            {
                builder.HttpClientFactory = () => client;
                builder.Action            = (id, client) => client.GetStringAsync("posts/" + id);
            })
                       .Then <WriteTo <string>, string>(builder =>
            {
                builder.Action = d =>
                {
                    data.Add(d);
                    return(Task.CompletedTask);
                };
            })
                       .Then <ConvertTo <string, string>, string>(builder =>
            {
                builder.Converter = value =>
                {
                    var userId = JsonDocument.Parse(value).RootElement.GetProperty("userId").GetInt32().ToString();
                    return(Task.FromResult(userId.ToString()));
                };
            })
                       .Then <ExecuteHttpRequest <string, string>, string>(builder =>
            {
                builder.HttpClientFactory = () => client;
                builder.Action            = (id, client) => client.GetStringAsync("users/" + id);
            })
                       .Then <WriteTo <string>, string>(builder =>
            {
                builder.Action = d =>
                {
                    data.Add(d);
                    return(Task.CompletedTask);
                };
            })
                       .Build();


            var scene = FlowScene.Build(flow);
            var json  = JsonSerializer.Serialize(scene);

            for (var i = 1; i <= 32; i *= 4)
            {
                await flow.ExecuteAsync(i.ToString(), _ => Task.CompletedTask, new System.Threading.CancellationToken());

                await Task.Delay(500);
            }

            foreach (var d in data)
            {
                Console.WriteLine(d);
            }
        }