mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Data bindings - WIP commit
This commit is contained in:
1 parent
7bcac904fc
commit
1dc58fd09a
42 files changed
+902
-356
No files matched your search
@@ -15,6 +15,8 @@ namespace Artemis.Core.Services
|
||||
{
|
||||
_logger = logger;
|
||||
_registeredDataBindingModifierTypes = new List<DataBindingModifierType>();
|
||||
|
||||
RegisterBuiltInModifiers();
|
||||
}
|
||||
|
||||
public IReadOnlyCollection<DataBindingModifierType> RegisteredDataBindingModifierTypes
|
||||
@@ -98,5 +100,10 @@ namespace Artemis.Core.Services
|
||||
dataBindingModifier.Entity.ModifierType
|
||||
);
|
||||
}
|
||||
|
||||
private void RegisterBuiltInModifiers()
|
||||
{
|
||||
RegisterModifierType(Constants.CorePluginInfo, new MultiplicationModifierType());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,5 +54,6 @@ namespace Artemis.Core.Services
|
||||
void RemoveLayerEffect(BaseLayerEffect layerEffect);
|
||||
|
||||
void InstantiateDisplayConditions(RenderProfileElement renderElement);
|
||||
void InstantiateDataBindings(RenderProfileElement renderElement);
|
||||
}
|
||||
}
|
||||
@@ -10,16 +10,18 @@ namespace Artemis.Core.Services
|
||||
internal class RenderElementService : IRenderElementService
|
||||
{
|
||||
private readonly IDataModelService _dataModelService;
|
||||
private readonly IDataBindingService _dataBindingService;
|
||||
private readonly IKernel _kernel;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IPluginService _pluginService;
|
||||
|
||||
public RenderElementService(IKernel kernel, ILogger logger, IPluginService pluginService, IDataModelService dataModelService)
|
||||
public RenderElementService(IKernel kernel, ILogger logger, IPluginService pluginService, IDataModelService dataModelService, IDataBindingService dataBindingService)
|
||||
{
|
||||
_kernel = kernel;
|
||||
_logger = logger;
|
||||
_pluginService = pluginService;
|
||||
_dataModelService = dataModelService;
|
||||
_dataBindingService = dataBindingService;
|
||||
}
|
||||
|
||||
public Layer CreateLayer(Profile profile, ProfileElement parent, string name)
|
||||
@@ -35,6 +37,7 @@ namespace Artemis.Core.Services
|
||||
InstantiateLayerBrush(layer);
|
||||
InstantiateLayerEffects(layer);
|
||||
InstantiateDisplayConditions(layer);
|
||||
InstantiateDataBindings(layer);
|
||||
return layer;
|
||||
}
|
||||
|
||||
@@ -156,5 +159,11 @@ namespace Artemis.Core.Services
|
||||
_logger.Warning(e, $"Failed to init display conditions for {renderElement}");
|
||||
}
|
||||
}
|
||||
|
||||
public void InstantiateDataBindings(RenderProfileElement renderElement)
|
||||
{
|
||||
foreach (var baseLayerProperty in renderElement.GetAllLayerProperties())
|
||||
baseLayerProperty.InitializeDataBindings(_dataModelService, _dataBindingService);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -299,6 +299,7 @@ namespace Artemis.Core.Services
|
||||
_renderElementService.RemoveLayerEffect(layerLayerEffect);
|
||||
|
||||
_renderElementService.InstantiateDisplayConditions(folder);
|
||||
_renderElementService.InstantiateDataBindings(folder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -324,6 +325,7 @@ namespace Artemis.Core.Services
|
||||
_renderElementService.RemoveLayerEffect(layerLayerEffect);
|
||||
|
||||
_renderElementService.InstantiateDisplayConditions(layer);
|
||||
_renderElementService.InstantiateDataBindings(layer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user