DirectOuput Framework R2
DirectOutput framework R2 for virtual pinball cabinets
Go to:
Overview 
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros Pages
RGBAEffectBase.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using DirectOutput.Cab.Toys.Layer;
6 using System.Xml.Serialization;
7 using DirectOutput.Cab.Toys;
8 using DirectOutput.General.Color;
9 
10 namespace DirectOutput.FX.RGBAFX
11 {
15  public abstract class RGBAEffectBase:EffectBase
16  {
17  protected Table.Table Table;
18 
19  private string _ToyName;
20 
21 
28  public string ToyName
29  {
30  get { return _ToyName; }
31  set
32  {
33  if (_ToyName != value)
34  {
35  _ToyName = value;
36  RGBAToy = null;
37  Layer = null;
38  }
39  }
40  }
41 
42 
43  [XmlIgnoreAttribute]
44  protected RGBAColor Layer { get; private set; }
45 
46 
47 
48  private int _LayerNr=0;
49 
56  public int LayerNr
57  {
58  get { return _LayerNr; }
59  set { _LayerNr = value; }
60  }
61 
62 
63 
64  private IRGBAToy _RGBAToy;
65 
70  [XmlIgnoreAttribute]
71  public IRGBAToy RGBAToy
72  {
73  get
74  {
75  return _RGBAToy;
76  }
77  private set
78  {
79  _RGBAToy = value;
80  }
81  }
82 
83 
89  public override void Init(Table.Table Table)
90  {
91  this.Table = Table;
92  if (!ToyName.IsNullOrWhiteSpace() && Table.Pinball.Cabinet.Toys.Contains(ToyName))
93  {
94  if (Table.Pinball.Cabinet.Toys[ToyName] is IRGBAToy)
95  {
96  RGBAToy = (IRGBAToy)Table.Pinball.Cabinet.Toys[ToyName];
97  Layer = RGBAToy.Layers[LayerNr];
98  }
99 
100  }
101  }
102 
106  public override void Finish()
107  {
108  this.Layer = null;
109  this.RGBAToy = null;
110  this.Table = null;
111 
112  base.Finish();
113  }
114 
115  }
116 }