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(); }
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); } }