import random

def randomize_block(self, a, b, c, value):
	R1, G1, B1 = self.map.get_color(a, b, c)
	R2, G2, B2 = R1 + random.randint(-value, value), G1 + random.randint(-value, value), B1 + random.randint(-value, value)
	if R2 < 0:
		R2 = 0
	if G2 < 0:
		G2 = 0
	if B2 < 0:
		B2 = 0
	if R2 > 255:
		R2 = 255
	if G2 > 255:
		G2 = 255
	if B2 > 255:
		B2 = 255
	RGB = (R2, G2, B2)
	self.map.set_point(a, b, c, RGB)

def apply_script(protocol, connection, config):
	
	class TextureProtocol(protocol):

			def on_map_change(self, map):
				for a in range(512):
					for b in range(512):
						if self.map.get_solid(a,b, self.map.get_z(a,b)) and self.map.get_z(a,b) < 63:
						    randomize_block(self, a, b, self.map.get_z(a,b), 15)
				return protocol.on_map_change(self, map)
			
	return TextureProtocol, connection