Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Вспомогательные функции для генерации файла .model для робота строителя
- -- @author kenik
- local gen = {}
- gen.fileHead = function(name)
- local str = ''
- str = str .. "title:string=" .. name .. "\n"
- str = str .. "author:string=kenik's maze generator\n"
- str = str .. "mats:table={\n"
- str = str .. " x:string=cobblestone\n"
- str = str .. "}\n"
- str = str .. "levels:list=[\n"
- return str
- end
- gen.tableHead(name)
- local str = ''
- str = str .. " table={\n"
- str = str .. " name:string=" .. name .. "\n"
- str = str .. " blocks:list=[\n"
- return str
- end
- -- @TODO Недопилено
- gen.fileLevel = function(n, tbl)
- local str = ''
- str = str .. gen.tableHead("level " .. n)
- local first_row = " string= "
- local last_row = " string=x"
- local empty_row = " string= "
- local half = #tbl // 2 + 1
- for num = 1, #tbl do
- empty_row = empty_row .. " "
- first_row = first_row .. ( (n == 2 and num == half) and "v" or " ")
- last_row = last_row .. "xx"
- end
- empty_row = empty_row .. "\n"
- first_row = first_row .. " \n"
- last_row = last_row .. "\n"
- f:write(first_row)
- f:write(empty_row)
- f:write(last_row)
- for _, item in pairs(tbl) do
- local row = " string=x"
- local second_row = " string=x"
- for _, letter in pairs(item) do
- row = row .. " " .. (letter["right_wall"] and "x" or " ")
- second_row = second_row .. (letter["bottom_wall"] and "x" or " ") .. (letter["right_wall"] and "x" or " ")
- end
- row = row .. "\n"
- second_row = second_row .. "\n"
- f:write(row)
- f:write(second_row)
- end
- f:write(last_row)
- generateTableFooter(f)
- end
- gen.tableFooter()
- local str = ''
- str = str .. " ]\n"
- str = str .. " }\n"
- return str
- end
- gen.fileFooter = function()
- return "]\n"
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement