2013-01-20 22:03:45 +01:00
|
|
|
load(__folder + "drone.js");
|
|
|
|
|
|
|
|
(function(){
|
|
|
|
|
2013-01-21 23:18:47 +01:00
|
|
|
var bitmaps = {
|
|
|
|
raw: {
|
|
|
|
'0':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'1':' # '+
|
|
|
|
' ## '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'2':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'3':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ## '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'4':' # '+
|
|
|
|
' ## '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'5':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'6':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'7':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'8':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'9':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'a':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'b':' ## '+
|
|
|
|
' # # '+
|
|
|
|
' ## '+
|
|
|
|
' # # '+
|
|
|
|
' ## ',
|
|
|
|
|
|
|
|
'c':' ## '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' ## ',
|
|
|
|
|
|
|
|
'd':' ## '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ## ',
|
|
|
|
|
|
|
|
'e':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ## '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'f':' ### '+
|
|
|
|
' # '+
|
|
|
|
' ## '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'g':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'h':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'i':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'j':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'k':' # '+
|
|
|
|
' # # '+
|
|
|
|
' ## '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'l':' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'm':' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'n':' ## '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'o':' # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'p':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'q':' ### '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'r':' ## '+
|
|
|
|
' # # '+
|
|
|
|
' ## '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
's':' ## '+
|
|
|
|
' # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' ## ',
|
|
|
|
|
|
|
|
't':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'u':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'v':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'w':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' ### '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'x':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # '+
|
|
|
|
' # # '+
|
|
|
|
' # # ',
|
|
|
|
|
|
|
|
'y':' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # # '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'z':' ### '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' ### ',
|
|
|
|
|
|
|
|
'!':' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
':':' '+
|
|
|
|
' # '+
|
|
|
|
' '+
|
|
|
|
' # '+
|
|
|
|
' ',
|
|
|
|
|
|
|
|
';':' '+
|
|
|
|
' # '+
|
|
|
|
' '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
',':' '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'/':' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
'+':' '+
|
|
|
|
' # '+
|
|
|
|
' ### '+
|
|
|
|
' # '+
|
|
|
|
' ',
|
|
|
|
|
|
|
|
'-':' '+
|
|
|
|
' '+
|
|
|
|
' ### '+
|
|
|
|
' '+
|
|
|
|
' ',
|
|
|
|
|
|
|
|
'.':' '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' # ',
|
|
|
|
|
|
|
|
"'":' # '+
|
|
|
|
' # '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' ',
|
|
|
|
|
|
|
|
' ':' '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' '+
|
|
|
|
' '
|
|
|
|
},
|
|
|
|
computed: {}
|
2013-01-20 22:03:45 +01:00
|
|
|
};
|
2013-01-21 23:18:47 +01:00
|
|
|
/*
|
|
|
|
wph 20130121 compute the width, and x,y coords of pixels ahead of time
|
|
|
|
*/
|
|
|
|
for (var c in bitmaps.raw){
|
|
|
|
var bits = bitmaps.raw[c];
|
|
|
|
var width = bits.length/5;
|
|
|
|
var bmInfo = {"width": width,"pixels":[]}
|
|
|
|
bitmaps.computed[c] = bmInfo;
|
|
|
|
for (var j = 0; j < bits.length; j++){
|
|
|
|
if (bits.charAt(j) != ' '){
|
|
|
|
bmInfo.pixels.push([j%width,Math.ceil(j/width)]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-01-20 22:03:45 +01:00
|
|
|
Drone.extend('blocktype', function(message,fg,bg){
|
|
|
|
|
|
|
|
this.chkpt('blocktext');
|
|
|
|
var lines = message.split("\n");
|
|
|
|
var lineCount = lines.length;
|
|
|
|
for (var h = 0;h < lineCount; h++) {
|
|
|
|
var line = lines[h];
|
|
|
|
line = line.toLowerCase().replace(/[^0-9a-z \.\-\+\/\;\'\:\!]/g,"");
|
|
|
|
this.up(7*(lineCount-(h+1)));
|
|
|
|
|
|
|
|
for (var i =0;i < line.length; i++) {
|
|
|
|
var ch = line.charAt(i)
|
2013-01-21 23:18:47 +01:00
|
|
|
var bits = bitmaps.computed[ch];
|
2013-01-20 22:03:45 +01:00
|
|
|
if (typeof bits == "undefined"){
|
2013-01-21 23:18:47 +01:00
|
|
|
bits = bitmaps.computed[' '];
|
2013-01-20 22:03:45 +01:00
|
|
|
}
|
2013-01-21 23:18:47 +01:00
|
|
|
var charWidth = bits.width;
|
2013-01-20 22:03:45 +01:00
|
|
|
if (typeof bg != "undefined")
|
|
|
|
this.box(bg,charWidth,7,1);
|
2013-01-21 23:18:47 +01:00
|
|
|
for (var j = 0;j < bits.pixels.length;j++){
|
2013-01-20 22:03:45 +01:00
|
|
|
this.chkpt('btbl');
|
2013-01-21 23:18:47 +01:00
|
|
|
var x = bits.pixels[j][0];
|
|
|
|
var y = bits.pixels[j][1];
|
|
|
|
this.up(6-y).right(x).box(fg);
|
2013-01-20 22:03:45 +01:00
|
|
|
this.move('btbl');
|
|
|
|
}
|
|
|
|
this.right(charWidth-1);
|
|
|
|
}
|
|
|
|
this.move('blocktext');
|
|
|
|
}
|
|
|
|
|
|
|
|
return this.move('blocktext');
|
|
|
|
});
|
|
|
|
}());
|
|
|
|
|
|
|
|
|