예제 #1
0
파일: Map.cs 프로젝트: gmoller/MapEditor
        internal void FillBetween(int layerId, byte?paletteId, byte?imageId, Point start, Point end)
        {
            CellPainter     cellPainter  = CellPainterFactory.GetCellPainter(start, end);
            PaintActionList paintActions = cellPainter.Paint(layerId, paletteId, imageId, this);

            _undoLog.Push(paintActions);
        }
예제 #2
0
파일: Map.cs 프로젝트: gmoller/MapEditor
        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);
            }
        }
예제 #3
0
파일: Map.cs 프로젝트: gmoller/MapEditor
        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);
            }
        }