TileImages: allow having multiple tile image files
This commit is contained in:
parent
dbdad3b37e
commit
7415edeb9e
1 changed files with 19 additions and 9 deletions
|
@ -65,14 +65,21 @@ public class TileImages
|
||||||
interface LoaderContext
|
interface LoaderContext
|
||||||
{
|
{
|
||||||
BufferedImage getDefaultImage();
|
BufferedImage getDefaultImage();
|
||||||
|
BufferedImage getImage(String name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SimpleTileImage readSimpleImage(XMLStreamReader in, LoaderContext ctx)
|
static SimpleTileImage readSimpleImage(XMLStreamReader in, LoaderContext ctx)
|
||||||
throws XMLStreamException
|
throws XMLStreamException
|
||||||
{
|
{
|
||||||
SimpleTileImage img = new SimpleTileImage();
|
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");
|
String tmp = in.getAttributeValue(null, "offsetY");
|
||||||
img.srcImage = ctx.getDefaultImage();
|
|
||||||
img.imageNumber = tmp != null ? Integer.parseInt(tmp) : 0;
|
img.imageNumber = tmp != null ? Integer.parseInt(tmp) : 0;
|
||||||
return img;
|
return img;
|
||||||
}
|
}
|
||||||
|
@ -97,18 +104,21 @@ public class TileImages
|
||||||
|
|
||||||
class MyLoaderContext implements LoaderContext
|
class MyLoaderContext implements LoaderContext
|
||||||
{
|
{
|
||||||
BufferedImage defImage;
|
Map<String,BufferedImage> images = new HashMap<String,BufferedImage>();
|
||||||
|
|
||||||
MyLoaderContext()
|
|
||||||
{
|
|
||||||
String resourceName = "/" + name + "/tiles.png";
|
|
||||||
defImage = loadImage(resourceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
//implements LoaderContext
|
//implements LoaderContext
|
||||||
public BufferedImage getDefaultImage()
|
public BufferedImage getDefaultImage()
|
||||||
{
|
{
|
||||||
return defImage;
|
return getImage("tiles.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
//implements LoaderContext
|
||||||
|
public BufferedImage getImage(String fileName)
|
||||||
|
{
|
||||||
|
if (!images.containsKey(name)) {
|
||||||
|
images.put(name, loadImage("/"+name+"/"+fileName));
|
||||||
|
}
|
||||||
|
return images.get(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue