// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedParameter.Global
namespace CUE.NET.Effects
{
///
/// Represents a basic effect.
///
public interface IEffect
{
#region Properties & Fields
///
/// Gets if this effect has finished all of his work.
///
bool IsDone { get; }
#endregion
#region Methods
///
/// Updates the effect.
///
/// The elapsed time (in seconds) since the last update.
void Update(float deltaTime);
#endregion
}
///
/// Represents a basic effect.
///
/// The type of this effect can be attached to.
public interface IEffect : IEffect
where T : IEffectTarget
{
#region Methods
///
/// Checks if the effect can be applied to the target object.
///
/// The this effect is attached to.
/// true if the effect can be attached; otherwise, false.
bool CanBeAppliedTo(T target);
///
/// Hook which is called when the effect is attached to a device.
///
/// The this effect is attached to.
void OnAttach(T target);
///
/// Hook which is called when the effect is detached from a device.
///
/// The this effect is detached from.
void OnDetach(T target);
#endregion
}
}