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;
}
TileImage dest;
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;
}
TileImage dest = prepareFrames(ref, c);
TileMapping m = new TileMapping(tileName, ref, dest);
mappings.add(m);
}
@ -236,6 +214,30 @@ public class MakeTiles
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)
throws IOException
{