improved added importing to level editor
This commit is contained in:
parent
8f4fcf23de
commit
51f7d55560
@ -6,7 +6,6 @@ public class EditorManager {
|
|||||||
private LevelEditor editor;
|
private LevelEditor editor;
|
||||||
|
|
||||||
public EditorManager() {
|
public EditorManager() {
|
||||||
overview = new TilesetOverview();
|
|
||||||
editor = new LevelEditor();
|
editor = new LevelEditor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,49 +5,60 @@ import ruscz.game.gameOfProd.Map.Map;
|
|||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.*;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.image.BufferedImage;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
public class LevelEditor extends JFrame {
|
public class LevelEditor extends JFrame {
|
||||||
|
|
||||||
private JLayeredPane view;
|
private JLayeredPane view;
|
||||||
|
private TilesetOverview overview;
|
||||||
|
private JPanel menu;
|
||||||
|
private JPanel info;
|
||||||
|
|
||||||
|
private LinkedList<BufferedImage> imagesOfTiles;
|
||||||
|
private Map map;
|
||||||
|
private int width;
|
||||||
|
private int height;
|
||||||
|
|
||||||
|
private JPanel objectSet;
|
||||||
|
private JPanel cellSet;
|
||||||
|
private JPanel tileSet;
|
||||||
|
|
||||||
public LevelEditor() {
|
public LevelEditor() {
|
||||||
view = new JLayeredPane();
|
view = new JLayeredPane();
|
||||||
view.setBounds(0, 0, 1200, 1000);
|
view.setBounds(0, 0, 1300, 1000);
|
||||||
view.setLayout(null);
|
view.setLayout(null);
|
||||||
view.setVisible(true);
|
|
||||||
|
|
||||||
JPanel menu = new JPanel();
|
menu = new JPanel();
|
||||||
menu.setBounds(0, 0, 1200, 1000);
|
menu.setBounds(0, 0, 1300, 1000);
|
||||||
menu.setLayout(null);
|
menu.setLayout(null);
|
||||||
menu.setVisible(true);
|
|
||||||
|
|
||||||
JLabel titleNew = new JLabel("<html><div style='text-align: center; width: 1200; font-size: 20'>CREATE NEW MAP</div></html>");
|
JLabel titleNew = new JLabel("<html><div style='text-align: center; width: 1300; font-size: 20'>CREATE NEW MAP</div></html>");
|
||||||
titleNew.setBounds(0, 50, 1200, 50);
|
titleNew.setBounds(0, 50, 1300, 50);
|
||||||
|
|
||||||
JLabel nameNew = new JLabel("<html><div style='text-align: center; width: 1200;'>Name of new map</div></html>");
|
JLabel nameNew = new JLabel("<html><div style='text-align: center; width: 1300;'>Name of new map</div></html>");
|
||||||
nameNew.setBounds(0, 120, 1200, 20);
|
nameNew.setBounds(0, 120, 1300, 20);
|
||||||
JTextField nameVal = new JTextField();
|
JTextField nameVal = new JTextField();
|
||||||
nameVal.setBounds(550, 140, 100, 20);
|
nameVal.setBounds(600, 140, 100, 20);
|
||||||
|
|
||||||
JLabel widthNew = new JLabel("<html><div style='text-align: center; width: 1200;'>Width of new map (in cells)</div></html>");
|
JLabel widthNew = new JLabel("<html><div style='text-align: center; width: 1300;'>Width of new map (in cells)</div></html>");
|
||||||
widthNew.setBounds(0, 190, 1200, 20);
|
widthNew.setBounds(0, 190, 1300, 20);
|
||||||
JTextField widthVal = new JTextField();
|
JTextField widthVal = new JTextField();
|
||||||
widthVal.setBounds(550, 210, 100, 20);
|
widthVal.setBounds(600, 210, 100, 20);
|
||||||
|
|
||||||
JLabel heightNew = new JLabel("<html><div style='text-align: center; width: 1200;'>Height of new map (in cells)</div></html>");
|
JLabel heightNew = new JLabel("<html><div style='text-align: center; width: 1300;'>Height of new map (in cells)</div></html>");
|
||||||
heightNew.setBounds(0, 260, 1200, 20);
|
heightNew.setBounds(0, 260, 1300, 20);
|
||||||
JTextField heightVal = new JTextField();
|
JTextField heightVal = new JTextField();
|
||||||
heightVal.setBounds(550, 280, 100, 20);
|
heightVal.setBounds(600, 280, 100, 20);
|
||||||
|
|
||||||
JLabel errorInt = new JLabel("<html><div style='text-align: center; width: 1200; color: red'>One or more values is not an Integer.</div></html>");
|
JLabel errorInt = new JLabel("<html><div style='text-align: center; width: 1300; color: red'>One or more values is not an Integer.</div></html>");
|
||||||
errorInt.setBounds(0, 400, 1200, 20);
|
errorInt.setBounds(0, 400, 1300, 20);
|
||||||
errorInt.setVisible(false);
|
errorInt.setVisible(false);
|
||||||
|
|
||||||
JButton createNew = new JButton("CREATE NEW MAP");
|
JButton createNew = new JButton("CREATE NEW MAP");
|
||||||
createNew.setBounds(500, 330, 200, 50);
|
createNew.setBounds(550, 330, 200, 50);
|
||||||
createNew.addActionListener(new ActionListener() {
|
createNew.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
@ -68,26 +79,23 @@ public class LevelEditor extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
JLabel titleEx = new JLabel("<html><div style='text-align: center; width: 1200; font-size: 20'>EDIT EXISTING MAP</div></html>");
|
JLabel titleEx = new JLabel("<html><div style='text-align: center; width: 1230; font-size: 20'>EDIT EXISTING MAP</div></html>");
|
||||||
titleEx.setBounds(0, 500, 1200, 50);
|
titleEx.setBounds(0, 500, 1300, 50);
|
||||||
|
|
||||||
JLabel nameEx = new JLabel("<html><div style='text-align: center; width: 1200;'>Name of map</div></html>");
|
JLabel nameEx = new JLabel("<html><div style='text-align: center; width: 1230;'>Name of map</div></html>");
|
||||||
nameEx.setBounds(0, 570, 1200, 20);
|
nameEx.setBounds(0, 570, 1300, 20);
|
||||||
JTextField nameExVal = new JTextField();
|
JTextField nameExVal = new JTextField();
|
||||||
nameExVal.setBounds(550, 590, 100, 20);
|
nameExVal.setBounds(550, 590, 100, 20);
|
||||||
|
|
||||||
JButton editEx = new JButton("EDIT EXISTING MAP");
|
JButton editEx = new JButton("EDIT EXISTING MAP");
|
||||||
editEx.setBounds(500, 640, 200, 50);
|
editEx.setBounds(500, 640, 200, 50);
|
||||||
editEx.addActionListener(new ActionListener() {
|
editEx.addActionListener(e -> {
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
try {
|
try {
|
||||||
//TODO: LevelEditor version of Map class
|
//TODO: LevelEditor version of Map class
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex) {
|
catch (NumberFormatException ex) {
|
||||||
errorInt.setVisible(true);
|
errorInt.setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
menu.add(titleNew);
|
menu.add(titleNew);
|
||||||
@ -99,15 +107,15 @@ public class LevelEditor extends JFrame {
|
|||||||
menu.add(heightVal);
|
menu.add(heightVal);
|
||||||
menu.add(createNew);
|
menu.add(createNew);
|
||||||
menu.add(errorInt);
|
menu.add(errorInt);
|
||||||
menu.add(titleEx);
|
// menu.add(titleEx);
|
||||||
menu.add(nameEx);
|
// menu.add(nameEx);
|
||||||
menu.add(nameExVal);
|
// menu.add(nameExVal);
|
||||||
menu.add(editEx);
|
// menu.add(editEx);
|
||||||
view.add(menu);
|
view.add(menu);
|
||||||
add(view);
|
add(view);
|
||||||
|
|
||||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||||
setBounds(0, 0, 1200, 1000);
|
setBounds(0, 0, 1300, 1000);
|
||||||
setLocationRelativeTo(null);
|
setLocationRelativeTo(null);
|
||||||
setLayout(null);
|
setLayout(null);
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
@ -116,52 +124,70 @@ public class LevelEditor extends JFrame {
|
|||||||
|
|
||||||
private void createNewMap(String name, int width, int height) {
|
private void createNewMap(String name, int width, int height) {
|
||||||
TypeOfCell[][] mapArray = new TypeOfCell[width][height];
|
TypeOfCell[][] mapArray = new TypeOfCell[width][height];
|
||||||
for (int i = 0; i < height; i++) {
|
for (int i = 0; i < width; i++) {
|
||||||
Arrays.fill(mapArray[i], TypeOfCell.EMPTY);
|
Arrays.fill(mapArray[i], TypeOfCell.EMPTY);
|
||||||
}
|
}
|
||||||
Map map = new Map(mapArray);
|
Map map = new Map(mapArray);
|
||||||
map.setName(name);
|
map.setName(name);
|
||||||
|
this.map = map;
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
int[] size = {width, height};
|
int[] size = {width, height};
|
||||||
map.setCanvasSize(size);
|
map.setCanvasSize(size);
|
||||||
map.getImageCell().readMapFile();
|
map.getImageCell().readMapFile();
|
||||||
startMapEditor(map, width, height);
|
startMapEditor();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startMapEditor(Map map, int width, int height) {
|
private void startMapEditor() {
|
||||||
|
|
||||||
JPanel menu = new JPanel();
|
JPanel menu = new JPanel();
|
||||||
menu.setBounds(0, 0, 1200, 1000);
|
menu.setBounds(0, 0, 1300, 1000);
|
||||||
menu.setLayout(null);
|
menu.setLayout(null);
|
||||||
menu.setVisible(true);
|
menu.setVisible(true);
|
||||||
|
|
||||||
JLabel title = new JLabel("<html><div style='font-size: 20'>Currently editing: " + map.getName() + "</div></html>");
|
JLabel title = new JLabel("<html><div style='font-size: 20'>Currently editing: " + map.getName() + "</div></html>");
|
||||||
title.setBounds(20, 10, 400, 50);
|
title.setBounds(20, 10, 400, 50);
|
||||||
|
|
||||||
|
JButton importTilesets = new JButton("Import Tilesets");
|
||||||
|
importTilesets.setBounds(20, 120, 260, 30);
|
||||||
|
importTilesets.setVisible(false);
|
||||||
|
importTilesets.addActionListener(e -> {
|
||||||
|
imagesOfTiles = overview.getImagesOfTiles();
|
||||||
|
repaintSets();
|
||||||
|
});
|
||||||
|
|
||||||
|
JButton openTilesets = new JButton("Open Tileset Overview");
|
||||||
|
openTilesets.setBounds(20, 70, 260, 30);
|
||||||
|
openTilesets.addActionListener(e -> {
|
||||||
|
if (overview == null) overview = new TilesetOverview();
|
||||||
|
else overview.setState(Frame.NORMAL);
|
||||||
|
importTilesets.setVisible(true);
|
||||||
|
});
|
||||||
|
|
||||||
JLayeredPane mapLayers = new JLayeredPane();
|
JLayeredPane mapLayers = new JLayeredPane();
|
||||||
mapLayers.setPreferredSize(new Dimension(width * 50, height * 50));
|
mapLayers.setPreferredSize(new Dimension(width * 50, height * 50));
|
||||||
mapLayers.setLayout(null);
|
mapLayers.setLayout(null);
|
||||||
mapLayers.setVisible(true);
|
|
||||||
|
|
||||||
JPanel objectSet = new JPanel();
|
objectSet = new JPanel();
|
||||||
objectSet.setBounds(0, 0, width * 50, height * 50);
|
objectSet.setBounds(0, 0, width * 50, height * 50);
|
||||||
objectSet.setLayout(null);
|
objectSet.setLayout(null);
|
||||||
objectSet.setVisible(true);
|
|
||||||
objectSet.setBackground(Color.RED);
|
objectSet.setBackground(Color.RED);
|
||||||
|
objectSet.setOpaque(true);
|
||||||
|
|
||||||
JPanel cellSet = new JPanel();
|
cellSet = new JPanel();
|
||||||
cellSet.setBounds(0, 0, width * 50, height * 50);
|
cellSet.setBounds(0, 0, width * 50, height * 50);
|
||||||
cellSet.setLayout(null);
|
cellSet.setLayout(null);
|
||||||
cellSet.setVisible(true);
|
|
||||||
cellSet.setBackground(Color.GREEN);
|
cellSet.setBackground(Color.GREEN);
|
||||||
|
cellSet.setOpaque(true);
|
||||||
|
|
||||||
JPanel tileSet = new JPanel();
|
tileSet = new JPanel();
|
||||||
tileSet.setBounds(0, 0, width * 50, height * 50);
|
tileSet.setBounds(0, 0, width * 50, height * 50);
|
||||||
tileSet.setLayout(null);
|
tileSet.setLayout(null);
|
||||||
tileSet.setVisible(true);
|
|
||||||
tileSet.setBackground(Color.BLUE);
|
tileSet.setBackground(Color.BLUE);
|
||||||
|
tileSet.setOpaque(true);
|
||||||
|
|
||||||
JScrollPane mapViewer = new JScrollPane(mapLayers);
|
JScrollPane mapViewer = new JScrollPane(mapLayers);
|
||||||
mapViewer.setBounds(200, 70, 950, 860);
|
mapViewer.setBounds(300, 70, 950, 860);
|
||||||
mapViewer.setVisible(true);
|
mapViewer.setVisible(true);
|
||||||
mapViewer.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
mapViewer.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||||
mapViewer.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
mapViewer.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||||
@ -177,14 +203,6 @@ public class LevelEditor extends JFrame {
|
|||||||
if (objectSet.isVisible()) objectSet.setVisible(false);
|
if (objectSet.isVisible()) objectSet.setVisible(false);
|
||||||
else objectSet.setVisible(true);
|
else objectSet.setVisible(true);
|
||||||
});
|
});
|
||||||
for (int i = 0; i < width; i++) {
|
|
||||||
for (int j = 0; j < height; j++) {
|
|
||||||
JLabel object = new JLabel(String.valueOf(map.getImageCell().getMapForeground()[i][j]), JLabel.CENTER);
|
|
||||||
object.setHorizontalTextPosition(JLabel.CENTER);
|
|
||||||
object.setBounds(i * 50, j * 50, 50, 50);
|
|
||||||
objectSet.add(object);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JLabel cellLabel = new JLabel("Physical (cell) Layer");
|
JLabel cellLabel = new JLabel("Physical (cell) Layer");
|
||||||
cellLabel.setBounds( 700, 30, 150, 20);
|
cellLabel.setBounds( 700, 30, 150, 20);
|
||||||
@ -195,14 +213,6 @@ public class LevelEditor extends JFrame {
|
|||||||
if (cellSet.isVisible()) cellSet.setVisible(false);
|
if (cellSet.isVisible()) cellSet.setVisible(false);
|
||||||
else cellSet.setVisible(true);
|
else cellSet.setVisible(true);
|
||||||
});
|
});
|
||||||
for (int i = 0; i < width; i++) {
|
|
||||||
for (int j = 0; j < height; j++) {
|
|
||||||
JLabel cell = new JLabel(String.valueOf(map.getMapArray()[i][j]), JLabel.CENTER);
|
|
||||||
cell.setHorizontalTextPosition(JLabel.CENTER);
|
|
||||||
cell.setBounds(i * 50, j * 50, 50, 50);
|
|
||||||
cellSet.add(cell);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JLabel tileLabel = new JLabel("Tile Layer");
|
JLabel tileLabel = new JLabel("Tile Layer");
|
||||||
tileLabel.setBounds( 950, 30, 100, 20);
|
tileLabel.setBounds( 950, 30, 100, 20);
|
||||||
@ -213,14 +223,8 @@ public class LevelEditor extends JFrame {
|
|||||||
if (tileSet.isVisible()) tileSet.setVisible(false);
|
if (tileSet.isVisible()) tileSet.setVisible(false);
|
||||||
else tileSet.setVisible(true);
|
else tileSet.setVisible(true);
|
||||||
});
|
});
|
||||||
for (int i = 0; i < width; i++) {
|
|
||||||
for (int j = 0; j < height; j++) {
|
repaintSets();
|
||||||
JLabel tile = new JLabel(String.valueOf(map.getImageCell().getMapBackground()[i][j]), JLabel.CENTER);
|
|
||||||
tile.setHorizontalTextPosition(JLabel.CENTER);
|
|
||||||
tile.setBounds(i * 50, j * 50, 50, 50);
|
|
||||||
tileSet.add(tile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.add(title);
|
menu.add(title);
|
||||||
menu.add(objectLabel);
|
menu.add(objectLabel);
|
||||||
@ -229,11 +233,171 @@ public class LevelEditor extends JFrame {
|
|||||||
menu.add(cellBox);
|
menu.add(cellBox);
|
||||||
menu.add(tileLabel);
|
menu.add(tileLabel);
|
||||||
menu.add(tileBox);
|
menu.add(tileBox);
|
||||||
mapLayers.add(objectSet);
|
menu.add(importTilesets);
|
||||||
mapLayers.add(cellSet);
|
menu.add(openTilesets);
|
||||||
mapLayers.add(tileSet);
|
|
||||||
|
mapLayers.add(objectSet, JLayeredPane.MODAL_LAYER);
|
||||||
|
mapLayers.add(cellSet, JLayeredPane.MODAL_LAYER);
|
||||||
|
mapLayers.add(tileSet, JLayeredPane.MODAL_LAYER);
|
||||||
|
|
||||||
view.add(mapViewer);
|
view.add(mapViewer);
|
||||||
view.add(menu);
|
view.add(menu);
|
||||||
view.repaint();
|
view.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void displayInfo(JLabel label, String layer, int x, int y) {
|
||||||
|
if (info != null) {
|
||||||
|
info.removeAll();
|
||||||
|
view.remove(info);
|
||||||
|
info = null;
|
||||||
|
}
|
||||||
|
info = new JPanel();
|
||||||
|
info.setBounds(20, 200, 260, 730);
|
||||||
|
info.setLayout(null);
|
||||||
|
|
||||||
|
JLabel infoLabel = new JLabel();
|
||||||
|
infoLabel.setBounds(0, 0, 50, 50);
|
||||||
|
infoLabel.setIcon(label.getIcon());
|
||||||
|
infoLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
|
|
||||||
|
JLabel numValue = new JLabel("Number value:");
|
||||||
|
numValue.setBounds(70, 10, 100, 30);
|
||||||
|
|
||||||
|
JTextField tileNum = new JTextField(label.getName());
|
||||||
|
tileNum.setBounds(170, 10, 50, 30);
|
||||||
|
|
||||||
|
JButton importTile = new JButton("Import selected tile");
|
||||||
|
importTile.setVisible(false);
|
||||||
|
importTile.addActionListener(e -> {
|
||||||
|
if (!overview.getInfo().getText().equals("")) {
|
||||||
|
infoLabel.setIcon(overview.getInfo().getIcon());
|
||||||
|
tileNum.setText(overview.getInfo().getText().replace("<html><span color='black'>", "").replace("</span></html>", ""));
|
||||||
|
}
|
||||||
|
else overview.setState(Frame.NORMAL);
|
||||||
|
});
|
||||||
|
|
||||||
|
JButton selectTile = new JButton("Select tile");
|
||||||
|
selectTile.addActionListener(e -> {
|
||||||
|
if (overview == null) overview = new TilesetOverview();
|
||||||
|
else overview.setState(Frame.NORMAL);
|
||||||
|
importTile.setVisible(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
JButton saveInfo = new JButton("Save tile info");
|
||||||
|
saveInfo.addActionListener(e -> {
|
||||||
|
map.getImageCell().getMapForeground()[x][y] = Integer.parseInt(tileNum.getText());
|
||||||
|
repaintObjectset();
|
||||||
|
info.removeAll();
|
||||||
|
view.remove(info);
|
||||||
|
view.revalidate();
|
||||||
|
view.repaint();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (layer.equals("object")) {
|
||||||
|
selectTile.setBounds(20, 100, 150, 30);
|
||||||
|
|
||||||
|
importTile.setBounds(20, 150, 150, 30);
|
||||||
|
|
||||||
|
saveInfo.setBounds(20, 200, 150, 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
info.add(infoLabel);
|
||||||
|
info.add(numValue);
|
||||||
|
info.add(tileNum);
|
||||||
|
info.add(selectTile);
|
||||||
|
info.add(importTile);
|
||||||
|
info.add(saveInfo);
|
||||||
|
view.add(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void repaintSets() {
|
||||||
|
repaintObjectset();
|
||||||
|
repaintCellSet();
|
||||||
|
repaintTileset();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void repaintObjectset() {
|
||||||
|
objectSet.removeAll();
|
||||||
|
|
||||||
|
for (int i = 0; i < width; i++) {
|
||||||
|
for (int j = 0; j < height; j++) {
|
||||||
|
JLabel object = new JLabel();
|
||||||
|
if (imagesOfTiles == null) {
|
||||||
|
object.setText("<html><div style='text-align: center; width: 50'>" + String.valueOf(map.getImageCell().getMapForeground()[i][j]) + "</div></html>");
|
||||||
|
object.setHorizontalTextPosition(JLabel.CENTER);
|
||||||
|
}
|
||||||
|
else if (map.getImageCell().getMapForeground()[i][j] != 0) {
|
||||||
|
object.setIcon(new ImageIcon(imagesOfTiles.get(map.getImageCell().getMapForeground()[i][j]).getScaledInstance(50, 50, Image.SCALE_DEFAULT)));
|
||||||
|
}
|
||||||
|
object.setName(String.valueOf(map.getImageCell().getMapForeground()[i][j]));
|
||||||
|
object.setBounds(i * 50, j * 50, 50, 50);
|
||||||
|
int x = i;
|
||||||
|
int y = j;
|
||||||
|
object.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
displayInfo(object, "object", x, y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
objectSet.add(object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
view.repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void repaintCellSet() {
|
||||||
|
cellSet.removeAll();
|
||||||
|
|
||||||
|
for (int i = 0; i < width; i++) {
|
||||||
|
for (int j = 0; j < height; j++) {
|
||||||
|
JLabel cell = new JLabel();
|
||||||
|
if (imagesOfTiles == null) {
|
||||||
|
cell.setText("<html><div style='text-align: center; width: 50'>" + String.valueOf(map.getMapArray()[i][j]) + "</div></html>");
|
||||||
|
cell.setHorizontalTextPosition(JLabel.CENTER);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cell.setIcon(new ImageIcon(imagesOfTiles.get(map.getImageCell().getMapForeground()[i][j]).getScaledInstance(50, 50, Image.SCALE_DEFAULT)));
|
||||||
|
cell.setName(String.valueOf(map.getMapArray()[i][j]));
|
||||||
|
cell.setBounds(i * 50, j * 50, 50, 50);
|
||||||
|
int x = i;
|
||||||
|
int y = j;
|
||||||
|
cell.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
displayInfo(cell, "cell", x, y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
cellSet.add(cell);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
view.repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void repaintTileset() {
|
||||||
|
tileSet.removeAll();
|
||||||
|
|
||||||
|
for (int i = 0; i < width; i++) {
|
||||||
|
for (int j = 0; j < height; j++) {
|
||||||
|
JLabel tile = new JLabel();
|
||||||
|
if (imagesOfTiles == null) {
|
||||||
|
tile.setText("<html><div style='text-align: center; width: 50'>" + String.valueOf(map.getImageCell().getMapBackground()[i][j]) + "</div></html>");
|
||||||
|
tile.setHorizontalTextPosition(JLabel.CENTER);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
tile.setIcon(new ImageIcon(imagesOfTiles.get(map.getImageCell().getMapBackground()[i][j]).getScaledInstance(50, 50, Image.SCALE_DEFAULT)));
|
||||||
|
tile.setName(String.valueOf(map.getImageCell().getMapBackground()[i][j]));
|
||||||
|
tile.setBounds(i * 50, j * 50, 50, 50);
|
||||||
|
int x = i;
|
||||||
|
int y = j;
|
||||||
|
tile.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
displayInfo(tile, "tile", x, y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
tileSet.add(tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
view.repaint();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -146,4 +146,8 @@ public class TilesetOverview extends JFrame {
|
|||||||
}
|
}
|
||||||
view.repaint();
|
view.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LinkedList<BufferedImage> getImagesOfTiles() { return imagesOfTiles; }
|
||||||
|
|
||||||
|
public JLabel getInfo() { return info; }
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user