private void writeMap(Map map, XMLWriter w, String wp) throws IOException { w.writeDocType("map", null, "http://mapeditor.org/dtd/1.0/map.dtd"); w.startElement("map"); w.writeAttribute("version", "1.0"); Map.Orientation orientation = map.getOrientation(); w.writeAttribute("orientation", String.valueOf(orientation)); w.writeAttribute("width", map.getWidth()); w.writeAttribute("height", map.getHeight()); w.writeAttribute("tilewidth", map.getTileWidth()); w.writeAttribute("tileheight", map.getTileHeight()); switch (orientation) { case HEXAGONAL: w.writeAttribute("hexsidelength", map.getHexSideLength()); case STAGGERED: w.writeAttribute("staggeraxis", String.valueOf(map.getStaggerAxis())); w.writeAttribute("staggerindex", String.valueOf(map.getStaggerIndex())); } writeProperties(map.getProperties(), w); firstGidPerTileset = new HashMap<>(); int firstgid = 1; for (TileSet tileset : map.getTileSets()) { setFirstGidForTileset(tileset, firstgid); writeTilesetReference(tileset, w, wp); firstgid += tileset.getMaxTileId() + 1; } for (MapLayer layer : map) { writeMapLayer(layer, w, wp); } firstGidPerTileset = null; w.endElement(); }