@Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                BufferedImage bi = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
//                bi.getGraphics().setXORMode(Color.RED);
//                bi.getGraphics().setColor(Color.blue);
//                bi.getGraphics().drawRect(1, 1, 40, 40);
//                bi.getGraphics().fillRect(1, 1, 40, 40);
                try {
                    bi.getGraphics().drawImage(ImageIO.read(new File("configurations" + File.separator + "config1" + File.separator + tileTypes.get(rowIndex).getTexture())), 0, 0, 50, 50, null);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return new ImageIcon(bi);
            case 1:
                return tileTypes.get(rowIndex).getId();
            case 2:
                return tileTypes.get(rowIndex).getName();
            case 3:
                StringBuilder sb = new StringBuilder();
                sb.append("[");
                for (String s : tileTypes.get(rowIndex).getTags())
                    sb.append(s + ", ");
                if (sb.lastIndexOf(", ") == sb.length() - 2);
                    sb.delete(sb.length() - 2, sb.length());
                sb.append("]");
                return sb.toString();
        }
        return null;
    }