local wea = worldeditadditions
local wea_c = worldeditadditions_core
local Vector3 = wea_c.Vector3

local White = dofile(wea.modpath.."/lib/noise/engines/white.lua")

local Infrared = {}
Infrared.__index = Infrared


function Infrared.new(seed)
	local result = {
		seed = seed or math.random(),
		white = White.new(seed),
		window = 2
	}
	setmetatable(result, Infrared)
	return result
end

function Infrared:noise( x, y, z )
	local values = { }
	for nx=x-self.window,x+self.window do
		for ny=y-self.window,y+self.window do
			for nz=z-self.window,z+self.window do
				table.insert(values, self.white:noise(nx, ny, nz))
			end
		end
	end
	return wea_c.average(values)
end

return Infrared
