mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Layer properties - Added back most of the reworked VMs and views
This commit is contained in:
1 parent
7b238e241e
commit
ea66dcd39e
21 files changed
+862
-146
No files matched your search
@@ -8,10 +8,16 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
/// </summary>
|
||||
public abstract class BaseLayerPropertyKeyframe
|
||||
{
|
||||
internal BaseLayerPropertyKeyframe()
|
||||
internal BaseLayerPropertyKeyframe(BaseLayerProperty baseLayerProperty)
|
||||
{
|
||||
BaseLayerProperty = baseLayerProperty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The base class of the layer property this keyframe is applied to
|
||||
/// </summary>
|
||||
public BaseLayerProperty BaseLayerProperty { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// The position of this keyframe in the timeline
|
||||
/// </summary>
|
||||
@@ -20,8 +26,6 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
/// <summary>
|
||||
/// The easing function applied on the value of the keyframe
|
||||
/// </summary>
|
||||
public abstract Easings.Functions EasingFunction { get; set; }
|
||||
|
||||
internal abstract BaseLayerProperty BaseLayerProperty { get; }
|
||||
public Easings.Functions EasingFunction { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -90,7 +90,7 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
var currentKeyframe = Keyframes.FirstOrDefault(k => k.Position == time.Value);
|
||||
// Create a new keyframe if none found
|
||||
if (currentKeyframe == null)
|
||||
AddKeyframe(new LayerPropertyKeyframe<T>(value, time.Value, Easings.Functions.Linear));
|
||||
AddKeyframe(new LayerPropertyKeyframe<T>(value, time.Value, Easings.Functions.Linear, this));
|
||||
else
|
||||
currentKeyframe.Value = value;
|
||||
|
||||
@@ -105,20 +105,47 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
/// <param name="keyframe">The keyframe to add</param>
|
||||
public void AddKeyframe(LayerPropertyKeyframe<T> keyframe)
|
||||
{
|
||||
if (_keyframes.Contains(keyframe))
|
||||
return;
|
||||
|
||||
keyframe.LayerProperty?.RemoveKeyframe(keyframe);
|
||||
|
||||
keyframe.LayerProperty = this;
|
||||
keyframe.BaseLayerProperty = this;
|
||||
_keyframes.Add(keyframe);
|
||||
SortKeyframes();
|
||||
OnKeyframeAdded();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a keyframe from the layer property
|
||||
/// </summary>
|
||||
/// <param name="keyframe">The keyframe to remove</param>
|
||||
public LayerPropertyKeyframe<T> CopyKeyframe(LayerPropertyKeyframe<T> keyframe)
|
||||
{
|
||||
var newKeyframe = new LayerPropertyKeyframe<T>(
|
||||
keyframe.Value,
|
||||
keyframe.Position,
|
||||
keyframe.EasingFunction,
|
||||
keyframe.LayerProperty
|
||||
);
|
||||
AddKeyframe(newKeyframe);
|
||||
|
||||
return newKeyframe;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a keyframe from the layer property
|
||||
/// </summary>
|
||||
/// <param name="keyframe">The keyframe to remove</param>
|
||||
public void RemoveKeyframe(LayerPropertyKeyframe<T> keyframe)
|
||||
{
|
||||
if (!_keyframes.Contains(keyframe))
|
||||
return;
|
||||
|
||||
_keyframes.Remove(keyframe);
|
||||
keyframe.LayerProperty = null;
|
||||
keyframe.BaseLayerProperty = null;
|
||||
SortKeyframes();
|
||||
OnKeyframeRemoved();
|
||||
}
|
||||
@@ -213,8 +240,9 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
_keyframes.AddRange(entity.KeyframeEntities.Select(k => new LayerPropertyKeyframe<T>(
|
||||
JsonConvert.DeserializeObject<T>(k.Value),
|
||||
k.Position,
|
||||
(Easings.Functions) k.EasingFunction)
|
||||
));
|
||||
(Easings.Functions) k.EasingFunction,
|
||||
this
|
||||
)));
|
||||
}
|
||||
catch (JsonException e)
|
||||
{
|
||||
|
||||
@@ -7,10 +7,11 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
{
|
||||
private TimeSpan _position;
|
||||
|
||||
public LayerPropertyKeyframe(T value, TimeSpan position, Easings.Functions easingFunction)
|
||||
public LayerPropertyKeyframe(T value, TimeSpan position, Easings.Functions easingFunction, LayerProperty<T> layerProperty) : base(layerProperty)
|
||||
{
|
||||
_position = position;
|
||||
Value = value;
|
||||
LayerProperty = layerProperty;
|
||||
EasingFunction = easingFunction;
|
||||
}
|
||||
|
||||
@@ -34,10 +35,5 @@ namespace Artemis.Core.Models.Profile.LayerProperties
|
||||
LayerProperty.SortKeyframes();
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public sealed override Easings.Functions EasingFunction { get; set; }
|
||||
|
||||
internal override BaseLayerProperty BaseLayerProperty => LayerProperty;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user