DirectOutputR1
DirectOutput framework R1 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 
8 namespace DirectOutput.FX.RGBAFX
9 {
13  public abstract class RGBAEffectBase:EffectBase
14  {
15  protected Table.Table Table;
16 
17  private string _ToyName;
18 
19 
26  public string ToyName
27  {
28  get { return _ToyName; }
29  set
30  {
31  if (_ToyName != value)
32  {
33  _ToyName = value;
34  _RGBAToy = null;
35  }
36  }
37  }
38 
39 
40  private int _Layer=0;
41 
48  public int Layer
49  {
50  get { return _Layer; }
51  set { _Layer = value; }
52  }
53 
54 
55 
56  private IRGBAToy _RGBAToy;
57 
62  [XmlIgnoreAttribute]
63  public IRGBAToy RGBAToy
64  {
65  get
66  {
67  return _RGBAToy;
68  }
69  }
70 
71  private void ResolveName(Table.Table Table)
72  {
73 
74  if (!ToyName.IsNullOrWhiteSpace() && Table.Pinball.Cabinet.Toys.Contains(ToyName))
75  {
76  if (Table.Pinball.Cabinet.Toys[ToyName] is IRGBAToy)
77  {
78  _RGBAToy = (IRGBAToy)Table.Pinball.Cabinet.Toys[ToyName];
79  }
80 
81  }
82  }
83 
89  public override void Init(Table.Table Table)
90  {
91  this.Table = Table;
92  ResolveName(Table);
93  }
94 
98  public override void Finish()
99  {
100  base.Finish();
101  this.Table = null;
102  }
103 
104  }
105 }