mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Implemented layer element saving
Added a working setting to the brush element
This commit is contained in:
1 parent
be03167f7e
commit
8ba2e58c5d
24 files changed
+440
-85
No files matched your search
@@ -6,6 +6,7 @@ using Artemis.Core.Extensions;
|
||||
using Artemis.Core.Models.Profile.Abstract;
|
||||
using Artemis.Core.Models.Surface;
|
||||
using Artemis.Core.Plugins.LayerElement;
|
||||
using Artemis.Core.Services.Interfaces;
|
||||
using Artemis.Storage.Entities.Profile;
|
||||
using Newtonsoft.Json;
|
||||
using SkiaSharp;
|
||||
@@ -61,7 +62,7 @@ namespace Artemis.Core.Models.Profile
|
||||
|
||||
public override void Render(double deltaTime, ArtemisSurface surface, SKCanvas canvas)
|
||||
{
|
||||
if (RenderRectangle == null || AbsoluteRenderRectangle == null || RenderPath == null)
|
||||
if (RenderPath == null)
|
||||
return;
|
||||
|
||||
canvas.Save();
|
||||
@@ -127,6 +128,7 @@ namespace Artemis.Core.Models.Profile
|
||||
{
|
||||
var layerElementEntity = new LayerElementEntity
|
||||
{
|
||||
Id = layerElement.Guid,
|
||||
PluginGuid = layerElement.Descriptor.LayerElementProvider.PluginInfo.Guid,
|
||||
LayerElementType = layerElement.GetType().Name,
|
||||
Configuration = JsonConvert.SerializeObject(layerElement.Settings)
|
||||
@@ -164,7 +166,12 @@ namespace Artemis.Core.Models.Profile
|
||||
_layerElements.Add(layerElement);
|
||||
}
|
||||
|
||||
public void ApplySurface(ArtemisSurface surface)
|
||||
internal void RemoveLayerElement(LayerElement layerElement)
|
||||
{
|
||||
_layerElements.Remove(layerElement);
|
||||
}
|
||||
|
||||
internal void PopulateLeds(ArtemisSurface surface)
|
||||
{
|
||||
var leds = new List<ArtemisLed>();
|
||||
|
||||
@@ -181,14 +188,11 @@ namespace Artemis.Core.Models.Profile
|
||||
_leds = leds;
|
||||
CalculateRenderProperties();
|
||||
}
|
||||
|
||||
|
||||
internal void CalculateRenderProperties()
|
||||
{
|
||||
if (!Leds.Any())
|
||||
{
|
||||
// TODO: Create an empty rectangle and path
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine to top-left and bottom-right
|
||||
var minX = Leds.Min(l => l.AbsoluteRenderRectangle.Left);
|
||||
|
||||
@@ -85,7 +85,6 @@ namespace Artemis.Core.Models.Profile
|
||||
ProfileEntity.Layers.AddRange(GetAllLayers().Select(f => f.LayerEntity));
|
||||
}
|
||||
|
||||
|
||||
internal void Activate(ArtemisSurface surface)
|
||||
{
|
||||
lock (this)
|
||||
@@ -93,7 +92,7 @@ namespace Artemis.Core.Models.Profile
|
||||
if (IsActivated)
|
||||
return;
|
||||
|
||||
ApplySurface(surface);
|
||||
PopulateLeds(surface);
|
||||
OnActivated();
|
||||
IsActivated = true;
|
||||
}
|
||||
@@ -115,10 +114,10 @@ namespace Artemis.Core.Models.Profile
|
||||
return $"{nameof(Order)}: {Order}, {nameof(Name)}: {Name}, {nameof(PluginInfo)}: {PluginInfo}";
|
||||
}
|
||||
|
||||
public void ApplySurface(ArtemisSurface surface)
|
||||
internal void PopulateLeds(ArtemisSurface surface)
|
||||
{
|
||||
foreach (var layer in GetAllLayers())
|
||||
layer.ApplySurface(surface);
|
||||
layer.PopulateLeds(surface);
|
||||
}
|
||||
|
||||
#region Events
|
||||
|
||||
Reference in new issue
Block a user