Skip to content

Instantly share code, notes, and snippets.

@NiKiZe
Created April 2, 2017 21:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NiKiZe/148a92f841c6a653d1058726f7db1bb5 to your computer and use it in GitHub Desktop.
Save NiKiZe/148a92f841c6a653d1058726f7db1bb5 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name PlacePaintBot
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Big Bitcoin logo on r/place. Final result- http://imgur.com/a/OXy65
// @author mbarkhau, modified by random003
// @match https://www.reddit.com/place?webview=true
// @grant none
// ==/UserScript==
(function() {
'use strict';
var debug = false;
var images = [
// ordered by priority.
// use the debug flag to test your images!
{
offsetX: 0,
offsetY: 0,
text: [
// Bitcoin Logo
" ",
" GGGGGGGG ",
" GGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGG GG GGGGGGGGGGGGG ",
" GGGGGGGGGGGG G GG GGGGGGGGGGGGGG ",
" GGGGGGGGGGGG G GGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGG GGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGG GGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGGGG GGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGGG GGGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGG GGGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGG GGGG GGGGGGGGGGGG ",
" GGGGGGGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGG GGGGGGGGGGGG ",
" GGGGGGGGGGGGG GG GGGGGGGGGGGGGG ",
" GGGGGGGGGGGGG GG GGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGG GG GGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGGGGGG ",
" GGGGGGGGGGGGGGGG ",
" GGGGGGGGGG ",
" ",
],
},
{
offsetX: 0,
offsetY: 0,
text: [
// Bitcoin Logo
"..........................................................................................................................................................................................................",
"..................GGGGGGGG.................................BBB............................................................................................................................................",
"...............GGGGGGGGGGGGGGG.......................BBBBBBBB......................BBBBBB.................................................................................BBBBBB..........................",
".............GGGGGGGGGGGGGGGGGGG.....................BBBBBBBB.....................BBBBBBBB...............................................................................BBBBBBBB.........................",
"...........GGGGGGGGGGGGGGGGGGGGGG....................BBBBBBBB....................BBBBBBBBB..............................................................................BBBBBBBBB.........................",
".........GGGGGGGGGGGGGGGGGGGGGGGGGG.................BBBBBBBBB...................BBBBBBBBBB..............................................................................BBBBBBBBB.........................",
"........GGGGGGGGGGGGGGGGGGGGGGGGGGGG................BBBBBBBBB...................BBBBBBBBBB...........BB................................................................BBBBBBBBBB.........................",
".......GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG...............BBBBBBBB....................BBBBBBBBBB.....BBBBBBBB................................................................BBBBBBBBBB.........................",
"......GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG..............BBBBBBBB....................BBBBBBBBBB....BBBBBBBB.................................................................BBBBBBBBBB.........................",
".....GGGGGGGGGGGGGGGG..GGGGGGGGGGGGGGGG............BBBBBBBBB.....................BBBBBBBB.....BBBBBBBB..................................................................BBBBBBBB..........................",
".....GGGGGGGGGGGGGGGG..GG...GGGGGGGGGGGG...........BBBBBBBBB.....................BBBBBBB.....BBBBBBBBB...................................................................BBBBBB...........................",
"....GGGGGGGGGGGGGGGGG..GG..GGGGGGGGGGGGG...........BBBBBBBB.........................B........BBBBBBBBB.....................................................................BB.............................",
"....GGGGGGGGGGGG....G..GG..GGGGGGGGGGGGGG..........BBBBBBBB..................................BBBBBBBB.....................................................................................................",
"...GGGGGGGGGGGG.........G..GGGGGGGGGGGGGG.........BBBBBBBBB..................................BBBBBBBB.....................................................................................................",
"...GGGGGGGGGGGGGG..........GGGGGGGGGGGGGGG........BBBBBBBBB.BBBBBB..........................BBBBBBBBB....................BBBBBBBBB..............BBBBBBBBB.................................BBBBBBBBB.......",
"..GGGGGGGGGGGGGGGG...........GGGGGGGGGGGGG........BBBBBBBBBBBBBBBBBB...........BBBBBBBBB....BBBBBBBBBBBBBBBBB.........BBBBBBBBBBBBBBB.........BBBBBBBBBBBBB...........BBBBBBBBB.......BBBBBBBBBBBBBBBB....",
"..GGGGGGGGGGGGGGGG....GGG.....GGGGGGGGGGGG........BBBBBBBBBBBBBBBBBBB..........BBBBBBBB.....BBBBBBBBBBBBBBBBB.......BBBBBBBBBBBBBBBBB.......BBBBBBBBBBBBBBBB..........BBBBBBBB......BBBBBBBBBBBBBBBBBBB...",
"..GGGGGGGGGGGGGGGG....GGGG.....GGGGGGGGGGGG.......BBBBBBBBBBBBBBBBBBBB.........BBBBBBBB.....BBBBBBBBBBBBBBBBB......BBBBBBBBBBBBBBBBBB......BBBBBBBBBBBBBBBBBB.........BBBBBBBB......BBBBBBBBBBBBBBBBBBBB..",
"..GGGGGGGGGGGGGGG....GGGGGG....GGGGGGGGGGGG......BBBBBBBBBBBBBBBBBBBBBB.......BBBBBBBBB.....BBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBB......BBBBBBBBBBBBBBBBBBBB........BBBBBBBB.....BBBBBBBBBBBBBBBBBBBBBB.",
".GGGGGGGGGGGGGGGG....GGGGGG....GGGGGGGGGGGG......BBBBBBBBBBBBBBBBBBBBBB.......BBBBBBBBB....BBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBBBB.......BBBBBBBBB.....BBBBBBBBBBBBBBBBBBBBBB.",
".GGGGGGGGGGGGGGGG....GGGGGG....GGGGGGGGGGGG......BBBBBBBBBBBBBBBBBBBBBBB......BBBBBBBB.....BBBBBBBBBBBBBBBBB....BBBBBBBBBBBBBBBBBBBB....BBBBBBBBBBBBBBBBBBBBBBB......BBBBBBBBB.....BBBBBBBBBBBBBBBBBBBBBB.",
".GGGGGGGGGGGGGGGG..............GGGGGGGGGGGG......BBBBBBBBB....BBBBBBBBBB......BBBBBBBB.....BBBBBBBBBBBBBBBBB....BBBBBBBBBBB.....BBB....BBBBBBBBBBB....BBBBBBBBB......BBBBBBBB......BBBBBBBB.....BBBBBBBBB.",
".GGGGGGGGGGGGGGG..............GGGGGGGGGGGGG.....BBBBBBBBB......BBBBBBBBB......BBBBBBBB.....BBBBBBBB............BBBBBBBBBB..............BBBBBBBBB.......BBBBBBBB......BBBBBBBB.....BBBBBBBBB......BBBBBBBB.",
".GGGGGGGGGGGGGGG....GGG......GGGGGGGGGGGGGG.....BBBBBBBBB.......BBBBBBBB.....BBBBBBBBB....BBBBBBBBB...........BBBBBBBBBB..............BBBBBBBBB........BBBBBBBBB....BBBBBBBBB.....BBBBBBBB.......BBBBBBBB.",
".GGGGGGGGGGGGGGG....GGGGG.....GGGGGGGGGGGGG.....BBBBBBBB........BBBBBBBBB....BBBBBBBB.....BBBBBBBBB...........BBBBBBBBB...............BBBBBBBBB........BBBBBBBBB....BBBBBBBBB.....BBBBBBBB.......BBBBBBBB.",
".GGGGGGGGGGGGGGG....GGGGGG.....GGGGGGGGGGGG.....BBBBBBBB........BBBBBBBBB....BBBBBBBB.....BBBBBBBB............BBBBBBBB................BBBBBBBB.........BBBBBBBBB....BBBBBBBB......BBBBBBBB.......BBBBBBBB.",
".GGGGGGGGGGGGGG....GGGGGGG.....GGGGGGGGGGGG....BBBBBBBBB........BBBBBBBBB....BBBBBBBB.....BBBBBBBB...........BBBBBBBBB...............BBBBBBBBB.........BBBBBBBBB....BBBBBBBB.....BBBBBBBBB.......BBBBBBBB.",
"..GGGGGGGGGG.......GGGGGGG.....GGGGGGGGGGGG....BBBBBBBBB........BBBBBBBBB...BBBBBBBBB....BBBBBBBBB...........BBBBBBBBB...............BBBBBBBB..........BBBBBBBBB...BBBBBBBBB.....BBBBBBBBB.......BBBBBBBB.",
"..GGGGGGGGGG.........GGGG......GGGGGGGGGGGG....BBBBBBBB.........BBBBBBBB....BBBBBBBBB....BBBBBBBBB...........BBBBBBBB................BBBBBBBB..........BBBBBBBBB...BBBBBBBBB.....BBBBBBBB.......BBBBBBBBB.",
"..GGGGGGGGGGG.................GGGGGGGGGGGG.....BBBBBBBB.........BBBBBBBB....BBBBBBBB.....BBBBBBBB............BBBBBBBB................BBBBBBBB..........BBBBBBBB....BBBBBBBB......BBBBBBBB.......BBBBBBBBB.",
"...GGGGGGGGGGGGG..............GGGGGGGGGGGG....BBBBBBBBB.........BBBBBBBB....BBBBBBBB.....BBBBBBBB............BBBBBBBB................BBBBBBBB..........BBBBBBBB....BBBBBBBB.....BBBBBBBBB.......BBBBBBBB..",
"...GGGGGGGGGGGGG..GG........GGGGGGGGGGGGGG....BBBBBBBBB........BBBBBBBBB...BBBBBBBBB.....BBBBBBBB............BBBBBBBB................BBBBBBBB.........BBBBBBBBB...BBBBBBBBB.....BBBBBBBBB.......BBBBBBBB..",
"...GGGGGGGGGGGGG..GG..GGGGGGGGGGGGGGGGGGG.....BBBBBBBB.........BBBBBBBB....BBBBBBBBB....BBBBBBBBB............BBBBBBBB................BBBBBBBB.........BBBBBBBBB...BBBBBBBBB.....BBBBBBBB.......BBBBBBBBB..",
"....GGGGGGGGGGG...GG..GGGGGGGGGGGGGGGGGG......BBBBBBBB........BBBBBBBBB....BBBBBBBB.....BBBBBBBBB............BBBBBBBBB...............BBBBBBBB.........BBBBBBBB....BBBBBBBB......BBBBBBBB.......BBBBBBBBB..",
".....GGGGGGGGGGGGGGG..GGGGGGGGGGGGGGGGGG......BBBBBBBB.......BBBBBBBBBB....BBBBBBBB.....BBBBBBBBB............BBBBBBBBB...............BBBBBBBB........BBBBBBBBB....BBBBBBBB.....BBBBBBBBB.......BBBBBBBB...",
".....GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG......BBBBBBBBB......BBBBBBBBBB....BBBBBBBBB.....BBBBBBBBB............BBBBBBBBBB..............BBBBBBBBB......BBBBBBBBB.....BBBBBBBB.....BBBBBBBBB.......BBBBBBBB...",
"......GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.......BBBBBBBB......BBBBBBBBBB.....BBBBBBBBB.....BBBBBBBBBB......B....BBBBBBBBBBB......BB.....BBBBBBBBBB....BBBBBBBBBB....BBBBBBBBB.....BBBBBBBB.......BBBBBBBBB...",
".......GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.......BBBBBBBBBBBBBBBBBBBBBBBB.....BBBBBBBB......BBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBB....BBBBBBBBBBBBBBBBBBBBBBB.....BBBBBBBB......BBBBBBBB.......BBBBBBBBB...",
"........GGGGGGGGGGGGGGGGGGGGGGGGGGGG.........BBBBBBBBBBBBBBBBBBBBBBB......BBBBBBBB......BBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBBBB......BBBBBBBB......BBBBBBBB.......BBBBBBBBB...",
".........GGGGGGGGGGGGGGGGGGGGGGGGGG.........BBBBBBBBBBBBBBBBBBBBBBB.......BBBBBBBB.......BBBBBBBBBBBBBBBB......BBBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBBBBB......BBBBBBBB.....BBBBBBBBB.......BBBBBBBB....",
"..........GGGGGGGGGGGGGGGGGGGGGGGG..........BBBBBBBBBBBBBBBBBBBBBB.......BBBBBBBBB.......BBBBBBBBBBBBBBBBB.....BBBBBBBBBBBBBBBBBB......BBBBBBBBBBBBBBBBBB.......BBBBBBBBB.....BBBBBBBBB.......BBBBBBBB....",
"............GGGGGGGGGGGGGGGGGGGG............BBBBBBBBBBBBBBBBBBBB.........BBBBBBBBB........BBBBBBBBBBBBBBBB.......BBBBBBBBBBBBBBBB.......BBBBBBBBBBBBBBBB........BBBBBBBB......BBBBBBBB.......BBBBBBBBB....",
"..............GGGGGGGGGGGGGGGG...............BBBBBBBBBBBBBBBBBB..........BBBBBBBB..........BBBBBBBBBBBBBBB........BBBBBBBBBBBBBBB........BBBBBBBBBBBBBB.........BBBBBBBB......BBBBBBBB.......BBBBBBBBB....",
".................GGGGGGGGGG.....................BBBBBBBBBBBB.................................BBBBBBBBBB.............BBBBBBBBBB.............BBBBBBBBB......................................................",
"..........................................................................................................................................................................................................",
],
},
];
var colors = {
".": 1, // gray, because white doesnt seem to work
"B": 3, // black
"G": 6, // gold
" ": -1, // ignore
};
for (var img_idx = 0; img_idx < images.length; img_idx++) {
var image = images[img_idx];
image.image_data = [];
for (var relY = 0; relY < image.text.length; relY++) {
var row = image.text[relY];
for (var relX = 0; relX < row.length; relX++) {
var color = colors[row[relX]] || -1;
if (color < 0) {
continue;
}
var absX = image.offsetX + relX;
var absY = image.offsetY + relY;
image.image_data.push(absX);
image.image_data.push(absY);
image.image_data.push(color);
}
}
}
var default_panX = 400;
var default_panY = 400;
var p = r.place;
p.panX = default_panX;
p.panY = default_panY;
r.placeModule("placePaintBot", function(loader) {
var c = loader("canvasse");
var r = loader("client");
setInterval(function() {
var tl = p.getCooldownTimeRemaining();
if (!debug && tl > 200) {return;}
for (var img_idx = 0; img_idx < images.length; img_idx++) {
var image = images[img_idx];
for (var i = 0; i < image.image_data.length; i += 3) {
var j = Math.floor((Math.random() * image.image_data.length) / 3) * 3;
var x = image.image_data[j + 0];
var y = image.image_data[j + 1];
var color = image.image_data[j + 2];
var currentColor = p.state[c.getIndexFromCoords(x, y)];
if (currentColor != color) {
if (debug) {
p.state[c.getIndexFromCoords(x, y)] = color;
c.setBufferState(c.getIndexFromCoords(x, y), r.getPaletteColorABGR(color));
} else {
console.log("set color for", x, y, "old", currentColor, "new", color);
p.setColor(color);
p.drawTile(x, y);
}
return;
}
}
}
}, 1000);
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment