From 5d6208f85233cc1a7f49841d963bfd8ee5bdab83 Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 28 Jul 2022 21:45:58 +0200 Subject: [PATCH] Node script window - Always update the script while open --- .../VisualScripting/NodeScriptWindowViewModel.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Artemis.UI/Screens/VisualScripting/NodeScriptWindowViewModel.cs b/src/Artemis.UI/Screens/VisualScripting/NodeScriptWindowViewModel.cs index e0dabe1da..3f058e74d 100644 --- a/src/Artemis.UI/Screens/VisualScripting/NodeScriptWindowViewModel.cs +++ b/src/Artemis.UI/Screens/VisualScripting/NodeScriptWindowViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Reactive; +using System.Reactive.Disposables; using System.Threading.Tasks; using Artemis.Core; using Artemis.Core.Services; @@ -12,6 +13,7 @@ using Artemis.UI.Shared.Services; using Artemis.UI.Shared.Services.NodeEditor; using Artemis.UI.Shared.Services.NodeEditor.Commands; using Avalonia; +using Avalonia.Threading; using DynamicData; using DynamicData.List; using ReactiveUI; @@ -54,6 +56,13 @@ public class NodeScriptWindowViewModel : DialogViewModelBase CreateNode = ReactiveCommand.Create(ExecuteCreateNode); Export = ReactiveCommand.CreateFromTask(ExecuteExport); Import = ReactiveCommand.CreateFromTask(ExecuteImport); + + this.WhenActivated(d => + { + DispatcherTimer updateTimer = new(TimeSpan.FromMilliseconds(25.0 / 1000), DispatcherPriority.Normal, Update); + updateTimer.Start(); + Disposable.Create(() => updateTimer.Stop()).DisposeWith(d); + }); } public NodeScript NodeScript { get; } @@ -119,4 +128,9 @@ public class NodeScriptWindowViewModel : DialogViewModelBase await Task.Delay(200); NodeScriptViewModel.RequestAutoFit(); } + + private void Update(object? sender, EventArgs e) + { + NodeScript.Run(); + } } \ No newline at end of file