Hue Preserving Color Blending
OperationSignal.cs
1 using System;
2 
4 {
5  [Serializable]
6  internal class OperationSignal<T> where T: IBaseOperation
7  {
8  public event Action<T> OnOperation = delegate { };
9 
10  public T Operation { get; set; }
11 
12  public void SetOperation(T operation)
13  {
14  Operation = operation;
15  OnOperation(operation);
16  }
17 
18  public void WhenOperation(Action<T> callback)
19  {
20  if (Operation != null)
21  callback(Operation);
22  OnOperation += callback;
23  }
24 
25  internal void ResetEvents()
26  {
27  OnOperation = delegate { };
28  }
29  }
30 }