mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Added profile deserialization
This commit is contained in:
1 parent
e18195c277
commit
296414001b
9 files changed
+132
-73
No files matched your search
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using Artemis.Core.Models.Profile.Interfaces;
|
||||
using Artemis.Core.Models.Profile.Abstract;
|
||||
using Artemis.Core.Plugins.Abstract;
|
||||
using Artemis.Core.Plugins.Interfaces;
|
||||
using Artemis.Core.Services.Interfaces;
|
||||
@@ -9,22 +9,38 @@ using Artemis.Storage.Entities;
|
||||
|
||||
namespace Artemis.Core.Models.Profile
|
||||
{
|
||||
public class Layer : IProfileElement
|
||||
public class Layer : ProfileElement
|
||||
{
|
||||
public Layer(Profile profile)
|
||||
internal Layer(Profile profile, Folder folder, string name)
|
||||
{
|
||||
LayerEntity = new LayerEntity();
|
||||
Guid = System.Guid.NewGuid().ToString();
|
||||
|
||||
Profile = profile;
|
||||
Children = new List<IProfileElement>();
|
||||
ParentFolder = folder;
|
||||
Name = name;
|
||||
}
|
||||
|
||||
internal Layer(Profile profile, Folder folder, LayerEntity layerEntity, IPluginService pluginService)
|
||||
{
|
||||
LayerEntity = layerEntity;
|
||||
Guid = layerEntity.Guid;
|
||||
|
||||
Profile = profile;
|
||||
ParentFolder = folder;
|
||||
LayerType = pluginService.GetLayerTypeByGuid(System.Guid.Parse(layerEntity.LayerTypeGuid));
|
||||
}
|
||||
|
||||
internal LayerEntity LayerEntity { get; set; }
|
||||
internal string Guid { get; set; }
|
||||
|
||||
public Profile Profile { get; }
|
||||
public Folder ParentFolder { get; }
|
||||
|
||||
public LayerType LayerType { get; private set; }
|
||||
public ILayerTypeConfiguration LayerTypeConfiguration { get; set; }
|
||||
public List<IProfileElement> Children { get; set; }
|
||||
public int Order { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
public void Update(double deltaTime)
|
||||
public override void Update(double deltaTime)
|
||||
{
|
||||
if (LayerType == null)
|
||||
return;
|
||||
@@ -35,7 +51,7 @@ namespace Artemis.Core.Models.Profile
|
||||
}
|
||||
}
|
||||
|
||||
public void Render(double deltaTime, Surface.Surface surface, Graphics graphics)
|
||||
public override void Render(double deltaTime, Surface.Surface surface, Graphics graphics)
|
||||
{
|
||||
if (LayerType == null)
|
||||
return;
|
||||
@@ -46,16 +62,14 @@ namespace Artemis.Core.Models.Profile
|
||||
}
|
||||
}
|
||||
|
||||
public static Layer FromLayerEntity(Profile profile, LayerEntity layerEntity, IPluginService pluginService)
|
||||
internal override void ApplyToEntity()
|
||||
{
|
||||
var layer = new Layer(profile)
|
||||
{
|
||||
Name = layerEntity.Name,
|
||||
Order = layerEntity.Order,
|
||||
LayerType = pluginService.GetLayerTypeByGuid(Guid.Parse(layerEntity.Guid))
|
||||
};
|
||||
LayerEntity.Guid = Guid;
|
||||
LayerEntity.Order = Order;
|
||||
LayerEntity.Name = Name;
|
||||
LayerEntity.LayerTypeGuid = LayerType?.PluginInfo.Guid.ToString();
|
||||
|
||||
return layer;
|
||||
// TODO: Settings
|
||||
}
|
||||
|
||||
public void UpdateLayerType(LayerType layerType)
|
||||
|
||||
Reference in new issue
Block a user