⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapeditor.java

📁 tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        // Allow the the tile palette dialog to save its prefs (because it's        // common to tweak this to a certain width for convenient tileset        // display)        // todo: would be nicer to introduce a ShutdownListener interface        if (tilePaletteDialog != null) {            tilePaletteDialog.shutdown();        }    }    private class LayerTransformAction extends AbstractAction {        private final int transform;        public LayerTransformAction(int transform) {            this.transform = transform;            switch (transform) {                case MapLayer.ROTATE_90:                    putValue(NAME, Resources.getString("action.layer.transform.rotate90.name"));                    putValue(SHORT_DESCRIPTION,                            Resources.getString("action.layer.transform.rotate90.tooltip"));                    putValue(SMALL_ICON,                            Resources.getIcon("gimp-rotate-90-16.png"));                    break;                case MapLayer.ROTATE_180:                    putValue(NAME, Resources.getString("action.layer.transform.rotate180.name"));                    putValue(SHORT_DESCRIPTION,                            Resources.getString("action.layer.transform.rotate180.tooltip"));                    putValue(SMALL_ICON,                            Resources.getIcon("gimp-rotate-180-16.png"));                    break;                case MapLayer.ROTATE_270:                    putValue(NAME, Resources.getString("action.layer.transform.rotate270.name"));                    putValue(SHORT_DESCRIPTION,                            Resources.getString("action.layer.transform.rotate270.tooltip"));                    putValue(SMALL_ICON,                            Resources.getIcon("gimp-rotate-270-16.png"));                    break;                case MapLayer.MIRROR_VERTICAL:                    putValue(NAME, Resources.getString("action.layer.transform.vertical.name"));                    putValue(SHORT_DESCRIPTION, Resources.getString("action.layer.transform.vertical.tooltip"));                    putValue(SMALL_ICON,                            Resources.getIcon("gimp-flip-vertical-16.png"));                    break;                case MapLayer.MIRROR_HORIZONTAL:                    putValue(NAME, Resources.getString("action.layer.transform.horizontal.name"));                    putValue(SHORT_DESCRIPTION, Resources.getString("action.layer.transform.horizontal.tooltip"));                    putValue(SMALL_ICON,                            Resources.getIcon("gimp-flip-horizontal-16.png"));                    break;            }        }        public void actionPerformed(ActionEvent evt) {            MapLayer currentLayer = getCurrentLayer();            MapLayer layer = currentLayer;            MapLayerEdit transEdit;            transEdit = new MapLayerEdit(                    currentLayer, createLayerCopy(currentLayer));            if (marqueeSelection != null) {                if (currentLayer instanceof TileLayer) {                    layer = new TileLayer(                            marqueeSelection.getSelectedAreaBounds());                } else if (currentLayer instanceof ObjectGroup) {                    layer = new ObjectGroup(                            marqueeSelection.getSelectedAreaBounds());                }                layer.setMap(currentMap);                layer.maskedCopyFrom(                        currentLayer,                        marqueeSelection.getSelectedArea());            }            switch (transform) {                case MapLayer.ROTATE_90:                case MapLayer.ROTATE_180:                case MapLayer.ROTATE_270:                    transEdit.setPresentationName("Rotate");                    layer.rotate(transform);                    //if(marqueeSelection != null) marqueeSelection.rotate(transform);                    break;                case MapLayer.MIRROR_VERTICAL:                    transEdit.setPresentationName("Vertical Flip");                    layer.mirror(MapLayer.MIRROR_VERTICAL);                    //if(marqueeSelection != null) marqueeSelection.mirror(transform);                    break;                case MapLayer.MIRROR_HORIZONTAL:                    transEdit.setPresentationName("Horizontal Flip");                    layer.mirror(MapLayer.MIRROR_HORIZONTAL);                    //if(marqueeSelection != null) marqueeSelection.mirror(transform);                    break;            }            if (marqueeSelection != null ) {                layer.mergeOnto(currentLayer);            }            transEdit.end(createLayerCopy(currentLayer));            undoSupport.postEdit(transEdit);            mapView.repaint();        }    }    private class CancelSelectionAction extends AbstractAction {        public CancelSelectionAction() {            super(Resources.getString("action.select.none.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control shift A"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.select.none.tooltip"));        }        public void actionPerformed(ActionEvent e) {            if (currentMap != null) {                if (marqueeSelection != null) {                    currentMap.removeLayerSpecial(marqueeSelection);                }                marqueeSelection = null;            }        }    }    private class SelectAllAction extends AbstractAction {        public SelectAllAction() {            super(Resources.getString("action.select.all.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control A"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.select.all.tooltip"));        }        public void actionPerformed(ActionEvent e) {            if (currentMap != null) {                if (marqueeSelection != null) {                    currentMap.removeLayerSpecial(marqueeSelection);                }                marqueeSelection = new SelectionLayer(                        currentMap.getWidth(), currentMap.getHeight());                marqueeSelection.selectRegion(marqueeSelection.getBounds());                currentMap.addLayerSpecial(marqueeSelection);            }        }    }    private class InverseSelectionAction extends AbstractAction {        public InverseSelectionAction() {            super(Resources.getString("action.select.invert.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control I"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.select.invert.tooltip"));        }        public void actionPerformed(ActionEvent e) {            if (marqueeSelection != null) {                marqueeSelection.invert();                mapView.repaint();            }        }    }    private class ZoomInAction extends AbstractAction {        public ZoomInAction() {            super(Resources.getString("action.zoom.in.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control EQUALS"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.zoom.in.tooltip"));            putValue(SMALL_ICON, Resources.getIcon("gnome-zoom-in.png"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null) {                zoomOutAction.setEnabled(true);                if (!mapView.zoomIn()) {                    setEnabled(false);                }                zoomNormalAction.setEnabled(mapView.getZoomLevel() !=                        MapView.ZOOM_NORMALSIZE);            }        }    }    private class ZoomOutAction extends AbstractAction {        public ZoomOutAction() {            super(Resources.getString("action.zoom.out.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control MINUS"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.zoom.out.tooltip"));            putValue(SMALL_ICON, Resources.getIcon("gnome-zoom-out.png"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null) {                zoomInAction.setEnabled(true);                if (!mapView.zoomOut()) {                    setEnabled(false);                }                zoomNormalAction.setEnabled(mapView.getZoomLevel() !=                        MapView.ZOOM_NORMALSIZE);            }        }    }    private class ZoomNormalAction extends AbstractAction {        public ZoomNormalAction() {            super(Resources.getString("action.zoom.normal.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control 0"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.zoom.normal.tooltip"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null) {                zoomInAction.setEnabled(true);                zoomOutAction.setEnabled(true);                setEnabled(false);                mapView.setZoomLevel(MapView.ZOOM_NORMALSIZE);            }        }    }    private class CopyAction extends AbstractAction {        public CopyAction() {            super(Resources.getString("action.copy.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control C"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.copy.tooltip"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null && marqueeSelection != null) {                if (getCurrentLayer() instanceof TileLayer) {                    clipboardLayer = new TileLayer(                            marqueeSelection.getSelectedAreaBounds());                } else if (getCurrentLayer() instanceof ObjectGroup) {                    clipboardLayer = new ObjectGroup(                            marqueeSelection.getSelectedAreaBounds());                }                clipboardLayer.maskedCopyFrom(                        getCurrentLayer(),                        marqueeSelection.getSelectedArea());            }        }    }    private class CutAction extends AbstractAction {        public CutAction() {            super(Resources.getString("action.cut.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control X"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.cut.tooltip"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null && marqueeSelection != null) {                MapLayer ml = getCurrentLayer();                if (getCurrentLayer() instanceof TileLayer) {                    clipboardLayer = new TileLayer(                            marqueeSelection.getSelectedAreaBounds());                } else if (getCurrentLayer() instanceof ObjectGroup) {                    clipboardLayer = new ObjectGroup(                            marqueeSelection.getSelectedAreaBounds());                }                clipboardLayer.maskedCopyFrom(                        ml, marqueeSelection.getSelectedArea());                Rectangle area = marqueeSelection.getSelectedAreaBounds();                Area mask = marqueeSelection.getSelectedArea();                if (ml instanceof TileLayer) {                    TileLayer tl = (TileLayer)ml;                    for (int i = area.y; i < area.height+area.y; i++) {                        for (int j = area.x; j < area.width + area.x; j++){                            if (mask.contains(j,i)) {                                tl.setTileAt(j, i, null);                            }                        }                    }                }                mapView.repaintRegion(area);            }        }    }    private class PasteAction extends AbstractAction {        public PasteAction() {            super(Resources.getString("action.paste.name"));            putValue(ACCELERATOR_KEY,                    KeyStroke.getKeyStroke("control V"));            putValue(SHORT_DESCRIPTION,                     Resources.getString("action.paste.tooltip"));        }        public void actionPerformed(ActionEvent evt) {            if (currentMap != null && clipboardLayer != null) {                Vector layersBefore = currentMap.getLayerVector();                MapLayer ml = createLayerCopy(clipboardLayer);                ml.setName(Resources.getString("general.layer.layer")+" " + currentMap.getTotalLayers());                currentMap.addLayer(ml);                undoSupport.postEdit(                        new MapLayerStateEdit(currentMap, layersBefore,                            new Vector(currentMap.getLayerVector()),                            "Paste Selection"));            }        }    }    private void pour(TileLayer layer, int x, int y,            Tile newTile, Tile oldTile) {        if (newTile == oldTile || layer.getLocked()) return;        Rectangle area;        TileLayer before = new TileLayer(layer);        TileLayer after;        if (marqueeSelection == null) {            area = new Rectangle(new Point(x, y));            Stack stack = new Stack();            stack.push(new Point(x, y));            while (!stack.empty()) {                // Remove the next tile from the stack                Point p = (Point)stack.pop();                // If the tile it meets the requirements, set it and push its                /

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -