diff --git a/src/Artemis.Core/Artemis.Core.csproj b/src/Artemis.Core/Artemis.Core.csproj index c3f3f14da..74173aeed 100644 --- a/src/Artemis.Core/Artemis.Core.csproj +++ b/src/Artemis.Core/Artemis.Core.csproj @@ -61,9 +61,6 @@ - - ..\..\..\RGB.NET\bin\netstandard2.0\RGB.NET.Brushes.dll - ..\..\..\RGB.NET\bin\netstandard2.0\RGB.NET.Core.dll diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs b/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs index 7770913b8..dd5e6e367 100644 --- a/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs +++ b/src/Artemis.Core/Plugins/DataModelExpansions/DataModel.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Reflection; using Artemis.Core.Exceptions; using Artemis.Core.Plugins.DataModelExpansions.Attributes; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Plugins.Modules; namespace Artemis.Core.Plugins.DataModelExpansions diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/BaseDataModelExpansion.cs b/src/Artemis.Core/Plugins/DataModelExpansions/DataModelExpansion.cs similarity index 60% rename from src/Artemis.Core/Plugins/DataModelExpansions/BaseDataModelExpansion.cs rename to src/Artemis.Core/Plugins/DataModelExpansions/DataModelExpansion.cs index 80ed5ce07..b6ec6d36c 100644 --- a/src/Artemis.Core/Plugins/DataModelExpansions/BaseDataModelExpansion.cs +++ b/src/Artemis.Core/Plugins/DataModelExpansions/DataModelExpansion.cs @@ -1,10 +1,7 @@ using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; using System.Linq.Expressions; -using System.Reflection; -using Artemis.Core.Plugins.DataModelExpansions.Attributes; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Utilities; namespace Artemis.Core.Plugins.DataModelExpansions @@ -12,7 +9,7 @@ namespace Artemis.Core.Plugins.DataModelExpansions /// /// Allows you to expand the application-wide datamodel /// - public abstract class BaseDataModelExpansion : BaseDataModelExpansion where T : DataModel + public abstract class DataModelExpansion : BaseDataModelExpansion where T : DataModel { /// /// The data model driving this module @@ -58,31 +55,4 @@ namespace Artemis.Core.Plugins.DataModelExpansions base.InternalDisablePlugin(); } } - - /// - /// For internal use only, to implement your own layer property type, extend - /// instead. - /// - public abstract class BaseDataModelExpansion : Plugin - { - protected readonly List HiddenPropertiesList = new List(); - - /// - /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y) - /// - public ReadOnlyCollection HiddenProperties => HiddenPropertiesList.AsReadOnly(); - - internal DataModel InternalDataModel { get; set; } - public abstract void Update(double deltaTime); - - /// - /// Override to provide your own data model description. By default this returns a description matching your plugin - /// name and description - /// - /// - public virtual DataModelPropertyAttribute GetDataModelDescription() - { - return new DataModelPropertyAttribute {Name = PluginInfo.Name, Description = PluginInfo.Description}; - } - } } \ No newline at end of file diff --git a/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs b/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs new file mode 100644 index 000000000..d292025f7 --- /dev/null +++ b/src/Artemis.Core/Plugins/DataModelExpansions/Internal/BaseDataModelExpansion.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Reflection; +using Artemis.Core.Plugins.DataModelExpansions.Attributes; + +namespace Artemis.Core.Plugins.DataModelExpansions.Internal +{ + /// + /// For internal use only, to implement your own layer property type, extend + /// instead. + /// + public abstract class BaseDataModelExpansion : Plugin + { + protected readonly List HiddenPropertiesList = new List(); + + /// + /// Gets a list of all properties ignored at runtime using IgnoreProperty(x => x.y) + /// + public ReadOnlyCollection HiddenProperties => HiddenPropertiesList.AsReadOnly(); + + internal DataModel InternalDataModel { get; set; } + public abstract void Update(double deltaTime); + + /// + /// Override to provide your own data model description. By default this returns a description matching your plugin + /// name and description + /// + /// + public virtual DataModelPropertyAttribute GetDataModelDescription() + { + return new DataModelPropertyAttribute {Name = PluginInfo.Name, Description = PluginInfo.Description}; + } + } +} \ No newline at end of file diff --git a/src/Artemis.Core/Plugins/LayerEffects/LayerEffectProvider.cs b/src/Artemis.Core/Plugins/LayerEffects/LayerEffectProvider.cs index 123f81780..f68614cde 100644 --- a/src/Artemis.Core/Plugins/LayerEffects/LayerEffectProvider.cs +++ b/src/Artemis.Core/Plugins/LayerEffects/LayerEffectProvider.cs @@ -22,7 +22,7 @@ namespace Artemis.Core.Plugins.LayerEffects } /// - /// A read-only collection of all layer effects added with + /// A read-only collection of all layer effects added with /// public ReadOnlyCollection LayerEffectDescriptors => _layerEffectDescriptors.AsReadOnly(); @@ -37,7 +37,7 @@ namespace Artemis.Core.Plugins.LayerEffects /// The Material icon to display in the UI, a full reference can be found /// here /// - protected void AddLayerEffectDescriptor(string displayName, string description, string icon) where T : BaseLayerEffect + protected void RegisterLayerEffectDescriptor(string displayName, string description, string icon) where T : BaseLayerEffect { if (!Enabled) throw new ArtemisPluginException(PluginInfo, "Can only add a layer effect descriptor when the plugin is enabled"); diff --git a/src/Artemis.Core/Plugins/Modules/Module.cs b/src/Artemis.Core/Plugins/Modules/Module.cs index 2c2a69ad6..eb71dbec3 100644 --- a/src/Artemis.Core/Plugins/Modules/Module.cs +++ b/src/Artemis.Core/Plugins/Modules/Module.cs @@ -28,7 +28,7 @@ namespace Artemis.Core.Plugins.Modules /// Gets or sets whether this module must also expand the main data model /// /// Note: If expanding the main data model is all you want your plugin to do, create a - /// plugin instead. + /// plugin instead. /// /// public bool ExpandsDataModel diff --git a/src/Artemis.Core/Plugins/Modules/ProfileModule.cs b/src/Artemis.Core/Plugins/Modules/ProfileModule.cs index 71fbe0e8f..894757b42 100644 --- a/src/Artemis.Core/Plugins/Modules/ProfileModule.cs +++ b/src/Artemis.Core/Plugins/Modules/ProfileModule.cs @@ -10,6 +10,7 @@ using Artemis.Core.Models.Profile; using Artemis.Core.Models.Surface; using Artemis.Core.Plugins.DataModelExpansions; using Artemis.Core.Plugins.DataModelExpansions.Attributes; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Utilities; using SkiaSharp; diff --git a/src/Artemis.Core/Services/CoreService.cs b/src/Artemis.Core/Services/CoreService.cs index 5ea7d57c0..c4a223ec8 100644 --- a/src/Artemis.Core/Services/CoreService.cs +++ b/src/Artemis.Core/Services/CoreService.cs @@ -10,6 +10,7 @@ using Artemis.Core.JsonConverters; using Artemis.Core.Models.Profile; using Artemis.Core.Ninject; using Artemis.Core.Plugins.DataModelExpansions; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Plugins.Settings; using Artemis.Core.Services.Interfaces; using Artemis.Core.Services.Storage.Interfaces; diff --git a/src/Artemis.Core/Services/DataModelService.cs b/src/Artemis.Core/Services/DataModelService.cs index 6cb887d58..e0ac571d4 100644 --- a/src/Artemis.Core/Services/DataModelService.cs +++ b/src/Artemis.Core/Services/DataModelService.cs @@ -9,6 +9,7 @@ using Artemis.Core.Models.Profile.Conditions; using Artemis.Core.Models.Profile.Conditions.Operators; using Artemis.Core.Plugins; using Artemis.Core.Plugins.DataModelExpansions; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Plugins.Exceptions; using Artemis.Core.Plugins.Modules; using Artemis.Core.Services.Interfaces; diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index ff5e11035..7fa203cf2 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -52,6 +52,11 @@ + + + ..\..\..\RGB.NET\bin\netstandard2.0\RGB.NET.Brushes.dll + true + ..\..\..\RGB.NET\bin\netstandard2.0\RGB.NET.Core.dll diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs index 3715bd266..77af8a5a2 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs @@ -4,6 +4,7 @@ using System.IO; using System.Threading.Tasks; using Artemis.Core.Plugins; using Artemis.Core.Plugins.DataModelExpansions; +using Artemis.Core.Plugins.DataModelExpansions.Internal; using Artemis.Core.Plugins.DeviceProviders; using Artemis.Core.Plugins.LayerBrushes; using Artemis.Core.Plugins.LayerEffects; diff --git a/src/Artemis.sln b/src/Artemis.sln index 480cacd0c..1af8e3f62 100644 --- a/src/Artemis.sln +++ b/src/Artemis.sln @@ -74,8 +74,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LayerEffects", "LayerEffect EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.LayerEffects.Filter", "Plugins\Artemis.Plugins.LayerEffects.Filter\Artemis.Plugins.LayerEffects.Filter.csproj", "{62214042-667E-4B29-B64E-1A68CE6FE209}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataModelExpansions", "DataModelExpansions", "{4E85F6B5-83FB-4830-8787-555103F26ECD}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.Devices.Debug", "Plugins\Artemis.Plugins.Devices.Debug\Artemis.Plugins.Devices.Debug.csproj", "{3D83760B-0A36-4C8F-978D-7949C3FC862B}" EndProject Global @@ -288,7 +286,6 @@ Global {301C3AAA-9F79-46A5-9B9D-86F076C5BDD1} = {A311DC47-42A2-4DD4-B921-50FBF7A33F41} {2C1477DC-7A5C-4B65-85DB-1F16A18FB2EC} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} {62214042-667E-4B29-B64E-1A68CE6FE209} = {2C1477DC-7A5C-4B65-85DB-1F16A18FB2EC} - {4E85F6B5-83FB-4830-8787-555103F26ECD} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} {3D83760B-0A36-4C8F-978D-7949C3FC862B} = {88792A7E-F037-4280-81D3-B131508EF1D8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/src/Plugins/Artemis.Plugins.LayerEffects.Filter/FilterEffectProvider.cs b/src/Plugins/Artemis.Plugins.LayerEffects.Filter/FilterEffectProvider.cs index a17dfb4ba..66f225f11 100644 --- a/src/Plugins/Artemis.Plugins.LayerEffects.Filter/FilterEffectProvider.cs +++ b/src/Plugins/Artemis.Plugins.LayerEffects.Filter/FilterEffectProvider.cs @@ -6,17 +6,17 @@ namespace Artemis.Plugins.LayerEffects.Filter { public override void EnablePlugin() { - AddLayerEffectDescriptor( + RegisterLayerEffectDescriptor( "Blur", "A layer effect providing a blur filter effect. \r\nNote: CPU intensive, best to only use on small layers or for a short period of time.", "BlurOn" ); - AddLayerEffectDescriptor("Dilate", "A layer effect providing a dilation filter effect", "EyePlus"); - AddLayerEffectDescriptor("Opacity", "A layer effect letting you change the opacity of all children", "Opacity"); - AddLayerEffectDescriptor("Erode", "A layer effect providing an erode filter effect", "EyeMinus"); - AddLayerEffectDescriptor("Glow", "A layer effect providing a glow filter effect", "BoxShadow"); - AddLayerEffectDescriptor("Gray-scale", "A layer effect providing a gray-scale filter effect", "InvertColors"); - AddLayerEffectDescriptor("Color matrix", "A layer effect allowing you to apply a custom color matrix", "Matrix"); + RegisterLayerEffectDescriptor("Dilate", "A layer effect providing a dilation filter effect", "EyePlus"); + RegisterLayerEffectDescriptor("Opacity", "A layer effect letting you change the opacity of all children", "Opacity"); + RegisterLayerEffectDescriptor("Erode", "A layer effect providing an erode filter effect", "EyeMinus"); + RegisterLayerEffectDescriptor("Glow", "A layer effect providing a glow filter effect", "BoxShadow"); + RegisterLayerEffectDescriptor("Gray-scale", "A layer effect providing a gray-scale filter effect", "InvertColors"); + RegisterLayerEffectDescriptor("Color matrix", "A layer effect allowing you to apply a custom color matrix", "Matrix"); } public override void DisablePlugin()