From 8e8258506b930725e1a5a642e797b9d3e7f1b8d4 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Sat, 12 Dec 2020 10:57:09 +0100 Subject: [PATCH] Plugins - Add JSON property to disable auto-enabling features Setup wizard - Play intro animation at the end (and no where else) --- src/Artemis.Core/Plugins/PluginInfo.cs | 13 + src/Artemis.Core/Resources/intro-profile.json | 896 ++++++++++++++++-- src/Artemis.Core/Services/CoreService.cs | 7 +- .../Services/Interfaces/ICoreService.cs | 7 +- .../Services/PluginManagementService.cs | 10 +- .../Services/Storage/SurfaceService.cs | 4 +- .../SetupWizard/Steps/DevicesStepViewModel.cs | 11 +- .../SetupWizard/Steps/FinishStepViewModel.cs | 14 + 8 files changed, 879 insertions(+), 83 deletions(-) diff --git a/src/Artemis.Core/Plugins/PluginInfo.cs b/src/Artemis.Core/Plugins/PluginInfo.cs index 4323b2764..831fd4015 100644 --- a/src/Artemis.Core/Plugins/PluginInfo.cs +++ b/src/Artemis.Core/Plugins/PluginInfo.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel; using Newtonsoft.Json; namespace Artemis.Core @@ -9,6 +10,7 @@ namespace Artemis.Core [JsonObject(MemberSerialization.OptIn)] public class PluginInfo : CorePropertyChanged { + private bool _autoEnableFeatures = true; private string? _description; private Guid _guid; private string? _icon; @@ -83,6 +85,17 @@ namespace Artemis.Core internal set => SetAndNotify(ref _main, value); } + /// + /// Gets or sets a boolean indicating whether this plugin should automatically enable all its features when it is first loaded + /// + [DefaultValue(true)] + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] + public bool AutoEnableFeatures + { + get => _autoEnableFeatures; + set => SetAndNotify(ref _autoEnableFeatures, value); + } + /// /// Gets the plugin this info is associated with /// diff --git a/src/Artemis.Core/Resources/intro-profile.json b/src/Artemis.Core/Resources/intro-profile.json index 25fd1d594..e95c17153 100644 --- a/src/Artemis.Core/Resources/intro-profile.json +++ b/src/Artemis.Core/Resources/intro-profile.json @@ -1,7 +1,7 @@ { "$type": "Artemis.Storage.Entities.Profile.ProfileEntity, Artemis.Storage", - "Id": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", - "PluginGuid": "0de2991a-d7b8-4f61-ae4e-6623849215b5", + "Id": "ac170422-03df-4976-ada7-d4bcdb893df7", + "ModuleId": "Artemis.Plugins.Modules.General.GeneralModule-0de2991a", "Name": "Intro animation", "IsActive": true, "Folders": { @@ -9,13 +9,13 @@ "$values": [ { "$type": "Artemis.Storage.Entities.Profile.FolderEntity, Artemis.Storage", - "Id": "cc21b67c-3485-4dc6-b2af-105fda42a915", - "ParentId": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", - "Order": 1, + "Order": 0, "Name": "Root folder", "Enabled": true, "Profile": null, - "ProfileId": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", + "ProfileId": "ac170422-03df-4976-ada7-d4bcdb893df7", + "Id": "cc21b67c-3485-4dc6-b2af-105fda42a915", + "ParentId": "ac170422-03df-4976-ada7-d4bcdb893df7", "LayerEffects": { "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.LayerEffectEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] @@ -53,8 +53,6 @@ "$values": [ { "$type": "Artemis.Storage.Entities.Profile.LayerEntity, Artemis.Storage", - "Id": "2464a52c-4cec-4f17-87ed-edfe4bfed6f6", - "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "Order": 1, "Name": "Noise", "Enabled": true, @@ -63,7 +61,9 @@ "$values": [] }, "Profile": null, - "ProfileId": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", + "ProfileId": "ac170422-03df-4976-ada7-d4bcdb893df7", + "Id": "2464a52c-4cec-4f17-87ed-edfe4bfed6f6", + "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "LayerEffects": { "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.LayerEffectEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] @@ -73,7 +73,7 @@ "$values": [ { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ShapeType", "Value": "1", "KeyframesEnabled": false, @@ -88,7 +88,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ResizeMode", "Value": "1", "KeyframesEnabled": false, @@ -103,7 +103,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BlendMode", "Value": "3", "KeyframesEnabled": false, @@ -118,7 +118,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BrushReference", "Value": "{\"BrushPluginGuid\":\"61cbbf01-8d69-4ede-a972-f3f269da66d9\",\"BrushType\":\"NoiseBrush\"}", "KeyframesEnabled": false, @@ -133,7 +133,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.AnchorPoint", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -148,7 +148,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Position", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -163,7 +163,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Scale", "Value": "{\"IsEmpty\":false,\"Width\":500.0,\"Height\":500.0}", "KeyframesEnabled": true, @@ -193,7 +193,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Rotation", "Value": "-45.0", "KeyframesEnabled": false, @@ -208,7 +208,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Opacity", "Value": "100.0", "KeyframesEnabled": true, @@ -245,7 +245,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.ColorType", "Value": "1", "KeyframesEnabled": false, @@ -260,7 +260,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.MainColor", "Value": "\"#ff009688\"", "KeyframesEnabled": false, @@ -275,7 +275,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.SecondaryColor", "Value": "\"#ff00ffe7\"", "KeyframesEnabled": false, @@ -290,7 +290,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.GradientColor", "Value": "{\"Stops\":[{\"Color\":\"#ff0b4a40\",\"Position\":0.0},{\"Color\":\"#ff00897c\",\"Position\":0.242},{\"Color\":\"#ffffffff\",\"Position\":1.0},{\"Color\":\"#ff00ffe6\",\"Position\":0.67391306}]}", "KeyframesEnabled": false, @@ -305,7 +305,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.Scale", "Value": "{\"IsEmpty\":false,\"Width\":31.5,\"Height\":31.9}", "KeyframesEnabled": false, @@ -320,7 +320,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.Hardness", "Value": "228.5", "KeyframesEnabled": false, @@ -335,7 +335,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.ScrollSpeed", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -350,7 +350,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", + "FeatureId": null, "Path": "LayerBrush.AnimationSpeed", "Value": "25.0", "KeyframesEnabled": false, @@ -365,7 +365,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.TransformMode", "Value": "1", "KeyframesEnabled": false, @@ -377,13 +377,299 @@ "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.ShapeType", + "Value": "1", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BlendMode", + "Value": "3", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.TransformMode", + "Value": "1", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BrushReference", + "Value": "{\"LayerBrushProviderId\":\"Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01\",\"BrushType\":\"NoiseBrush\"}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.AnchorPoint", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Position", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Scale", + "Value": "{\"IsEmpty\":false,\"Width\":100.0,\"Height\":0.0}", + "KeyframesEnabled": true, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [ + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:01.0100000", + "Timeline": 0, + "Value": "{\"IsEmpty\":false,\"Width\":100.0,\"Height\":0.0}", + "EasingFunction": 3 + }, + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:02.4900000", + "Timeline": 0, + "Value": "{\"IsEmpty\":false,\"Width\":200.0,\"Height\":200.0}", + "EasingFunction": 0 + } + ] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Rotation", + "Value": "46.52", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Opacity", + "Value": "100.0", + "KeyframesEnabled": true, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [ + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:04", + "Timeline": 0, + "Value": "100.0", + "EasingFunction": 3 + }, + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:05", + "Timeline": 0, + "Value": "0.0", + "EasingFunction": 0 + } + ] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.ColorType", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.MainColor", + "Value": "\"#ff00ffa1\"", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.SecondaryColor", + "Value": "\"#ffffffff\"", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.GradientColor", + "Value": "{\"Stops\":[{\"Color\":\"#ffff0000\",\"Position\":0.0},{\"Color\":\"#ffffbf00\",\"Position\":0.125},{\"Color\":\"#ff7fff00\",\"Position\":0.25},{\"Color\":\"#ff00ff3f\",\"Position\":0.375},{\"Color\":\"#ff00ffff\",\"Position\":0.5},{\"Color\":\"#ff003fff\",\"Position\":0.625},{\"Color\":\"#ff7f00ff\",\"Position\":0.75},{\"Color\":\"#ffff00bf\",\"Position\":0.875},{\"Color\":\"#ffff0000\",\"Position\":1.0}]}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.Scale", + "Value": "{\"IsEmpty\":false,\"Width\":180.0,\"Height\":180.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.Hardness", + "Value": "140.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.ScrollSpeed", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Noise.NoiseBrushProvider-61cbbf01", + "Path": "LayerBrush.AnimationSpeed", + "Value": "50.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } } ] }, "ExpandedPropertyGroups": { "$type": "System.Collections.Generic.List`1[[System.String, System.Private.CoreLib]], System.Private.CoreLib", "$values": [ - "Transform" + "Transform", + "General" ] }, "DisplayCondition": { @@ -399,15 +685,13 @@ "StartSegmentLength": "00:00:00", "MainSegmentLength": "00:00:05", "EndSegmentLength": "00:00:00", - "PlayMode": 0, + "PlayMode": 1, "StopMode": 0, "EventOverlapMode": 0 } }, { "$type": "Artemis.Storage.Entities.Profile.LayerEntity, Artemis.Storage", - "Id": "72a7e56c-0649-4449-8dca-eb937161f228", - "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "Order": 2, "Name": "Exploison", "Enabled": true, @@ -416,7 +700,9 @@ "$values": [] }, "Profile": null, - "ProfileId": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", + "ProfileId": "ac170422-03df-4976-ada7-d4bcdb893df7", + "Id": "72a7e56c-0649-4449-8dca-eb937161f228", + "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "LayerEffects": { "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.LayerEffectEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] @@ -426,7 +712,7 @@ "$values": [ { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ShapeType", "Value": "0", "KeyframesEnabled": false, @@ -441,7 +727,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ResizeMode", "Value": "0", "KeyframesEnabled": false, @@ -456,7 +742,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BlendMode", "Value": "3", "KeyframesEnabled": false, @@ -471,7 +757,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BrushReference", "Value": "{\"BrushPluginGuid\":\"92a9d6ba-6f7a-4937-94d5-c1d715b4141a\",\"BrushType\":\"ColorBrush\"}", "KeyframesEnabled": false, @@ -486,7 +772,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.AnchorPoint", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -501,7 +787,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Position", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -516,7 +802,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Scale", "Value": "{\"IsEmpty\":false,\"Width\":110.03,\"Height\":340.37}", "KeyframesEnabled": true, @@ -546,7 +832,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Rotation", "Value": "0.0", "KeyframesEnabled": false, @@ -561,7 +847,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Opacity", "Value": "100.0", "KeyframesEnabled": false, @@ -576,7 +862,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.GradientType", "Value": "2", "KeyframesEnabled": false, @@ -591,7 +877,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.TileMode", "Value": "0", "KeyframesEnabled": false, @@ -606,7 +892,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.Color", "Value": "\"#ffff0000\"", "KeyframesEnabled": false, @@ -621,7 +907,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.Colors", "Value": "{\"Stops\":[{\"Color\":\"#00ff0000\",\"Position\":0.0},{\"Color\":\"#ffffdf00\",\"Position\":0.916},{\"Color\":\"#00ffcd00\",\"Position\":1.0},{\"Color\":\"#fff31900\",\"Position\":0.636},{\"Color\":\"#dbf41500\",\"Position\":0.5461956},{\"Color\":\"#00f60f00\",\"Position\":0.462},{\"Color\":\"#93f60d00\",\"Position\":0.3668478}]}", "KeyframesEnabled": false, @@ -636,7 +922,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.ColorsMultiplier", "Value": "0", "KeyframesEnabled": false, @@ -651,7 +937,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.LinearGradientRotation", "Value": "0.0", "KeyframesEnabled": false, @@ -666,7 +952,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.RadialGradient.CenterOffset", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -681,7 +967,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.RadialGradient.ResizeMode", "Value": "0", "KeyframesEnabled": false, @@ -696,7 +982,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.TransformMode", "Value": "0", "KeyframesEnabled": false, @@ -708,13 +994,284 @@ "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.ShapeType", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BlendMode", + "Value": "3", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.TransformMode", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BrushReference", + "Value": "{\"LayerBrushProviderId\":\"Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba\",\"BrushType\":\"RadialGradientBrush\"}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.AnchorPoint", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Position", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Scale", + "Value": "{\"IsEmpty\":false,\"Width\":11.85,\"Height\":16.57}", + "KeyframesEnabled": true, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [ + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:00", + "Timeline": 0, + "Value": "{\"IsEmpty\":true,\"Width\":0.0,\"Height\":0.0}", + "EasingFunction": 0 + }, + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:01.0500000", + "Timeline": 0, + "Value": "{\"IsEmpty\":false,\"Width\":315.67,\"Height\":441.52}", + "EasingFunction": 0 + } + ] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Rotation", + "Value": "0.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Opacity", + "Value": "100.0", + "KeyframesEnabled": true, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [ + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:00.3800000", + "Timeline": 0, + "Value": "100.0", + "EasingFunction": 0 + }, + { + "$type": "Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage", + "Position": "00:00:01.0500000", + "Timeline": 0, + "Value": "0.0", + "EasingFunction": 0 + } + ] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.Colors", + "Value": "{\"Stops\":[{\"Color\":\"#ffcaff00\",\"Position\":0.709},{\"Color\":\"#ffff0000\",\"Position\":0.902},{\"Color\":\"#ffffffff\",\"Position\":0.5842391},{\"Color\":\"#ffff4100\",\"Position\":0.95108694},{\"Color\":\"#00ff4100\",\"Position\":0.98641306}]}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.ColorsMultiplier", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.CenterOffset", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.ResizeMode", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.StartAngle", + "Value": "0.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.EndAngle", + "Value": "360.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.RotateSpeed", + "Value": "0.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } } ] }, "ExpandedPropertyGroups": { "$type": "System.Collections.Generic.List`1[[System.String, System.Private.CoreLib]], System.Private.CoreLib", "$values": [ - "LayerBrush" + "LayerBrush", + "Transform" ] }, "DisplayCondition": { @@ -737,8 +1294,6 @@ }, { "$type": "Artemis.Storage.Entities.Profile.LayerEntity, Artemis.Storage", - "Id": "f046f56f-a236-4ed6-bbd9-b5a4731878cf", - "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "Order": 3, "Name": "Background", "Enabled": true, @@ -747,7 +1302,9 @@ "$values": [] }, "Profile": null, - "ProfileId": "ebf09eb7-77c2-4af5-9695-4db0615a42ad", + "ProfileId": "ac170422-03df-4976-ada7-d4bcdb893df7", + "Id": "f046f56f-a236-4ed6-bbd9-b5a4731878cf", + "ParentId": "cc21b67c-3485-4dc6-b2af-105fda42a915", "LayerEffects": { "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.LayerEffectEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] @@ -757,7 +1314,7 @@ "$values": [ { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ShapeType", "Value": "1", "KeyframesEnabled": false, @@ -772,7 +1329,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.ResizeMode", "Value": "0", "KeyframesEnabled": false, @@ -787,7 +1344,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BlendMode", "Value": "3", "KeyframesEnabled": false, @@ -802,7 +1359,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.BrushReference", "Value": "{\"BrushPluginGuid\":\"92a9d6ba-6f7a-4937-94d5-c1d715b4141a\",\"BrushType\":\"ColorBrush\"}", "KeyframesEnabled": false, @@ -817,7 +1374,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.AnchorPoint", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -832,7 +1389,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Position", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -847,7 +1404,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Scale", "Value": "{\"IsEmpty\":false,\"Width\":100.0,\"Height\":100.0}", "KeyframesEnabled": false, @@ -862,7 +1419,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Rotation", "Value": "0.0", "KeyframesEnabled": false, @@ -877,7 +1434,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "Transform.Opacity", "Value": "100.0", "KeyframesEnabled": false, @@ -892,7 +1449,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.GradientType", "Value": "0", "KeyframesEnabled": false, @@ -907,7 +1464,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.TileMode", "Value": "0", "KeyframesEnabled": false, @@ -922,7 +1479,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.Color", "Value": "\"#ff000000\"", "KeyframesEnabled": false, @@ -937,7 +1494,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.Colors", "Value": "{\"Stops\":[{\"Color\":\"#ffff0000\",\"Position\":0.0},{\"Color\":\"#ffff8800\",\"Position\":0.125},{\"Color\":\"#ffedff00\",\"Position\":0.25},{\"Color\":\"#ff65ff00\",\"Position\":0.375},{\"Color\":\"#ff00ff22\",\"Position\":0.5},{\"Color\":\"#ff00ffaa\",\"Position\":0.625},{\"Color\":\"#ff00cbff\",\"Position\":0.75},{\"Color\":\"#ff0043ff\",\"Position\":0.875},{\"Color\":\"#ffff0000\",\"Position\":1.0}]}", "KeyframesEnabled": false, @@ -952,7 +1509,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.ColorsMultiplier", "Value": "0", "KeyframesEnabled": false, @@ -967,7 +1524,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.LinearGradientRotation", "Value": "0.0", "KeyframesEnabled": false, @@ -982,7 +1539,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.RadialGradient.CenterOffset", "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", "KeyframesEnabled": false, @@ -997,7 +1554,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", + "FeatureId": null, "Path": "LayerBrush.RadialGradient.ResizeMode", "Value": "0", "KeyframesEnabled": false, @@ -1012,7 +1569,7 @@ }, { "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", - "PluginGuid": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "FeatureId": null, "Path": "General.TransformMode", "Value": "0", "KeyframesEnabled": false, @@ -1024,6 +1581,201 @@ "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", "$values": [] } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.ShapeType", + "Value": "1", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BlendMode", + "Value": "3", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.TransformMode", + "Value": "0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "General.BrushReference", + "Value": "{\"LayerBrushProviderId\":\"Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba\",\"BrushType\":\"SolidBrush\"}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.AnchorPoint", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Position", + "Value": "{\"IsEmpty\":true,\"Length\":0.0,\"LengthSquared\":0.0,\"X\":0.0,\"Y\":0.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Scale", + "Value": "{\"IsEmpty\":false,\"Width\":100.0,\"Height\":100.0}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Rotation", + "Value": "0.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Core.CorePluginFeature-ffffffff", + "Path": "Transform.Opacity", + "Value": "100.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.EnableColorAnimation", + "Value": "false", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.Color", + "Value": "\"#ff000000\"", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.Colors", + "Value": "{\"Stops\":[{\"Color\":\"#ffff0000\",\"Position\":0.0},{\"Color\":\"#ffffbf00\",\"Position\":0.125},{\"Color\":\"#ff7fff00\",\"Position\":0.25},{\"Color\":\"#ff00ff3f\",\"Position\":0.375},{\"Color\":\"#ff00ffff\",\"Position\":0.5},{\"Color\":\"#ff003fff\",\"Position\":0.625},{\"Color\":\"#ff7f00ff\",\"Position\":0.75},{\"Color\":\"#ffff00bf\",\"Position\":0.875},{\"Color\":\"#ffff0000\",\"Position\":1.0}]}", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } + }, + { + "$type": "Artemis.Storage.Entities.Profile.PropertyEntity, Artemis.Storage", + "FeatureId": "Artemis.Plugins.LayerBrushes.Color.ColorBrushProvider-92a9d6ba", + "Path": "LayerBrush.AnimationSpeed", + "Value": "100.0", + "KeyframesEnabled": false, + "KeyframeEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.KeyframeEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + }, + "DataBindingEntities": { + "$type": "System.Collections.Generic.List`1[[Artemis.Storage.Entities.Profile.DataBindings.DataBindingEntity, Artemis.Storage]], System.Private.CoreLib", + "$values": [] + } } ] }, diff --git a/src/Artemis.Core/Services/CoreService.cs b/src/Artemis.Core/Services/CoreService.cs index 1798f7c21..1f5ff5f18 100644 --- a/src/Artemis.Core/Services/CoreService.cs +++ b/src/Artemis.Core/Services/CoreService.cs @@ -97,7 +97,6 @@ namespace Artemis.Core.Services ArtemisSurface surfaceConfig = _surfaceService.ActiveSurface; _logger.Information("Initialized with active surface entity {surfaceConfig}-{guid}", surfaceConfig.Name, surfaceConfig.EntityId); - PlayIntroAnimation(); OnInitialized(); } @@ -111,12 +110,8 @@ namespace Artemis.Core.Services FrameRendered?.Invoke(this, e); } - private void PlayIntroAnimation() + public void PlayIntroAnimation() { - // The intro is cool and all, but sometimes you just wanna see what you're working on straight away ^^ - if (Debugger.IsAttached) - return; - IntroAnimation intro = new IntroAnimation(_logger, _profileService, _surfaceService); // Draw a white overlay over the device diff --git a/src/Artemis.Core/Services/Interfaces/ICoreService.cs b/src/Artemis.Core/Services/Interfaces/ICoreService.cs index cc99e4fc7..cb658c2c3 100644 --- a/src/Artemis.Core/Services/Interfaces/ICoreService.cs +++ b/src/Artemis.Core/Services/Interfaces/ICoreService.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Artemis.Core.Services { /// - /// A service that initializes the Core and manages the render loop + /// A service that initializes the Core and manages the render loop /// public interface ICoreService : IArtemisService, IDisposable { @@ -33,6 +33,11 @@ namespace Artemis.Core.Services /// void Initialize(); + /// + /// Plays the into animation profile defined in Resources/intro-profile.json + /// + void PlayIntroAnimation(); + /// /// Occurs the core has finished initializing /// diff --git a/src/Artemis.Core/Services/PluginManagementService.cs b/src/Artemis.Core/Services/PluginManagementService.cs index 22ea1f25a..0b2e15cac 100644 --- a/src/Artemis.Core/Services/PluginManagementService.cs +++ b/src/Artemis.Core/Services/PluginManagementService.cs @@ -185,6 +185,7 @@ namespace Artemis.Core.Services // Load the plugin assemblies into the plugin context DirectoryInfo pluginDirectory = new DirectoryInfo(Path.Combine(Constants.DataFolder, "plugins")); foreach (DirectoryInfo subDirectory in pluginDirectory.EnumerateDirectories()) + { try { Plugin plugin = LoadPlugin(subDirectory); @@ -195,6 +196,7 @@ namespace Artemis.Core.Services { _logger.Warning(new ArtemisPluginException("Failed to load plugin", e), "Plugin exception"); } + } LoadingPlugins = false; } @@ -308,6 +310,7 @@ namespace Artemis.Core.Services // Create instances of each feature and add them to the plugin // Construction should be simple and not contain any logic so failure at this point means the entire plugin fails foreach (Type featureType in featureTypes) + { try { plugin.Kernel.Bind(featureType).ToSelf().InSingletonScope(); @@ -319,15 +322,17 @@ namespace Artemis.Core.Services // Load the enabled state and if not found, default to true instance.Entity = plugin.Entity.Features.FirstOrDefault(i => i.Type == featureType.FullName) ?? - new PluginFeatureEntity {IsEnabled = true, Type = featureType.FullName!}; + new PluginFeatureEntity {IsEnabled = plugin.Info.AutoEnableFeatures, Type = featureType.FullName!}; } catch (Exception e) { throw new ArtemisPluginException(plugin, "Failed to instantiate feature", e); } + } // Activate plugins after they are all loaded foreach (PluginFeature pluginFeature in plugin.Features.Where(i => i.Entity.IsEnabled)) + { try { EnablePluginFeature(pluginFeature, false, !ignorePluginLock); @@ -336,6 +341,7 @@ namespace Artemis.Core.Services { // ignored, logged in EnablePluginFeature } + } if (saveState) { @@ -477,8 +483,10 @@ namespace Artemis.Core.Services private void SavePlugin(Plugin plugin) { foreach (PluginFeature pluginFeature in plugin.Features) + { if (plugin.Entity.Features.All(i => i.Type != pluginFeature.GetType().FullName)) plugin.Entity.Features.Add(pluginFeature.Entity); + } _pluginRepository.SavePlugin(plugin.Entity); } diff --git a/src/Artemis.Core/Services/Storage/SurfaceService.cs b/src/Artemis.Core/Services/Storage/SurfaceService.cs index 7d1229fb5..f36b0c2e6 100644 --- a/src/Artemis.Core/Services/Storage/SurfaceService.cs +++ b/src/Artemis.Core/Services/Storage/SurfaceService.cs @@ -207,7 +207,9 @@ namespace Artemis.Core.Services public void AutoArrange(ArtemisSurface? artemisSurface = null) { artemisSurface ??= ActiveSurface; - + if (!artemisSurface.Devices.Any()) + return; + SurfaceArrangement surfaceArrangement = SurfaceArrangement.GetDefaultArrangement(); surfaceArrangement.Arrange(artemisSurface); UpdateSurfaceConfiguration(artemisSurface, true); diff --git a/src/Artemis.UI/Screens/SetupWizard/Steps/DevicesStepViewModel.cs b/src/Artemis.UI/Screens/SetupWizard/Steps/DevicesStepViewModel.cs index a1fdbd68b..afa859b2b 100644 --- a/src/Artemis.UI/Screens/SetupWizard/Steps/DevicesStepViewModel.cs +++ b/src/Artemis.UI/Screens/SetupWizard/Steps/DevicesStepViewModel.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; using Artemis.Core.DeviceProviders; using Artemis.Core.Services; using Artemis.UI.Ninject.Factories; @@ -24,7 +25,13 @@ namespace Artemis.UI.Screens.SetupWizard.Steps protected override void OnActivate() { Items.Clear(); - Items.AddRange(_pluginManagementService.GetFeaturesOfType().Select(d => _settingsVmFactory.CreatePluginFeatureViewModel(d))); + + // _pluginManagementService.GetFeaturesOfType<>() will only give us enabled features so lets get all of them this way + IEnumerable features = _pluginManagementService.GetAllPlugins() + .SelectMany(p => p.Features.Where(f => f is DeviceProvider)) + .Cast() + .OrderBy(d => d.GetType().Name); + Items.AddRange(features.Select(d => _settingsVmFactory.CreatePluginFeatureViewModel(d))); base.OnActivate(); } diff --git a/src/Artemis.UI/Screens/SetupWizard/Steps/FinishStepViewModel.cs b/src/Artemis.UI/Screens/SetupWizard/Steps/FinishStepViewModel.cs index d9a4b7d43..bdd3b5797 100644 --- a/src/Artemis.UI/Screens/SetupWizard/Steps/FinishStepViewModel.cs +++ b/src/Artemis.UI/Screens/SetupWizard/Steps/FinishStepViewModel.cs @@ -1,10 +1,18 @@ using System.Windows.Navigation; +using Artemis.Core.Services; using Stylet; namespace Artemis.UI.Screens.SetupWizard.Steps { public class FinishStepViewModel : Screen { + private readonly ICoreService _coreService; + + public FinishStepViewModel(ICoreService coreService) + { + _coreService = coreService; + } + public void OpenHyperlink(object sender, RequestNavigateEventArgs e) { Core.Utilities.OpenUrl(e.Uri.AbsoluteUri); @@ -14,5 +22,11 @@ namespace Artemis.UI.Screens.SetupWizard.Steps { ((SetupWizardViewModel) Parent).SkipOrFinishWizard(); } + + protected override void OnActivate() + { + _coreService.PlayIntroAnimation(); + base.OnActivate(); + } } } \ No newline at end of file