latin: hardcoded tetromino block cascades
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 25 Aug 2021 04:57:01 +0000 (06:57 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 25 Aug 2021 04:57:53 +0000 (06:57 +0200)
Attempt to move combinations together if possible,
applying expected gravity to tetris pieces.

writing-latn.inc.pl

index 50ea1d16519ce32d11fb6f65ea79068d1ab0ae28..76b2f6cb2312ed32d8d98636e1378f7f25328358 100644 (file)
@@ -81,10 +81,15 @@ sub dispblock {
                v 45,50%  i 165,50%  o 165,0%
        );
        s/\z(?<!%)/,100%/ for values %col;
+       my @gaps = (grep $_,
+               $code =~ /[Ii]$|T[23]|L3?$|S1|Z$|J1|v3?$/ ? 'gapl1' : (),
+               $code =~ /T$|L2|Z$/ ? 'gapr1' : (),
+       );
        return sprintf(
-               '<svg height="24" viewBox="-.5 -.5 %s 4">'
+               '<svg height="24" viewBox="-.5 -.5 %s 4"%s>'
                . '<path d="%s" stroke="%s" fill="none"%s /></svg>',
                $code eq 'I' ? 4 : $code =~ /T3|[LJO]$|[Iio]1/ ? 2 : 3,
+               @gaps ? qq( class="@gaps") : '',
                $path{$shape}, "hsl($col{$shape},50%)", join('',
                        $rotate && sprintf(' transform="rotate(%s 1 1)"', $rotate * 90),
                        $prefix && ' style="opacity:.5"',
@@ -369,6 +374,7 @@ domino => {
 tetromino => {
        style => [
                'svg path { stroke-linecap: square }',
+               '.sample .gapl1 + .gapr1 { margin-left: -6.3px }',
        ],
        name => 'Tetrominos',
        list => [map { dispblock($_) } qw{