Improved efficiency of blocktype
This commit is contained in:
parent
d57c5868ee
commit
a9f03f7d7c
1 changed files with 271 additions and 257 deletions
|
@ -2,283 +2,300 @@ load(__folder + "drone.js");
|
||||||
|
|
||||||
(function(){
|
(function(){
|
||||||
|
|
||||||
var bitmap = {
|
var bitmaps = {
|
||||||
'0':' ### '+
|
raw: {
|
||||||
' # # '+
|
'0':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### ',
|
' # # '+
|
||||||
|
' ### ',
|
||||||
|
|
||||||
'1':' # '+
|
'1':' # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'2':' ### '+
|
'2':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'3':' ### '+
|
'3':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'4':' # '+
|
'4':' # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'5':' ### '+
|
'5':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'6':' ### '+
|
'6':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'7':' ### '+
|
'7':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'8':' ### '+
|
'8':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'9':' ### '+
|
'9':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'a':' ### '+
|
'a':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'b':' ## '+
|
'b':' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ## ',
|
' ## ',
|
||||||
|
|
||||||
'c':' ## '+
|
'c':' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' ## ',
|
' ## ',
|
||||||
|
|
||||||
'd':' ## '+
|
'd':' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ## ',
|
' ## ',
|
||||||
|
|
||||||
'e':' ### '+
|
'e':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'f':' ### '+
|
'f':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'g':' ### '+
|
'g':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'h':' # # '+
|
'h':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'i':' ### '+
|
'i':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'j':' ### '+
|
'j':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'k':' # '+
|
'k':' # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'l':' # '+
|
'l':' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'm':' # # '+
|
'm':' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'n':' ## '+
|
'n':' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'o':' # '+
|
'o':' # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'p':' ### '+
|
'p':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'q':' ### '+
|
'q':' ### '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'r':' ## '+
|
'r':' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ## '+
|
' ## '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
's':' ## '+
|
's':' ## '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ## ',
|
' ## ',
|
||||||
|
|
||||||
't':' ### '+
|
't':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'u':' # # '+
|
'u':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'v':' # # '+
|
'v':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'w':' # # '+
|
'w':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'x':' # # '+
|
'x':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # ',
|
' # # ',
|
||||||
|
|
||||||
'y':' # # '+
|
'y':' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # # '+
|
' # # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'z':' ### '+
|
'z':' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### ',
|
' ### ',
|
||||||
|
|
||||||
'!':' # '+
|
'!':' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' '+
|
' '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
':':' '+
|
':':' '+
|
||||||
' # '+
|
' # '+
|
||||||
' '+
|
' '+
|
||||||
' # '+
|
' # '+
|
||||||
' ',
|
' ',
|
||||||
|
|
||||||
';':' '+
|
';':' '+
|
||||||
' # '+
|
' # '+
|
||||||
' '+
|
' '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
',':' '+
|
',':' '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'/':' # '+
|
'/':' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
'+':' '+
|
'+':' '+
|
||||||
' # '+
|
' # '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' # '+
|
' # '+
|
||||||
' ',
|
' ',
|
||||||
|
|
||||||
'-':' '+
|
'-':' '+
|
||||||
' '+
|
' '+
|
||||||
' ### '+
|
' ### '+
|
||||||
' '+
|
' '+
|
||||||
' ',
|
' ',
|
||||||
|
|
||||||
'.':' '+
|
'.':' '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' # ',
|
' # ',
|
||||||
|
|
||||||
"'":' # '+
|
"'":' # '+
|
||||||
' # '+
|
' # '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' ',
|
' ',
|
||||||
|
|
||||||
' ':' '+
|
' ':' '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' '+
|
' '+
|
||||||
' '
|
' '
|
||||||
|
},
|
||||||
|
computed: {}
|
||||||
};
|
};
|
||||||
|
/*
|
||||||
|
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)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Drone.extend('blocktype', function(message,fg,bg){
|
Drone.extend('blocktype', function(message,fg,bg){
|
||||||
|
|
||||||
this.chkpt('blocktext');
|
this.chkpt('blocktext');
|
||||||
|
@ -287,25 +304,22 @@ load(__folder + "drone.js");
|
||||||
for (var h = 0;h < lineCount; h++) {
|
for (var h = 0;h < lineCount; h++) {
|
||||||
var line = lines[h];
|
var line = lines[h];
|
||||||
line = line.toLowerCase().replace(/[^0-9a-z \.\-\+\/\;\'\:\!]/g,"");
|
line = line.toLowerCase().replace(/[^0-9a-z \.\-\+\/\;\'\:\!]/g,"");
|
||||||
print ("lineCount=" + lineCount);
|
|
||||||
this.up(7*(lineCount-(h+1)));
|
this.up(7*(lineCount-(h+1)));
|
||||||
|
|
||||||
for (var i =0;i < line.length; i++) {
|
for (var i =0;i < line.length; i++) {
|
||||||
var ch = line.charAt(i)
|
var ch = line.charAt(i)
|
||||||
var bits = bitmap[ch];
|
var bits = bitmaps.computed[ch];
|
||||||
if (typeof bits == "undefined"){
|
if (typeof bits == "undefined"){
|
||||||
bits = bitmap[' '];
|
bits = bitmaps.computed[' '];
|
||||||
}
|
}
|
||||||
var charWidth = bits.length/5;
|
var charWidth = bits.width;
|
||||||
if (typeof bg != "undefined")
|
if (typeof bg != "undefined")
|
||||||
this.box(bg,charWidth,7,1);
|
this.box(bg,charWidth,7,1);
|
||||||
for (var j = 0;j < bits.length;j++){
|
for (var j = 0;j < bits.pixels.length;j++){
|
||||||
this.chkpt('btbl');
|
this.chkpt('btbl');
|
||||||
if (bits.charAt(j) != ' '){
|
var x = bits.pixels[j][0];
|
||||||
var x = j % charWidth;
|
var y = bits.pixels[j][1];
|
||||||
var y = Math.ceil(j/charWidth);
|
this.up(6-y).right(x).box(fg);
|
||||||
this.up(6-y).right(x).box(fg);
|
|
||||||
}
|
|
||||||
this.move('btbl');
|
this.move('btbl');
|
||||||
}
|
}
|
||||||
this.right(charWidth-1);
|
this.right(charWidth-1);
|
||||||
|
|
Reference in a new issue