public Map tileCopy() { Map m = new Map(); foreach (MapLayer ml in Layers) { MapLayer ml2 = ml.copy(); ml2.parentmap = m; m.AddLayer(ml2); } return m; }
public Map tileCopyRange(int x0, int y0, int w, int h) { Map m = new Map(); foreach (MapLayer ml in Layers) { MapLayer ml2 = ml.copyRange(x0, y0, w, h); ml2.parentmap = m; m.AddLayer(ml2); } return m; }
protected override void OnMouseUp(MouseEventArgs e) { Capture = false; trackingMouse = false; if (trackingDrag) { trackingDrag = false; int _x0 = dragStart.X; int _y0 = (dragStart.Y); int _x1 = (dragEnd.X); int _y1 = (dragEnd.Y); int x0 = Math.Min(_x0, _x1); int x1 = Math.Max(_x0, _x1); int y0 = Math.Min(_y0, _y1); int y1 = Math.Max(_y0, _y1); Map m = new Map(); MapLayer ml = new MapLayer(m); ml.resize(x1 - x0 + 1, y1 - y0 + 1); for (int y = y0; y <= y1; y++) { for (int x = x0; x <= x1; x++) { //((scrollOffset / Global.TILE_SIZE) + (my / Global.TILE_SIZE)) * TilesWide + (mx / Global.TILE_SIZE); int tile = y * TilesWide + x + (scrollOffset / Global.TILE_SIZE * TilesWide); ml.setTile(x - x0, y - y0, tile); } } m.AddLayer(ml); m.IsBrush = true; m.vsp = vsp; Global.clipboard = m; } }