From 70d5d31aa5b996bd6aff34b7a4b682a0d7ccf2b2 Mon Sep 17 00:00:00 2001 From: Jason Long Date: Mon, 16 Jun 2014 20:50:36 -0400 Subject: [PATCH] MakeTiles: use an XML format for the tiles index this will allow me to more easily add features (like animation) without evolving into a hard-to-parse custom file format --- src/micropolisj/build_tool/MakeTiles.java | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/micropolisj/build_tool/MakeTiles.java b/src/micropolisj/build_tool/MakeTiles.java index f6bb9c0..bcc4c3b 100644 --- a/src/micropolisj/build_tool/MakeTiles.java +++ b/src/micropolisj/build_tool/MakeTiles.java @@ -8,6 +8,7 @@ import java.nio.charset.Charset; import java.util.*; import javax.imageio.*; import javax.swing.ImageIcon; +import javax.xml.stream.*; import static micropolisj.engine.TileSpec.generateTileNames; @@ -101,13 +102,27 @@ public class MakeTiles static void writeIndexFile(String [] tileNames, File indexFile) throws IOException { - PrintWriter out = new PrintWriter( - new FileWriter(indexFile) - ); + try { + + FileOutputStream outStream = new FileOutputStream(indexFile); + XMLStreamWriter out = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, "UTF-8"); + out.writeStartDocument(); + out.writeStartElement("micropolis-tiles-index"); for (int i = 0; i < tileNames.length; i++) { - out.printf("%s %d\n", tileNames[i], i); + out.writeStartElement("tile"); + out.writeAttribute("name", tileNames[i]); + out.writeAttribute("offsetY", Integer.toString(i)); + out.writeEndElement(); } + out.writeEndElement(); + out.writeEndDocument(); out.close(); + outStream.close(); //because XMLStreamWriter does not call it for us + + } + catch (XMLStreamException e) { + throw new IOException(e); + } } static void drawTo(FrameSpec ref, Graphics2D gr, int destX, int destY)