--Donut script by Neko_Baron - tested on RedMew

--change these to mess with ring/shape
local donut_radius = 1600
local donut_width = 128

--dont touch these
local donut_half = donut_width * 0.5
local x_offset = donut_radius - donut_half
local donut_low = x_offset^2
local donut_high = (x_offset+donut_width)^2


function run_shape_module(event)
	local area = event.area
	local surface = event.surface
	local tiles = {}

	local top_left = area.left_top	--make a more direct reference


	for x = top_left.x-1, top_left.x + 32 do
		for y = top_left.y-1, top_left.y + 32 do

			local x_off = x - donut_radius
			local distance = x_off^2 + y^2  -- we dont bother to get sqr of it, because we just want the cubed answer to compare to donut_low/high
			if distance > donut_high or distance < donut_low then
				table.insert(tiles, {name = "out-of-map", position = {x,y}})
			end
		end
	end
	surface.set_tiles(tiles)

	return true
end
