From 455fc004de7cd63fdb4c6aa0dd5e36f92004c876 Mon Sep 17 00:00:00 2001 From: Jason Long Date: Sun, 11 Jan 2015 11:28:30 -0500 Subject: [PATCH] TileImage: xml: replace offsetX/offsetY attrs with single 'at' attribute I.e. instead of we use --- src/micropolisj/build_tool/MakeTiles.java | 4 ++-- src/micropolisj/graphics/TileImage.java | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/micropolisj/build_tool/MakeTiles.java b/src/micropolisj/build_tool/MakeTiles.java index c30feb4..5b01787 100644 --- a/src/micropolisj/build_tool/MakeTiles.java +++ b/src/micropolisj/build_tool/MakeTiles.java @@ -263,7 +263,7 @@ public class MakeTiles for (Animation.Frame f : ani.frames) { TileImageSprite s = (TileImageSprite) f.frame; out.writeStartElement("frame"); - out.writeAttribute("offsetY", Integer.toString(s.offsetY)); + out.writeAttribute("at", String.format("%d,%d", s.offsetX, s.offsetY)); out.writeEndElement(); } out.writeEndElement(); @@ -272,7 +272,7 @@ public class MakeTiles TileImageSprite s = (TileImageSprite ) m.dest; out.writeStartElement("image"); - out.writeAttribute("offsetY", Integer.toString(s.offsetY)); + out.writeAttribute("at", String.format("%d,%d", s.offsetX, s.offsetY)); out.writeEndElement(); } diff --git a/src/micropolisj/graphics/TileImage.java b/src/micropolisj/graphics/TileImage.java index e5f9edd..8b4dc5a 100644 --- a/src/micropolisj/graphics/TileImage.java +++ b/src/micropolisj/graphics/TileImage.java @@ -148,8 +148,18 @@ public abstract class TileImage catch (IOException e) { throw new XMLStreamException("image source not found", e); } - String tmp = in.getAttributeValue(null, "offsetY"); - img.offsetY = tmp != null ? Integer.parseInt(tmp) : 0; + + String tmp = in.getAttributeValue(null, "at"); + if (tmp != null) { + String [] coords = tmp.split(","); + if (coords.length == 2) { + img.offsetX = Integer.parseInt(coords[0]); + img.offsetY = Integer.parseInt(coords[1]); + } + else { + throw new XMLStreamException("Invalid 'at' syntax"); + } + } skipToEndElement(in); return img;