TileImages: gui: keep ref to SimpleTileImage
This commit is contained in:
parent
4ec67e92fa
commit
73b2e65e39
1 changed files with 10 additions and 9 deletions
|
@ -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);
|
||||||
|
|
Reference in a new issue