-
-
Save ripper234/49a74ddf9a216e5f7a0d27f481dea9f6 to your computer and use it in GitHub Desktop.
placepaintbot4.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name PlacePaintBot | |
// @namespace http://tampermonkey.net/ | |
// @version 0.4 | |
// @description Domination of Place! | |
// @author mbarkhau | |
// @match https://www.reddit.com/place?webview=true | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
var images = [ | |
{ | |
offsetX: 0, | |
offsetY: 0, | |
text: [ | |
"#", | |
" #", | |
" #", | |
" #", | |
" #", | |
" #", | |
" #", | |
" #", | |
" #", | |
], | |
} | |
]; | |
var colors = { | |
"*": 7, // brown | |
}; | |
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 = 120; | |
var default_panY = -380; | |
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 (2000 < tl && tl < 3000) {location.reload();} | |
var debug = tl > 3000; | |
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; | |
} | |
} | |
console.log("noop"); | |
} | |
}, 200); | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment