Added profile deserialization

This commit is contained in:
Robert committed 2019-11-19 17:31:17 +01:00
1 parent e18195c277
commit 296414001b
9 files changed
+132 -73

No files matched your search

+31 -17
View File
@@ -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)