/** * Draw something when the selected room is null * * @param g */ private void drawIfRoomNull(Graphics g) { int width = mainWindow.getModel().getEpisode().getRoomWidth() * fieldSize; int height = mainWindow.getModel().getEpisode().getRoomHeight() * fieldSize; g.setColor(Color.GRAY); g.fillRect(fieldSize * 2, fieldSize * 2, width, height); g.setColor(Color.BLACK); g.drawString(roomX + "/" + roomY, fieldSize * 4, fieldSize * 4); g.drawString("Room not existent. Click to create!", fieldSize * 4, fieldSize * 4 + 30); }
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); this.imageLoader = mainWindow.getImageLoader(); if (mainWindow.getModel().getEpisode() == null) return; if (floor == null) return; // NO ROOM SELECTED if (currentRoom == null) { drawIfRoomNull(g); } // DRAW ROOM INCLUDING NEIGHBORS for (int x = -2; x < roomWidth + 2; x++) { for (int y = -2; y < roomHeight + 2; y++) { int fieldRoomX = roomX; int fieldRoomY = roomY; int fieldX = x; int fieldY = y; boolean outside = false; if (x < 0) { fieldRoomX--; fieldX += roomWidth; outside = true; } else if (x >= roomWidth) { fieldRoomX++; fieldX -= roomWidth; outside = true; } if (y < 0) { fieldRoomY--; fieldY += roomHeight; outside = true; } else if (y >= roomHeight) { fieldRoomY++; fieldY -= roomHeight; outside = true; } Room roomOfThisField = floor.getRoom(fieldRoomX, fieldRoomY); drawFieldWithAllLayers(g, roomOfThisField, fieldX, fieldY, x, y); if (outside) { g.setColor(new Color(128, 128, 128, 128)); g.fillRect((x + 2) * fieldSize, (y + 2) * fieldSize, fieldSize, fieldSize); } } } // DRAW GRID if (drawGrid) drawGrid(g); // DRAW FRAME drawFrame(g); }