public Controller(dzn.Locator locator, String name = "", dzn.Meta parent = null) : base(locator, name, parent) { this.dzn_runtime.infos[this].flushes = true; this.out_ia = null; this.ia = new iCommand(); this.ia.dzn_meta.provides.name = "ia"; this.ia.dzn_meta.provides.meta = this.dzn_meta; this.ia.dzn_meta.provides.component = this; this.iu = new iUnity(); this.iu.dzn_meta.requires.name = "iu"; this.iu.dzn_meta.requires.component = this; this.iu.dzn_meta.requires.meta = this.dzn_meta; this.dzn_meta.requires = new List <dzn.port.Meta> { this.iu.dzn_meta, }; this.dzn_meta.children = new List <dzn.Meta> { }; this.dzn_meta.ports_connected = new List <Action> { ia.check_bindings, iu.check_bindings, }; this.ia.inport.start = () => { dzn.Runtime.callIn(this, () => { ia_start(); }, this.ia.dzn_meta, "start"); }; this.iu.outport.wallHit = () => { dzn.Runtime.callOut(this, () => { iu_wallHit(); }, this.iu.dzn_meta, "wallHit"); }; }