alias pt { if (!$2) tokenize 32 20 20 hadd -m pt x $calc(($1 *10)) hadd -m pt y $calc(($2 *10)) if (!$window(@Pixeltool)) hadd -m pt c $color(15) window -Cdfk0pw0 +ft @Pixeltool 0 0 $calc($hget(pt,x) +30) $hget(pt,y) drawrect -fr @Pixeltool $color(0) 1 30 0 $hget(pt,x) $hget(pt,y) pt.ui pt.grid $1 $2 } alias -l pt.re { hadd -m pt x $calc(($1 *10)) hadd -m pt y $calc(($2 *10)) if (!$window(@Pixeltool)) hadd -m pt c $color(15) window -fp @Pixeltool -1 -1 $calc($hget(pt,x) +30) $hget(pt,y) pt.ui pt.grid $1 $2 } alias -l pt.ui { drawrect -fr @Pixeltool $rgb(250,250,250) 1 0 0 30 $hget(pt,y) drawrect -cr @Pixeltool $rgb(235,235,235) 1 0 0 30 $hget(pt,y) var %c = 0, %n = 1, %x = 4, %y = 3 while (%n <= 8) { drawrect -r @Pixeltool $rgb(100,100,100) 1 %x %y 10 10 drawfill -r @Pixeltool $color(%c) $rgb(100,100,100) $calc(%x +1) $calc(%y +1) inc %x 12 inc %c drawrect -r @Pixeltool $rgb(100,100,100) 1 %x %y 10 10 drawfill -r @Pixeltool $color(%c) $rgb(100,100,100) $calc(%x +1) $calc(%y +1) dec %x 12 inc %y 12 inc %c inc %n } drawrect -r @Pixeltool $rgb(100,100,100) 1 9 100 12 12 drawfill -r @Pixeltool $hget(pt,c) $rgb(100,100,100) 10 101 drawtext -bcr @Pixeltool $rgb(100,100,100) $rgb(250,250,250) terminal 7 2 $calc($hget(pt,y) -35) 27 6 V1.0 drawtext -r @Pixeltool $rgb(100,100,100) terminal 7 6 $calc($hget(pt,y) -17) x: $+ $calc($hget(pt,x) /10) drawtext -r @Pixeltool $rgb(100,100,100) terminal 7 6 $calc($hget(pt,y) -8) y: $+ $calc($hget(pt,y) /10) } alias -l pt.grid { var %x = 0, %y = 0 while (%y <= $1) { drawline -r @Pixeltool $rgb(235,235,235) 1 $calc((%y *10) +30) 0 $calc((%y *10) +30) $hget(pt,y) inc %y } while (%x <= $2) { drawline -r @Pixeltool $rgb(235,235,235) 1 30 $calc(%x *10) $calc($hget(pt,x) +30) $calc(%x *10) inc %x } } alias -l pt.draw { if ($inrect($2,$3,0,0,30,$hget(pt,y)) == $true) { if ($hget(pt,m)) hdel pt m var %a = $getdot(@Pixeltool,$2,$3) if ((%a == $rgb(100,100,100)) || (%a == $rgb(235,235,235)) || (%a == $rgb(250,250,250))) halt else { hadd -m pt c %a drawfill -r @Pixeltool %a $rgb(100,100,100) 10 102 } } else drawfill -r @Pixeltool $hget(pt,c) $rgb(235,235,235) $2 $3 } alias -l pt.load { var %c = $str($chr(45),2), %f = $$1-, %l = 1, %o, %y = 1 pt.re $len($strip($read(%f,1))) $lines(%f) while ($read(%f,%l)) { noop $regex(c,$pt.lf($v1),/(\d{1,2}\.\d{1,2})/g) noop $regex(l,$pt.lf($v1),/(--+)/g) var %x = 31, %m = 1, %n = 1 while (%m <= $regml(c,0)) { %o = 1 while (%o <= $len($regml(l,%n))) { drawfill -r @Pixeltool $color($gettok($regml(c,%m),1,46)) $rgb(235,235,235) %x %y inc %x 10 inc %o } inc %n inc %m } inc %y 10 inc %l } } alias -l pt.lf { return $replace($$1-,$chr(44),$chr(46),$chr(3),$null) } alias -l pt.save { if ($1 == 1) { var %f = $$2- | if ($isfile(%f)) write -c $qt(%f) | if ($numtok($nopath(%f),46) == 1) %f = $+(%f,.txt) } else var %f = $$2 var %c = $str($chr(45),2), %o, %s, %t, %x, %y = 1 while (%y <= $hget(pt,y)) { %x = 31 while (%x <= $calc($hget(pt,x) +30)) { %t = $pt.c($getdot(@Pixeltool,%x,%y)) if (%o == %t) %s = %s $+ %c else %s = $+(%s,$chr(3),%t,$chr(44),%t,%c) %o = %t if (%x == $calc($hget(pt,x) +21)) { if ($1 == 1) write $qt(%f) %s else msg %f %s unset %s unset %o } inc %x 10 } inc %y 10 } } alias -l pt.c { var %c = 0 | while (%c <= 15) { if ($1 == $color(%c)) { return %c | break } | inc %c } } menu @Pixeltool { mouse:{ if ($hget(pt,m)) pt.draw $hget(pt,c) $mouse.x $mouse.y if ($inrect($mouse.x,$mouse.y,31,1,$hget(pt,x),$hget(pt,y)) == $true) drawtext -bcr @Pixeltool $rgb(100,100,100) $rgb(250,250,250) terminal 7 2 $calc($hget(pt,y) -26) 27 6 $+($base($calc($ceil($calc($mouse.x /10)) -3),10,10,2),$chr(44),$base($ceil($calc($mouse.y /10)),10,10,2)) else drawtext -bcr @Pixeltool $rgb(100,100,100) $rgb(250,250,250) terminal 7 2 $calc($hget(pt,y) -26) 27 6 ??? } sclick:{ hinc -m pt m | pt.draw $hget(pt,c) $mouse.x $mouse.y } uclick:hdel pt m leave:drawtext -bcr @Pixeltool $rgb(100,100,100) $rgb(250,250,250) terminal 7 2 $calc($hget(pt,y) -26) 27 6 ??? New .20x20:{ close -@ @Pixeltool | pt 20 20 } .30x30:{ close -@ @Pixeltool | pt 30 30 } .50x50:{ close -@ @Pixeltool | pt 50 50 } .Custom:{ if ($regex($input(Enter in values for X Y (i.e. 75 50),e,Pixeltool - New),/^(\d+\s\d+)$/)) { close -@ @Pixeltool | pt $regml(1) } } Resize .20x20:pt.re 20 20 .30x30:pt.re 30 30 .50x50:pt.re 50 50 .Custom:if ($regex($input(Enter in values for X Y (i.e. 75 50),e,Pixeltool - Resize),/^(\d+\s\d+)$/)) pt.re $regml(1) Fill Grid .With Selected Colour:{ var %x, %y = 1 while (%y <= $hget(pt,y)) { %x = 31 while (%x <= $calc($hget(pt,x) +30)) { drawfill -r @Pixeltool $hget(pt,c) $rgb(235,235,235) %x %y inc %x 10 } inc %y 10 } } - Open Art:if ($sfile($mircdir *.txt)) run $qt($v1) - Load Art:pt.load $sfile($mircdir *.txt,Load Art,Load) Save Art:pt.save 1 $sfile($mircdir *.txt,Save As,Save) } menu Channel,Query { Pixeltool .Open Pixeltool:pt .Play Current Art (to $active $+ ):pt.save 2 $active .Play Saved Art (to $active $+ ) $+ ...:if ($sfile($mircdir *.txt)) .play $active $qt($v1) } on *:close:@Pixeltool:hfree pt