+default {
+ require Games::Wormy::Render;
+
+ my @request;
+ if ($opt{levels}) {
+ # find all numeric values in argument
+ @request = $opt{levels} =~ /(\d+)/g;
+ }
+ else {
+ # default to all singleplayer levels
+ @request = 0 .. $data->{levelcount}->{single} - 1;
+ }
+ @request or die "no levels found or specified\n";
+
+ my $img = Games::Wormy::Render->composite(
+ map { $data->{levels}->[$_] } @request
+ ) or die "empty result for levels\n";
+ if ($opt{format} ~~ 'pbm') {
+ $img = $img->to_paletted({make_colors => 'mono'});
+ $opt{format} = 'pnm';
+ }
+ $img->write(
+ $opt{output} ? (file => $opt{output}) : (fh => \*STDOUT),
+ type => $opt{format} // 'pnm',
+ ) or die $img->errstr;
+}
+}