function size()
  return 16
end

function island(pl, x, y, r)
  gmtool.make_block(pl, x, y, r)
  gmtool.make_island(pl, x+r/2+2, y+r/2, size() * 3)
  gmtool.make_island(pl, x-r-2, y+r/2, size() * 3)
  gmtool.make_island(pl, x-r/2-2, y-r/2, size() * 3)
  gmtool.make_island(pl, x+r+2, y-r/2, size() * 3)
  gmtool.make_island(pl, x+r/2+2, y-r-2, size() * 3)
  gmtool.make_island(pl, x-r/2-2, y+r+2, size() * 3)
end

function cross(pl, x, y, r)
  gmtool.make_block(pl, x-r, y+r*2, r)
  gmtool.make_block(pl, x+r*4/3, y, r)
  gmtool.make_block(pl, x-r*4/3, y, r)
  gmtool.make_block(pl, x+r, y-r*2, r)

  gmtool.make_island(pl, x, y, size() * 3)
  gmtool.make_island(pl, x, y-r*4/3, size() * 3)
  gmtool.make_island(pl, x, y+r*4/3, size() * 3)
  gmtool.make_island(pl, x+r*4/3, y-r*4/3, size() * 3)
  gmtool.make_island(pl, x-r*4/3, y+r*4/3, size() * 3)
end

function count()
  local i = 0
  for f in factions() do i = i + 1 end
  print(i)
end

function line(pl)
  local m = 0
  local x, y
  local i = 0
  x = 0
  y = i
  local r = get_region(x, y, pl)
  while true do
    if r==nil then
      if m==0 and (i>=0 or i<-10) then
        local s = size()
        gmtool.make_island(pl, x, y, s*3, s)
      else
        gmtool.make_block(pl, x, y, 6)
      end
      r = get_region(x, y, pl)
      if r==nil then
        r = region.create(x, y, "ocean", pl)
      end
      m = 1 - m
    end
    i = r.y + 1
    x = 0
    y = i
    r = get_region(x, y, pl)
    if r~=nil and r.y==0 then break end
  end
end

function build(pl)
  cross(pl, -28, -20, 6)
  island(pl, 28, -20, 11)
  island(pl, -28, 20, 11)
  island(pl, 28, 20, 11)
  -- line(pl)
end

eressea.free_game()
pl = plane.create(0, -50, -40, 90, 80)

build(pl)