TileImages: gui: keep ref to SimpleTileImage

This commit is contained in:
Jason Long 2015-01-10 18:20:38 -05:00
parent 4ec67e92fa
commit 73b2e65e39

View file

@ -142,13 +142,11 @@ public class TileImages
public class ImageInfo public class ImageInfo
{ {
BufferedImage srcImage; SimpleTileImage image;
int offsetY;
boolean animated; boolean animated;
ImageInfo(BufferedImage srcImage, int offsetY, boolean animated) { ImageInfo(SimpleTileImage image, boolean animated) {
this.srcImage = srcImage; this.image = image;
this.offsetY = offsetY;
this.animated = animated; this.animated = animated;
} }
@ -163,6 +161,9 @@ public class TileImages
public void drawToBytes(BufferedImage img, int x, int y) public void drawToBytes(BufferedImage img, int x, int y)
{ {
BufferedImage srcImage = image.srcImage;
int offsetY = image.offsetY;
for (int yy = 0; yy < TILE_HEIGHT; yy++) for (int yy = 0; yy < TILE_HEIGHT; yy++)
{ {
for (int xx = 0; xx < TILE_WIDTH; xx++) for (int xx = 0; xx < TILE_WIDTH; xx++)
@ -175,8 +176,8 @@ public class TileImages
public Image getImage() public Image getImage()
{ {
return srcImage.getSubimage( return image.srcImage.getSubimage(
0, offsetY, 0, image.offsetY,
TILE_WIDTH, TILE_HEIGHT TILE_WIDTH, TILE_HEIGHT
); );
} }
@ -196,13 +197,13 @@ public class TileImages
if (ti instanceof SimpleTileImage) { if (ti instanceof SimpleTileImage) {
final SimpleTileImage sti = (SimpleTileImage) ti; final SimpleTileImage sti = (SimpleTileImage) ti;
return new ImageInfo(sti.srcImage, sti.offsetY, false); return new ImageInfo(sti, false);
} }
else if (ti instanceof AnimatedTile) { else if (ti instanceof AnimatedTile) {
final AnimatedTile anim = (AnimatedTile) ti; final AnimatedTile anim = (AnimatedTile) ti;
final SimpleTileImage sti = anim.getFrameByTime(acycle); final SimpleTileImage sti = anim.getFrameByTime(acycle);
return new ImageInfo(sti.srcImage, sti.offsetY, true); return new ImageInfo(sti, true);
} }
else { else {
throw new Error("no image for tile "+tileNumber); throw new Error("no image for tile "+tileNumber);