| OLD | NEW |
| (Empty) |
| 1 part of pop_pop_win.canvas; | |
| 2 | |
| 3 class BoardElement extends ParentThing { | |
| 4 Array2d<SquareElement> _elements; | |
| 5 | |
| 6 BoardElement(): super(0, 0) { | |
| 7 cacheEnabled = true; | |
| 8 } | |
| 9 | |
| 10 int get visualChildCount { | |
| 11 if (_elements == null) { | |
| 12 return 0; | |
| 13 } else { | |
| 14 return _elements.length; | |
| 15 } | |
| 16 } | |
| 17 | |
| 18 Thing getVisualChild(int index) { | |
| 19 return _elements[index]; | |
| 20 } | |
| 21 | |
| 22 void update() { | |
| 23 if (_game == null) { | |
| 24 _elements = null; | |
| 25 } else if(_elementsNeedUpdate) { | |
| 26 _elements = new Array2d<SquareElement>( | |
| 27 _game.field.width, _game.field.height); | |
| 28 | |
| 29 for (int i = 0; i < _elements.length; i++) { | |
| 30 final coords = _elements.getCoordinate(i); | |
| 31 final se = new SquareElement(coords.item1, coords.item2); | |
| 32 se.registerParent(this); | |
| 33 | |
| 34 _gameElement.wireSquareMouseEvent(se); | |
| 35 | |
| 36 // position the square | |
| 37 final etx = se.addTransform(); | |
| 38 etx.setToTranslation(coords.item1 * SquareElement._size, | |
| 39 coords.item2 * SquareElement._size); | |
| 40 | |
| 41 _elements[i] = se; | |
| 42 } | |
| 43 | |
| 44 size = new Size(_game.field.width * SquareElement._size, | |
| 45 _game.field.height * SquareElement._size); | |
| 46 } | |
| 47 super.update(); | |
| 48 } | |
| 49 | |
| 50 GameElement get _gameElement => (parent as CanvasThing).parent; | |
| 51 | |
| 52 Game get _game => _gameElement._game; | |
| 53 | |
| 54 bool get _elementsNeedUpdate { | |
| 55 assert(_game != null); | |
| 56 return _elements == null || | |
| 57 _elements.width != _game.field.width || | |
| 58 _elements.height != _game.field.height; | |
| 59 } | |
| 60 | |
| 61 TextureData get _textureData => _gameElement._textureData; | |
| 62 | |
| 63 } | |
| OLD | NEW |