MakeTiles: abstract tile mapping into prepareFrames() method

This commit is contained in:
Jason Long 2015-01-07 21:16:40 -05:00
parent 409f338e6b
commit ec7641eadf

View file

@ -173,29 +173,7 @@ public class MakeTiles
continue; continue;
} }
TileImage dest; TileImage dest = prepareFrames(ref, c);
if (ref.getFrameEndTime(0) > 0) {
Animation ani = new Animation();
int t = 0;
int n = ref.getFrameEndTime(t);
while (n > 0) {
TileImageSprite s = c.prepareTile(TILE_SIZE);
Animation.Frame f = new Animation.Frame(s, n-t);
ani.addFrame(f);
t = n;
n = ref.getFrameEndTime(t);
}
dest = ani;
}
else {
TileImageSprite s = c.prepareTile(TILE_SIZE);
dest = s;
}
TileMapping m = new TileMapping(tileName, ref, dest); TileMapping m = new TileMapping(tileName, ref, dest);
mappings.add(m); mappings.add(m);
} }
@ -236,6 +214,30 @@ public class MakeTiles
writeIndexFile(mappings, indexFile); writeIndexFile(mappings, indexFile);
} }
static TileImage prepareFrames(TileImage ref, Composer c)
{
if (ref.getFrameEndTime(0) > 0) {
Animation ani = new Animation();
int t = 0;
int n = ref.getFrameEndTime(t);
while (n > 0) {
TileImageSprite s = c.prepareTile(TILE_SIZE);
Animation.Frame f = new Animation.Frame(s, n-t);
ani.addFrame(f);
t = n;
n = ref.getFrameEndTime(t);
}
return ani;
}
else {
TileImageSprite s = c.prepareTile(TILE_SIZE);
return s;
}
}
static void writeIndexFile(Collection<TileMapping> mappings, File indexFile) static void writeIndexFile(Collection<TileMapping> mappings, File indexFile)
throws IOException throws IOException
{ {