private bool InputMolecule(WaldoType type) { InputFactory factory = Reactor.GetInputFactory(type); Atom atom = factory.Generate(); return(atomManager.Add(atom)); }
private Reactor(Parse.Reactor reactor) { int width = reactor.width; int height = reactor.height; Width = width; Height = height; inZoneAlpha = new Rectangle(0, 0, 4, 4); outZoneAlpha = new Rectangle(6, 0, 4, 4); inZoneBeta = new Rectangle(0, 4, 4, 4); outZoneBeta = new Rectangle(6, 4, 4, 4); tiles = new Tile[width, height]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { var zone = ClassifyAsZone(new Point(i, j)); tiles[i, j] = new Tile(i, j, zone); } } foreach (Parse.Tile tile in reactor.tiles) { tiles[tile.x, tile.y].Set(tile); } AlphaStart = new StartInstruction(reactor.starts.alpha); BetaStart = new StartInstruction(reactor.starts.beta); AlphaInput = new InputFactory(reactor.inputs.alpha); BetaInput = new InputFactory(reactor.inputs.beta); if (reactor.outputs.IsAlphaOutput) { AlphaOutput = new Output(reactor.outputs.alpha); } if (reactor.outputs.IsBetaOutput) { BetaOutput = new Output(reactor.outputs.beta); } }