internal void SaveRenderElement() { RenderElementEntity.StartSegmentLength = StartSegmentLength; RenderElementEntity.MainSegmentLength = MainSegmentLength; RenderElementEntity.EndSegmentLength = EndSegmentLength; RenderElementEntity.DisplayContinuously = DisplayContinuously; RenderElementEntity.AlwaysFinishTimeline = AlwaysFinishTimeline; RenderElementEntity.LayerEffects.Clear(); foreach (BaseLayerEffect layerEffect in LayerEffects) { LayerEffectEntity layerEffectEntity = new LayerEffectEntity { Id = layerEffect.EntityId, PluginGuid = layerEffect.Descriptor.PlaceholderFor ?? layerEffect.PluginInfo.Guid, EffectType = layerEffect.GetEffectTypeName(), Name = layerEffect.Name, Enabled = layerEffect.Enabled, HasBeenRenamed = layerEffect.HasBeenRenamed, Order = layerEffect.Order }; RenderElementEntity.LayerEffects.Add(layerEffectEntity); layerEffect.BaseProperties.ApplyToEntity(); } // Conditions RenderElementEntity.DisplayCondition = DisplayCondition?.Entity; DisplayCondition?.Save(); }
/// <summary> /// Creates an instance of the described effect and applies it to the render element /// </summary> internal void CreateInstance(RenderProfileElement renderElement, LayerEffectEntity entity) { // Skip effects already on the element if (renderElement.LayerEffects.Any(e => e.EntityId == entity.Id)) { return; } if (PlaceholderFor != null) { CreatePlaceHolderInstance(renderElement, entity); return; } BaseLayerEffect effect = (BaseLayerEffect)LayerEffectProvider.PluginInfo.Kernel.Get(LayerEffectType); effect.ProfileElement = renderElement; effect.EntityId = entity.Id; effect.Order = entity.Order; effect.Name = entity.Name; effect.Enabled = entity.Enabled; effect.Descriptor = this; effect.Initialize(); effect.Update(0); renderElement.ActivateLayerEffect(effect); }
/// <summary> /// Creates an instance of the described effect and applies it to the render element /// </summary> internal void CreateInstance(RenderProfileElement renderElement, LayerEffectEntity entity) { // Skip effects already on the element if (renderElement.LayerEffects.Any(e => e.EntityId == entity.Id)) { return; } if (PlaceholderFor != null) { CreatePlaceHolderInstance(renderElement, entity); return; } if (LayerEffectType == null) { throw new ArtemisCoreException("Cannot create an instance of a layer effect because this descriptor is not a placeholder but is still missing its LayerEffectType"); } BaseLayerEffect effect = (BaseLayerEffect)Provider.Plugin.Kernel !.Get(LayerEffectType); effect.ProfileElement = renderElement; effect.EntityId = entity.Id; effect.Order = entity.Order; effect.Name = entity.Name; effect.Enabled = entity.Enabled; effect.Descriptor = this; effect.Initialize(); effect.Update(0); renderElement.ActivateLayerEffect(effect); }
private void CreatePlaceHolderInstance(RenderProfileElement renderElement, LayerEffectEntity entity) { PlaceholderLayerEffect effect = new PlaceholderLayerEffect(entity, PlaceholderFor.Value) { ProfileElement = renderElement, Descriptor = this }; effect.Initialize(); renderElement.ActivateLayerEffect(effect); }
internal PlaceholderLayerEffect(LayerEffectEntity originalEntity, string placeholderFor) { OriginalEntity = originalEntity; PlaceholderFor = placeholderFor; EntityId = OriginalEntity.Id; Order = OriginalEntity.Order; Name = OriginalEntity.Name; Suspended = OriginalEntity.Suspended; HasBeenRenamed = OriginalEntity.HasBeenRenamed; }
internal PlaceholderLayerEffect(LayerEffectEntity originalEntity, Guid placeholderFor) { OriginalEntity = originalEntity; PlaceholderFor = placeholderFor; EntityId = OriginalEntity.Id; Order = OriginalEntity.Order; Name = OriginalEntity.Name; Enabled = OriginalEntity.Enabled; HasBeenRenamed = OriginalEntity.HasBeenRenamed; }
private void CreatePlaceHolderInstance(RenderProfileElement renderElement, LayerEffectEntity entity) { if (PlaceholderFor == null) { throw new ArtemisCoreException("Cannot create a placeholder instance using a layer effect descriptor that is not a placeholder for anything"); } PlaceholderLayerEffect effect = new(entity, PlaceholderFor) { ProfileElement = renderElement, Descriptor = this }; effect.Initialize(); renderElement.ActivateLayerEffect(effect); } }