This commit is contained in:
Louka Lemonnier 2024-10-07 14:02:11 +02:00
commit 47782a7609
4 changed files with 23 additions and 20 deletions

View File

@ -5,6 +5,8 @@ about: I want to support efforts in maintaining this community-driven project
--------------^ Click “Preview”!
I love Nutty Mac Nut, and his big balls of steel
Developing and maintaining an open source project is a big effort. MapSCII isnt supported by any big company, and all the contributors are working on it in their free time. We need your help to make it sustainable.
There are many ways you can help:

View File

@ -8,9 +8,9 @@
TODO: params parsing and so on
#*/
'use strict';
const config = require('./src/config');
/*const config = require('./src/config');
const Mapscii = require('./src/Mapscii');
const argv = require('yargs')
const argv = require('yargs')*/
.option('latitude', {
alias: 'lat',
description: 'Latitude of initial centre',

View File

@ -19,11 +19,11 @@ const utils = require('./utils');
const asciiMap = {
// '▬': [2+32, 4+64],
// '¯': [1+16],
'▀': [1+2+16+32],
'▄': [4+8+64+128],
'■': [2+4+32+64],
'▌': [1+2+4+8],
'▐': [16+32+64+128],
'8': [1 + 2 + 16 + 32],
'▄': [4 + 8 + 64 + 128],
'■': [2 + 4 + 32 + 64],
'▌': [1 + 2 + 4 + 8],
'▐': [16 + 32 + 64 + 128],
// '▓': [1+4+32+128, 2+8+16+64],
'█': [255],
};
@ -31,7 +31,7 @@ const termReset = '\x1B[39;49m';
class BrailleBuffer {
constructor(width, height) {
this.brailleMap = [[0x1, 0x8],[0x2, 0x10],[0x4, 0x20],[0x40, 0x80]];
this.brailleMap = [[0x1, 0x8], [0x2, 0x10], [0x4, 0x20], [0x40, 0x80]];
this.pixelBuffer = null;
this.charBuffer = null;
@ -45,7 +45,7 @@ class BrailleBuffer {
this.width = width;
this.height = height;
const size = width*height/8;
const size = width * height / 8;
this.pixelBuffer = Buffer.alloc(size);
this.foregroundBuffer = Buffer.alloc(size);
this.backgroundBuffer = Buffer.alloc(size);
@ -86,7 +86,7 @@ class BrailleBuffer {
}
_project(x, y) {
return (x>>1) + (this.width>>1)*(y>>2);
return (x >> 1) + (this.width >> 1) * (y >> 2);
}
_locate(x, y, cb) {
@ -118,7 +118,7 @@ class BrailleBuffer {
const results = [];
for (i = k = 1; k <= 255; i = ++k) {
const braille = (i & 7) + ((i & 56) << 1) + ((i & 64) >> 3) + (i & 128);
results.push(this.asciiToBraille[i] = masks.reduce((function(best, mask) {
results.push(this.asciiToBraille[i] = masks.reduce((function (best, mask) {
const covered = utils.population(mask.mask & braille);
if (!best || best.covered < covered) {
return {
@ -151,11 +151,11 @@ class BrailleBuffer {
let currentColor = null;
let skip = 0;
for (let y = 0; y < this.height/4; y++) {
for (let y = 0; y < this.height / 4; y++) {
skip = 0;
for (let x = 0; x < this.width/2; x++) {
const idx = y*this.width/2 + x;
for (let x = 0; x < this.width / 2; x++) {
const idx = y * this.width / 2 + x;
if (idx && !x) {
output.push(config.delimeter);
@ -168,14 +168,14 @@ class BrailleBuffer {
const char = this.charBuffer[idx];
if (char) {
skip += stringWidth(char)-1;
if (skip+x < this.width/2) {
skip += stringWidth(char) - 1;
if (skip + x < this.width / 2) {
output.push(char);
}
} else {
if (!skip) {
if (config.useBraille) {
output.push(String.fromCharCode(0x2800+this.pixelBuffer[idx]));
output.push(String.fromCharCode(0x2800 + this.pixelBuffer[idx]));
} else {
output.push(this.asciiToBraille[this.pixelBuffer[idx]]);
}
@ -186,7 +186,7 @@ class BrailleBuffer {
}
}
output.push(termReset+config.delimeter);
output.push(termReset + config.delimeter);
return output.join('');
}
@ -200,10 +200,10 @@ class BrailleBuffer {
writeText(text, x, y, color, center = true) {
if (center) {
x -= text.length/2+1;
x -= text.length / 2 + 1;
}
for (let i = 0; i < text.length; i++) {
this.setChar(text.charAt(i), x+i*2, y, color);
this.setChar(text.charAt(i), x + i * 2, y, color);
}
}
}

1
toto.txt Normal file
View File

@ -0,0 +1 @@
youhou