// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedParameter.Global
namespace RGB.NET.Core
{
///
/// Represents a basic effect.
///
public interface IEffect
{
#region Properties & Fields
///
/// Gets if this has finished all of his work.
///
bool IsDone { get; }
#endregion
#region Methods
///
/// Updates this .
///
/// 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 can be applied to the target object.
///
/// The this effect is attached to.
/// true if the can be attached; otherwise, false.
bool CanBeAppliedTo(T target);
///
/// Hook which is called when the is attached to a .
///
/// The this effect is attached to.
void OnAttach(T target);
///
/// Hook which is called when the is detached from a .
///
/// The this effect is detached from.
void OnDetach(T target);
#endregion
}
}