doc formatting
This commit is contained in:
parent
999fdbe54e
commit
18052d3d89
38
main.js
38
main.js
@ -12,14 +12,14 @@ const targetColor = config.targetColor;
|
|||||||
const tolerance = config.tolerance;
|
const tolerance = config.tolerance;
|
||||||
|
|
||||||
|
|
||||||
setInterval(eatDrywall, photoInterval*1000);
|
setInterval(eatDrywall, photoInterval * 1000);
|
||||||
|
|
||||||
async function eatDrywall() {
|
async function eatDrywall() {
|
||||||
let monitors = ss.Monitor.all();
|
let monitors = ss.Monitor.all();
|
||||||
|
|
||||||
monitors.forEach((i) => {
|
monitors.forEach((i) => {
|
||||||
var im = i;
|
var im = i;
|
||||||
if (im.isPrimary){
|
if (im.isPrimary) {
|
||||||
let image = im.captureImageSync();
|
let image = im.captureImageSync();
|
||||||
let img = image.toRawSync();
|
let img = image.toRawSync();
|
||||||
clickRandomPixelOfColor(im.width, im.height, img);
|
clickRandomPixelOfColor(im.width, im.height, img);
|
||||||
@ -30,8 +30,8 @@ async function eatDrywall() {
|
|||||||
function clickRandomPixelOfColor(width, height, image) {
|
function clickRandomPixelOfColor(width, height, image) {
|
||||||
|
|
||||||
var hits = [];
|
var hits = [];
|
||||||
for (let i = 0; i < width*height; i++) {
|
for (let i = 0; i < width * height; i++) {
|
||||||
if (compareColors(targetColor,getPixel(i, image))) {
|
if (compareColors(targetColor, getPixel(i, image))) {
|
||||||
hits.push(i);
|
hits.push(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,40 +39,40 @@ function clickRandomPixelOfColor(width, height, image) {
|
|||||||
let click = Math.floor(Math.random() * hits.length); //get index of random viable pixel
|
let click = Math.floor(Math.random() * hits.length); //get index of random viable pixel
|
||||||
|
|
||||||
let target = deRasterize(hits[click], width);//get coordinates of random pixel
|
let target = deRasterize(hits[click], width);//get coordinates of random pixel
|
||||||
console.log("Clicking: " + target);
|
console.log("Clicking: " + target);
|
||||||
proc.execSync("python click.py " + target.x + " " + target.y);
|
proc.execSync("python click.py " + target.x + " " + target.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
function rasterize(x, y, width){ //scale to image
|
function rasterize(x, y, width) { //scale to image
|
||||||
return (x + y * width);
|
return (x + y * width);
|
||||||
}
|
}
|
||||||
function deRasterize(i, width){
|
function deRasterize(i, width) {
|
||||||
return ({
|
return ({
|
||||||
y: Math.floor(i/width),
|
y: Math.floor(i / width),
|
||||||
x: i % width
|
x: i % width
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function compareColors(c1,c2){ //compare two rgba color structs
|
function compareColors(c1, c2) { //compare two rgba color structs
|
||||||
//general basic distance nothing too special
|
//general basic distance nothing too special
|
||||||
|
|
||||||
let sum1 = c1.r + c1.g + c1.b + c1.a;
|
let sum1 = c1.r + c1.g + c1.b + c1.a;
|
||||||
let sum2 = c2.r + c2.g + c2.b + c2.a;
|
let sum2 = c2.r + c2.g + c2.b + c2.a;
|
||||||
|
|
||||||
if (Math.abs(sum1-sum2) < (tolerance*4)) {
|
if (Math.abs(sum1 - sum2) < (tolerance * 4)) {
|
||||||
return true;
|
return true;
|
||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
//gets color of a pixel at given coordinate
|
//gets color of a pixel at given coordinate
|
||||||
function getPixel(pos,img) {
|
function getPixel(pos, img) {
|
||||||
|
|
||||||
//pixel origin
|
//pixel origin
|
||||||
let o = pos * 4;
|
let o = pos * 4;
|
||||||
|
|
||||||
let p = {
|
let p = {
|
||||||
r: img[o],
|
r: img[o],
|
||||||
g: img[o+1],
|
g: img[o + 1],
|
||||||
b: img[o+2],
|
b: img[o + 2],
|
||||||
a: img[o+3]
|
a: img[o + 3]
|
||||||
};
|
};
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user