public EditorItem(IParticleModifier modifierModifierInstance) { ItemType = EditorItemType.ExistingModifier; InitializerType = null; ModifierInstance = modifierModifierInstance; PositionModifierInstance = null; }
public LifetimeModifier(IParticleModifier modifier, double startTime, double endTime) { this.modifier = modifier; this.startTime = startTime; this.endTime = endTime; this.length = endTime - startTime; }
private void InitializeModifiers() { foreach (IParticleModifier modifier in this.Emitter.Data.Modifiers) { IParticleModifier addedModifier = this.Modifiers.AddLast((IParticleModifier)modifier.Clone()).Value; addedModifier.SetParticle(this); } }
protected override void OnNewSettingsLoaded() { var activeModifiers = EmitterSettings.Modifiers .OfType <IEditorObject>() .ToArray(); var selectableModifiers = new IParticleModifier[] { null } .Concat(AllModifiers.Where(x => activeModifiers.All(y => y.GetType() != x.GetType()))) .ToArray(); _modifierTypes = selectableModifiers.Select(x => x?.GetType()).ToArray(); _modifierTypeNames = selectableModifiers.Select(x => x?.EditorShortName ?? "<None>").ToArray(); _selectedModifierTypeIndex = 0; }
private void WorkbenchOnModifierRemovalRequested(object sender, IParticleModifier e) { var command = new RemoveModifierCommand(e.GetType()); _commandHandler.Execute(command); }
/// <summary>Initializes a new particle movement affector</summary> /// <param name="modifier">Used to modify the particles</param> public MovementAffector(IParticleModifier <ParticleType> modifier) { this.modifier = modifier; }
/// <summary> /// Initializes a new gravity affector with a custom gravity vector /// </summary> /// <param name="modifier"> /// Modifier through which the particles' properties will be changed /// </param> /// <param name="gravity">Gravity vector that will be applied to the particles</param> public GravityAffector(IParticleModifier <ParticleType> modifier, Vector3 gravity) { this.modifier = modifier; this.Gravity = gravity; }
/// <summary> /// Initializes a new gravity affector with a custom gravity constant /// </summary> /// <param name="modifier"> /// Modifier through which the particles' properties will be changed /// </param> /// <param name="gravity"> /// Gravity constant that will be applied to the particles /// </param> public GravityAffector(IParticleModifier <ParticleType> modifier, float gravity) : this(modifier, new Vector3(0.0f, -gravity, 0.0f)) { }
/// <summary>Initializes a new gravity affector</summary> /// <param name="modifier"> /// Modifier through which the particles' properties will be changed /// </param> public GravityAffector(IParticleModifier <ParticleType> modifier) : this(modifier, StandardEarthGravity) { }
public ParticleSystem AddModifier(IParticleModifier modifier) { mModifiers.Add(modifier); return(this); }
public UpdateModifierCommand(IParticleModifier modifier) { _modifier = modifier ?? throw new ArgumentNullException(nameof(modifier)); }