TileImages: refactor: move SimpleTileImage to graphics package

This commit is contained in:
Jason Long 2014-08-13 19:44:56 -04:00
parent 02ee143ce9
commit 0c29bbfcf8
2 changed files with 33 additions and 30 deletions

View file

@ -2,6 +2,9 @@ package micropolisj.graphics;
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.xml.stream.*;
import static micropolisj.XML_Helper.*;
public abstract class TileImage
{
@ -88,9 +91,38 @@ public abstract class TileImage
}
}
public static class SimpleTileImage extends TileImage
{
public BufferedImage srcImage;
public int offsetY;
@Override
public void drawFragment(Graphics2D gr, int destX, int destY, int srcX, int srcY) {
throw new UnsupportedOperationException();
}
}
public interface LoaderContext
{
BufferedImage getDefaultImage();
BufferedImage getImage(String name);
}
public static SimpleTileImage readSimpleImage(XMLStreamReader in, LoaderContext ctx)
throws XMLStreamException
{
SimpleTileImage img = new SimpleTileImage();
String srcImageName = in.getAttributeValue(null, "src");
if (srcImageName != null) {
img.srcImage = ctx.getImage(srcImageName);
}
else {
img.srcImage = ctx.getDefaultImage();
}
String tmp = in.getAttributeValue(null, "offsetY");
img.offsetY = tmp != null ? Integer.parseInt(tmp) : 0;
skipToEndElement(in);
return img;
}
}

View file

@ -21,7 +21,7 @@ import micropolisj.engine.*;
import micropolisj.graphics.TileImage;
import static micropolisj.engine.TileConstants.*;
import static micropolisj.XML_Helper.*;
import static micropolisj.graphics.TileImage.LoaderContext;
import static micropolisj.graphics.TileImage.*;
public class TileImages
{
@ -31,17 +31,6 @@ public class TileImages
TileImage [] tileImageMap;
Map<SpriteKind, Map<Integer, Image> > spriteImages;
static class SimpleTileImage extends TileImage
{
BufferedImage srcImage;
int offsetY;
@Override
public void drawFragment(Graphics2D gr, int destX, int destY, int srcX, int srcY) {
throw new UnsupportedOperationException();
}
}
static class AnimatedTile extends TileImage
{
SimpleTileImage [] frames;
@ -71,24 +60,6 @@ public class TileImages
return "/" + name + "/tiles.png";
}
static SimpleTileImage readSimpleImage(XMLStreamReader in, LoaderContext ctx)
throws XMLStreamException
{
SimpleTileImage img = new SimpleTileImage();
String srcImageName = in.getAttributeValue(null, "src");
if (srcImageName != null) {
img.srcImage = ctx.getImage(srcImageName);
}
else {
img.srcImage = ctx.getDefaultImage();
}
String tmp = in.getAttributeValue(null, "offsetY");
img.offsetY = tmp != null ? Integer.parseInt(tmp) : 0;
skipToEndElement(in);
return img;
}
static AnimatedTile readAnimation(XMLStreamReader in, LoaderContext ctx)
throws XMLStreamException
{