diff --git a/src/micropolisj/graphics/TileImage.java b/src/micropolisj/graphics/TileImage.java index c2e908d..f50758d 100644 --- a/src/micropolisj/graphics/TileImage.java +++ b/src/micropolisj/graphics/TileImage.java @@ -2,6 +2,7 @@ package micropolisj.graphics; import java.awt.*; import java.awt.image.BufferedImage; +import java.util.*; import javax.xml.stream.*; import static micropolisj.XML_Helper.*; @@ -125,4 +126,39 @@ public abstract class TileImage skipToEndElement(in); return img; } + + public static class AnimatedTile extends TileImage + { + public SimpleTileImage [] frames; + + public SimpleTileImage getFrameByTime(int acycle) + { + return frames[acycle % frames.length]; + } + + @Override + public void drawFragment(Graphics2D gr, int destX, int destY, int srcX, int srcY) { + throw new UnsupportedOperationException(); + } + } + + public static AnimatedTile readAnimation(XMLStreamReader in, LoaderContext ctx) + throws XMLStreamException + { + assert in.getLocalName().equals("animation"); + + ArrayList frames = new ArrayList(); + + while (in.nextTag() != XMLStreamConstants.END_ELEMENT) { + String tagName = in.getLocalName(); + if (tagName.equals("frame")) { + frames.add(readSimpleImage(in, ctx)); + } + skipToEndElement(in); + } + + AnimatedTile anim = new AnimatedTile(); + anim.frames = frames.toArray(new SimpleTileImage[0]); + return anim; + } } diff --git a/src/micropolisj/gui/TileImages.java b/src/micropolisj/gui/TileImages.java index f6c674c..04e67d1 100644 --- a/src/micropolisj/gui/TileImages.java +++ b/src/micropolisj/gui/TileImages.java @@ -31,21 +31,6 @@ public class TileImages TileImage [] tileImageMap; Map > spriteImages; - static class AnimatedTile extends TileImage - { - SimpleTileImage [] frames; - - public SimpleTileImage getFrameByTime(int acycle) - { - return frames[acycle % frames.length]; - } - - @Override - public void drawFragment(Graphics2D gr, int destX, int destY, int srcX, int srcY) { - throw new UnsupportedOperationException(); - } - } - private TileImages(String name, int size) { this.name = name; @@ -60,24 +45,6 @@ public class TileImages return "/" + name + "/tiles.png"; } - static AnimatedTile readAnimation(XMLStreamReader in, LoaderContext ctx) - throws XMLStreamException - { - ArrayList frames = new ArrayList(); - - while (in.nextTag() != XMLStreamConstants.END_ELEMENT) { - String tagName = in.getLocalName(); - if (tagName.equals("frame")) { - frames.add(readSimpleImage(in, ctx)); - } - skipToEndElement(in); - } - - AnimatedTile anim = new AnimatedTile(); - anim.frames = frames.toArray(new SimpleTileImage[0]); - return anim; - } - static TileImage readTileImage(XMLStreamReader in, LoaderContext ctx) throws XMLStreamException {