From ea4ada7a8c1e4fe5ff85d910fb83757c099ff756 Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 2 Feb 2023 21:14:14 +0100 Subject: [PATCH] Nodes - Renamed easing nodes to transition nodes --- .../Profile/Abstract/RenderElementEntity.cs | 1 - .../Entities/Profile/FolderEntity.cs | 1 - .../Entities/Profile/LayerEntity.cs | 1 - .../Migrations/M0022TransitionNodes.cs | 87 +++++++++++++++++++ .../Nodes/Easing/EasingTypeNode.cs | 20 ----- .../Screens/EasingTypeNodeCustomView.axaml.cs | 17 ---- .../Nodes/Mathematics/NormalizeNode.cs | 3 +- .../Nodes/Mathematics/NumericEasingNode.cs | 7 +- .../ColorGradientTransitionNode.cs} | 12 +-- .../Nodes/Transition/EasingFunctionNode.cs | 20 +++++ .../NumericTransitionNode.cs | 8 +- .../SKColorTransitionNode.cs} | 12 +-- .../EasingFunctionNodeCustomView.axaml} | 6 +- .../EasingFunctionNodeCustomView.axaml.cs | 17 ++++ .../EasingFunctionNodeCustomViewModel.cs} | 14 +-- .../Screens/EasingFunctionView.axaml} | 6 +- .../Screens/EasingFunctionView.axaml.cs} | 6 +- .../Screens/EasingFunctionViewModel.cs} | 6 +- 18 files changed, 163 insertions(+), 81 deletions(-) create mode 100644 src/Artemis.Storage/Migrations/M0022TransitionNodes.cs delete mode 100644 src/Artemis.VisualScripting/Nodes/Easing/EasingTypeNode.cs delete mode 100644 src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml.cs rename src/Artemis.VisualScripting/Nodes/{Easing/ColorGradientEasingNode.cs => Transition/ColorGradientTransitionNode.cs} (80%) create mode 100644 src/Artemis.VisualScripting/Nodes/Transition/EasingFunctionNode.cs rename src/Artemis.VisualScripting/Nodes/{Easing => Transition}/NumericTransitionNode.cs (84%) rename src/Artemis.VisualScripting/Nodes/{Easing/SKColorEasingNode.cs => Transition/SKColorTransitionNode.cs} (80%) rename src/Artemis.VisualScripting/Nodes/{Easing/Screens/EasingTypeNodeCustomView.axaml => Transition/Screens/EasingFunctionNodeCustomView.axaml} (74%) create mode 100644 src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml.cs rename src/Artemis.VisualScripting/Nodes/{Easing/Screens/EasingTypeNodeCustomViewModel.cs => Transition/Screens/EasingFunctionNodeCustomViewModel.cs} (55%) rename src/Artemis.VisualScripting/Nodes/{Easing/Screens/EasingTypeNodeEasingView.axaml => Transition/Screens/EasingFunctionView.axaml} (82%) rename src/Artemis.VisualScripting/Nodes/{Easing/Screens/EasingTypeNodeEasingView.axaml.cs => Transition/Screens/EasingFunctionView.axaml.cs} (56%) rename src/Artemis.VisualScripting/Nodes/{Easing/Screens/EasingTypeNodeEasingViewModel.cs => Transition/Screens/EasingFunctionViewModel.cs} (74%) diff --git a/src/Artemis.Storage/Entities/Profile/Abstract/RenderElementEntity.cs b/src/Artemis.Storage/Entities/Profile/Abstract/RenderElementEntity.cs index 6961b5dfc..688b202ff 100644 --- a/src/Artemis.Storage/Entities/Profile/Abstract/RenderElementEntity.cs +++ b/src/Artemis.Storage/Entities/Profile/Abstract/RenderElementEntity.cs @@ -9,7 +9,6 @@ public abstract class RenderElementEntity public Guid ParentId { get; set; } public List LayerEffects { get; set; } - public List PropertyEntities { get; set; } public IConditionEntity DisplayCondition { get; set; } public TimelineEntity Timeline { get; set; } diff --git a/src/Artemis.Storage/Entities/Profile/FolderEntity.cs b/src/Artemis.Storage/Entities/Profile/FolderEntity.cs index fe2e5c543..939396b62 100644 --- a/src/Artemis.Storage/Entities/Profile/FolderEntity.cs +++ b/src/Artemis.Storage/Entities/Profile/FolderEntity.cs @@ -9,7 +9,6 @@ public class FolderEntity : RenderElementEntity { public FolderEntity() { - PropertyEntities = new List(); LayerEffects = new List(); } diff --git a/src/Artemis.Storage/Entities/Profile/LayerEntity.cs b/src/Artemis.Storage/Entities/Profile/LayerEntity.cs index 38a6b4750..30fc9ca1b 100644 --- a/src/Artemis.Storage/Entities/Profile/LayerEntity.cs +++ b/src/Artemis.Storage/Entities/Profile/LayerEntity.cs @@ -12,7 +12,6 @@ public class LayerEntity : RenderElementEntity { Leds = new List(); AdaptionHints = new List(); - PropertyEntities = new List(); LayerEffects = new List(); } diff --git a/src/Artemis.Storage/Migrations/M0022TransitionNodes.cs b/src/Artemis.Storage/Migrations/M0022TransitionNodes.cs new file mode 100644 index 000000000..5341371da --- /dev/null +++ b/src/Artemis.Storage/Migrations/M0022TransitionNodes.cs @@ -0,0 +1,87 @@ +using System.Collections.Generic; +using Artemis.Storage.Entities.Profile; +using Artemis.Storage.Entities.Profile.Abstract; +using Artemis.Storage.Entities.Profile.Conditions; +using Artemis.Storage.Entities.Profile.Nodes; +using Artemis.Storage.Migrations.Interfaces; +using LiteDB; + +namespace Artemis.Storage.Migrations; + +public class M0022TransitionNodes : IStorageMigration +{ + private void MigrateNodeScript(NodeScriptEntity nodeScript) + { + if (nodeScript == null) + return; + + foreach (NodeEntity node in nodeScript.Nodes) + { + if (node.Type == "NumericEasingNode") + node.Type = "NumericTransitionNode"; + else if (node.Type == "ColorGradientEasingNode") + node.Type = "ColorGradientTransitionNode"; + else if (node.Type == "SKColorEasingNode") + node.Type = "SKColorTransitionNode"; + else if (node.Type == "EasingTypeNode") + node.Type = "EasingFunctionNode"; + } + } + + private void MigratePropertyGroup(PropertyGroupEntity propertyGroup) + { + if (propertyGroup == null) + return; + + foreach (PropertyGroupEntity childPropertyGroup in propertyGroup.PropertyGroups) + MigratePropertyGroup(childPropertyGroup); + foreach (PropertyEntity property in propertyGroup.Properties) + MigrateNodeScript(property.DataBinding?.NodeScript); + } + + private void MigrateDisplayCondition(IConditionEntity conditionEntity) + { + if (conditionEntity is EventConditionEntity eventConditionEntity) + MigrateNodeScript(eventConditionEntity.Script); + else if (conditionEntity is StaticConditionEntity staticConditionEntity) + MigrateNodeScript(staticConditionEntity.Script); + } + + public int UserVersion => 22; + + public void Apply(LiteRepository repository) + { + // Migrate profile configuration display conditions + List categories = repository.Query().ToList(); + foreach (ProfileCategoryEntity profileCategoryEntity in categories) + { + foreach (ProfileConfigurationEntity profileConfigurationEntity in profileCategoryEntity.ProfileConfigurations) + MigrateNodeScript(profileConfigurationEntity.ActivationCondition); + repository.Update(profileCategoryEntity); + } + + // Migrate profile display conditions and data bindings + List profiles = repository.Query().ToList(); + foreach (ProfileEntity profileEntity in profiles) + { + foreach (LayerEntity layer in profileEntity.Layers) + { + MigratePropertyGroup(layer.LayerBrush?.PropertyGroup); + MigratePropertyGroup(layer.GeneralPropertyGroup); + MigratePropertyGroup(layer.TransformPropertyGroup); + foreach (LayerEffectEntity layerEffectEntity in layer.LayerEffects) + MigratePropertyGroup(layerEffectEntity?.PropertyGroup); + MigrateDisplayCondition(layer.DisplayCondition); + } + + foreach (FolderEntity folder in profileEntity.Folders) + { + foreach (LayerEffectEntity folderLayerEffect in folder.LayerEffects) + MigratePropertyGroup(folderLayerEffect?.PropertyGroup); + MigrateDisplayCondition(folder.DisplayCondition); + } + + repository.Update(profileEntity); + } + } +} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Easing/EasingTypeNode.cs b/src/Artemis.VisualScripting/Nodes/Easing/EasingTypeNode.cs deleted file mode 100644 index 8b120cd8f..000000000 --- a/src/Artemis.VisualScripting/Nodes/Easing/EasingTypeNode.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Artemis.Core; -using Artemis.VisualScripting.Nodes.Easing.Screens; - -namespace Artemis.VisualScripting.Nodes.Easing; - -[Node("Easing Type", "Outputs a selectable easing type.", "Easing", OutputType = typeof(Easings.Functions))] -public class EasingTypeNode : Node -{ - public EasingTypeNode() - { - Output = CreateOutputPin(); - } - - public OutputPin Output { get; } - - public override void Evaluate() - { - Output.Value = Storage; - } -} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml.cs b/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml.cs deleted file mode 100644 index 5bf5aaa52..000000000 --- a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Avalonia.Markup.Xaml; -using Avalonia.ReactiveUI; - -namespace Artemis.VisualScripting.Nodes.Easing.Screens; - -public class EasingTypeNodeCustomView : ReactiveUserControl -{ - public EasingTypeNodeCustomView() - { - InitializeComponent(); - } - - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - } -} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Mathematics/NormalizeNode.cs b/src/Artemis.VisualScripting/Nodes/Mathematics/NormalizeNode.cs index c80dcd93b..59a6f1f31 100644 --- a/src/Artemis.VisualScripting/Nodes/Mathematics/NormalizeNode.cs +++ b/src/Artemis.VisualScripting/Nodes/Mathematics/NormalizeNode.cs @@ -2,8 +2,7 @@ namespace Artemis.VisualScripting.Nodes.Mathematics; -[Node("Normalize", "Normalizes the number into range between 0-1", - "Mathematics", InputType = typeof(Numeric), OutputType = typeof(Numeric))] +[Node("Normalize", "Normalizes the number into range between 0-1", "Mathematics", InputType = typeof(Numeric), OutputType = typeof(Numeric))] public class NormalizeNode : Node { public InputPin Input { get; } diff --git a/src/Artemis.VisualScripting/Nodes/Mathematics/NumericEasingNode.cs b/src/Artemis.VisualScripting/Nodes/Mathematics/NumericEasingNode.cs index dbb3d72f7..c2305adaa 100644 --- a/src/Artemis.VisualScripting/Nodes/Mathematics/NumericEasingNode.cs +++ b/src/Artemis.VisualScripting/Nodes/Mathematics/NumericEasingNode.cs @@ -1,9 +1,8 @@ using Artemis.Core; -namespace Artemis.VisualScripting.Nodes.Easing; +namespace Artemis.VisualScripting.Nodes.Mathematics; -[Node("Numeric Easing", "Interpolates a value from 0-1 to 0-1 with the given function", - "Mathematics", InputType = typeof(Numeric), OutputType = typeof(Numeric))] +[Node("Numeric Easing", "Interpolates a value from 0-1 to 0-1 with the given function", "Mathematics", InputType = typeof(Numeric), OutputType = typeof(Numeric))] public class NumericEasingNode : Node { public InputPin Input { get; } @@ -15,7 +14,7 @@ public class NumericEasingNode : Node public NumericEasingNode() { Input = CreateInputPin("Input"); - EasingFunction = CreateInputPin("EasingFunction"); + EasingFunction = CreateInputPin("Function"); Result = CreateOutputPin(); } diff --git a/src/Artemis.VisualScripting/Nodes/Easing/ColorGradientEasingNode.cs b/src/Artemis.VisualScripting/Nodes/Transition/ColorGradientTransitionNode.cs similarity index 80% rename from src/Artemis.VisualScripting/Nodes/Easing/ColorGradientEasingNode.cs rename to src/Artemis.VisualScripting/Nodes/Transition/ColorGradientTransitionNode.cs index 913497a10..69430d4ea 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/ColorGradientEasingNode.cs +++ b/src/Artemis.VisualScripting/Nodes/Transition/ColorGradientTransitionNode.cs @@ -1,9 +1,9 @@ using Artemis.Core; -namespace Artemis.VisualScripting.Nodes.Easing; +namespace Artemis.VisualScripting.Nodes.Transition; -[Node("Color Gradient Easing", "Outputs an eased color gradient value", "Easing", InputType = typeof(ColorGradient), OutputType = typeof(ColorGradient))] -public class ColorGradientEasingNode : Node +[Node("Color Gradient Transition", "Outputs smoothly transitioned changes to the input color gradient", "Transition", InputType = typeof(ColorGradient), OutputType = typeof(ColorGradient))] +public class ColorGradientTransitionNode : Node { private DateTime _lastEvaluate = DateTime.MinValue; private float _progress; @@ -11,11 +11,11 @@ public class ColorGradientEasingNode : Node private ColorGradient? _sourceValue; private ColorGradient? _targetValue; - public ColorGradientEasingNode() + public ColorGradientTransitionNode() { Input = CreateInputPin(); - EasingTime = CreateInputPin("delay"); - EasingFunction = CreateInputPin("function"); + EasingTime = CreateInputPin("Delay"); + EasingFunction = CreateInputPin("Function"); Output = CreateOutputPin(); } diff --git a/src/Artemis.VisualScripting/Nodes/Transition/EasingFunctionNode.cs b/src/Artemis.VisualScripting/Nodes/Transition/EasingFunctionNode.cs new file mode 100644 index 000000000..a0086bf27 --- /dev/null +++ b/src/Artemis.VisualScripting/Nodes/Transition/EasingFunctionNode.cs @@ -0,0 +1,20 @@ +using Artemis.Core; +using Artemis.VisualScripting.Nodes.Transition.Screens; + +namespace Artemis.VisualScripting.Nodes.Transition; + +[Node("Easing Function", "Outputs a selectable easing function", "Transition", OutputType = typeof(Easings.Functions))] +public class EasingFunctionNode : Node +{ + public EasingFunctionNode() + { + Output = CreateOutputPin(); + } + + public OutputPin Output { get; } + + public override void Evaluate() + { + Output.Value = Storage; + } +} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Easing/NumericTransitionNode.cs b/src/Artemis.VisualScripting/Nodes/Transition/NumericTransitionNode.cs similarity index 84% rename from src/Artemis.VisualScripting/Nodes/Easing/NumericTransitionNode.cs rename to src/Artemis.VisualScripting/Nodes/Transition/NumericTransitionNode.cs index 7076d69f1..658ceedf3 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/NumericTransitionNode.cs +++ b/src/Artemis.VisualScripting/Nodes/Transition/NumericTransitionNode.cs @@ -1,8 +1,8 @@ using Artemis.Core; -namespace Artemis.VisualScripting.Nodes.Easing; +namespace Artemis.VisualScripting.Nodes.Transition; -[Node("Numeric Transition", "Outputs an eased numeric value", "Easing", InputType = typeof(Numeric), OutputType = typeof(Numeric))] +[Node("Numeric Transition", "Outputs smoothly transitioned changes to the input numeric value", "Transition", InputType = typeof(Numeric), OutputType = typeof(Numeric))] public class NumericTransitionNode : Node { private float _currentValue; @@ -14,8 +14,8 @@ public class NumericTransitionNode : Node public NumericTransitionNode() { Input = CreateInputPin(); - EasingTime = CreateInputPin("delay"); - EasingFunction = CreateInputPin("function"); + EasingTime = CreateInputPin("Delay"); + EasingFunction = CreateInputPin("Function"); Output = CreateOutputPin(); } diff --git a/src/Artemis.VisualScripting/Nodes/Easing/SKColorEasingNode.cs b/src/Artemis.VisualScripting/Nodes/Transition/SKColorTransitionNode.cs similarity index 80% rename from src/Artemis.VisualScripting/Nodes/Easing/SKColorEasingNode.cs rename to src/Artemis.VisualScripting/Nodes/Transition/SKColorTransitionNode.cs index c3e41db37..7ffd037b8 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/SKColorEasingNode.cs +++ b/src/Artemis.VisualScripting/Nodes/Transition/SKColorTransitionNode.cs @@ -1,10 +1,10 @@ using Artemis.Core; using SkiaSharp; -namespace Artemis.VisualScripting.Nodes.Easing; +namespace Artemis.VisualScripting.Nodes.Transition; -[Node("Color Easing", "Outputs an eased color value", "Easing", InputType = typeof(SKColor), OutputType = typeof(SKColor))] -public class SKColorEasingNode : Node +[Node("Color Transition", "Outputs smoothly transitioned changes to the input color", "Transition", InputType = typeof(SKColor), OutputType = typeof(SKColor))] +public class SKColorTransitionNode : Node { private SKColor _currentValue; private DateTime _lastEvaluate = DateTime.MinValue; @@ -12,11 +12,11 @@ public class SKColorEasingNode : Node private SKColor _sourceValue; private SKColor _targetValue; - public SKColorEasingNode() + public SKColorTransitionNode() { Input = CreateInputPin(); - EasingTime = CreateInputPin("delay"); - EasingFunction = CreateInputPin("function"); + EasingTime = CreateInputPin("Delay"); + EasingFunction = CreateInputPin("Function"); Output = CreateOutputPin(); } diff --git a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml similarity index 74% rename from src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml rename to src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml index c4418d2fc..0170bd620 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomView.axaml +++ b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml @@ -2,9 +2,9 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:screens="clr-namespace:Artemis.VisualScripting.Nodes.Easing.Screens" + xmlns:screens="clr-namespace:Artemis.VisualScripting.Nodes.Transition.Screens" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.VisualScripting.Nodes.Easing.Screens.EasingTypeNodeCustomView" - x:DataType="screens:EasingTypeNodeCustomViewModel"> + x:Class="Artemis.VisualScripting.Nodes.Transition.Screens.EasingFunctionNodeCustomView" + x:DataType="screens:EasingFunctionNodeCustomViewModel"> \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml.cs b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml.cs new file mode 100644 index 000000000..9af92d995 --- /dev/null +++ b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomView.axaml.cs @@ -0,0 +1,17 @@ +using Avalonia.Markup.Xaml; +using Avalonia.ReactiveUI; + +namespace Artemis.VisualScripting.Nodes.Transition.Screens; + +public class EasingFunctionNodeCustomView : ReactiveUserControl +{ + public EasingFunctionNodeCustomView() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomViewModel.cs b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomViewModel.cs similarity index 55% rename from src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomViewModel.cs rename to src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomViewModel.cs index 70af9b5a8..01540d7e6 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeCustomViewModel.cs +++ b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionNodeCustomViewModel.cs @@ -5,26 +5,26 @@ using Artemis.UI.Shared.Services.NodeEditor.Commands; using Artemis.UI.Shared.VisualScripting; using ReactiveUI; -namespace Artemis.VisualScripting.Nodes.Easing.Screens; +namespace Artemis.VisualScripting.Nodes.Transition.Screens; -public class EasingTypeNodeCustomViewModel : CustomNodeViewModel +public class EasingFunctionNodeCustomViewModel : CustomNodeViewModel { - private readonly EasingTypeNode _node; + private readonly EasingFunctionNode _node; private readonly INodeEditorService _nodeEditorService; - public EasingTypeNodeCustomViewModel(EasingTypeNode node, INodeScript script, INodeEditorService nodeEditorService) : base(node, script) + public EasingFunctionNodeCustomViewModel(EasingFunctionNode node, INodeScript script, INodeEditorService nodeEditorService) : base(node, script) { _node = node; _nodeEditorService = nodeEditorService; NodeModified += (_, _) => this.RaisePropertyChanged(nameof(SelectedEasingViewModel)); EasingViewModels = - new ObservableCollection(Enum.GetValues(typeof(Easings.Functions)).Cast().Select(e => new EasingTypeNodeEasingViewModel(e))); + new ObservableCollection(Enum.GetValues(typeof(Easings.Functions)).Cast().Select(e => new EasingFunctionViewModel(e))); } - public ObservableCollection EasingViewModels { get; } + public ObservableCollection EasingViewModels { get; } - public EasingTypeNodeEasingViewModel? SelectedEasingViewModel + public EasingFunctionViewModel? SelectedEasingViewModel { get => EasingViewModels.FirstOrDefault(e => e.EasingFunction == _node.Storage); set diff --git a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeEasingView.axaml b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionView.axaml similarity index 82% rename from src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeEasingView.axaml rename to src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionView.axaml index 52f2e7de3..93f9b1de0 100644 --- a/src/Artemis.VisualScripting/Nodes/Easing/Screens/EasingTypeNodeEasingView.axaml +++ b/src/Artemis.VisualScripting/Nodes/Transition/Screens/EasingFunctionView.axaml @@ -2,10 +2,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:screens="clr-namespace:Artemis.VisualScripting.Nodes.Easing.Screens" + xmlns:screens="clr-namespace:Artemis.VisualScripting.Nodes.Transition.Screens" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Artemis.VisualScripting.Nodes.Easing.Screens.EasingTypeNodeEasingView" - x:DataType="screens:EasingTypeNodeEasingViewModel"> + x:Class="Artemis.VisualScripting.Nodes.Transition.Screens.EasingFunctionView" + x:DataType="screens:EasingFunctionViewModel">