Beispiel #1
0
        internal override PaintActionList Paint(int layer, byte?selectedPaletteId, byte?selectedImageId, Map map)
        {
            PaintActionList paintActionList = new PaintActionList();
            Cell            oldCell         = FillCell(StartCell, layer, selectedPaletteId, selectedImageId, map);

            paintActionList.Add(layer, StartCell.X, StartCell.Y, (byte)oldCell.PaletteId, (byte)oldCell.TileId);

            return(paintActionList);
        }
Beispiel #2
0
        internal override PaintActionList Paint(int layer, byte?selectedPaletteId, byte?selectedImageId, Map map)
        {
            PaintActionList paintActionList = new PaintActionList();
            Point           currentCell     = StartCell;

            do
            {
                Cell oldCell = FillCell(currentCell, layer, selectedPaletteId, selectedImageId, map);
                paintActionList.Add(layer, currentCell.X, currentCell.Y, (byte)oldCell.PaletteId, (byte)oldCell.TileId);
                currentCell.X--;
            } while (currentCell.X >= EndCell.X);

            return(paintActionList);
        }
Beispiel #3
0
        internal void Redo()
        {
            if (_redoLog.Count > 0)
            {
                PaintActionList paintActions = _redoLog.Pop();

                PaintActionList undoActionList = new PaintActionList();
                // undo that action
                foreach (PaintAction paintAction in paintActions)
                {
                    CellPainter     cellPainter     = CellPainterFactory.GetCellPainter(new Point(paintAction.X, paintAction.Y), new Point(paintAction.X, paintAction.Y));
                    PaintActionList paintActionList = cellPainter.Paint(paintAction.Layer, paintAction.PaletteId, paintAction.ImageId, this);
                    undoActionList.Add(paintActionList);
                }

                _undoLog.Push(undoActionList);
            }
        }
Beispiel #4
0
        internal void Undo()
        {
            // pop most recent action off stack
            if (_undoLog.Count > 0)
            {
                PaintActionList paintActions = _undoLog.Pop();

                PaintActionList redoActionList = new PaintActionList();
                // undo that action
                foreach (PaintAction paintAction in paintActions)
                {
                    CellPainter     cellPainter     = CellPainterFactory.GetCellPainter(new Point(paintAction.X, paintAction.Y), new Point(paintAction.X, paintAction.Y));
                    PaintActionList paintActionList = cellPainter.Paint(paintAction.Layer, paintAction.PaletteId, paintAction.ImageId, this);
                    redoActionList.Add(paintActionList);
                }

                _redoLog.Push(redoActionList);
            }
        }