Advertisement
kenik

model_generator.lua

Dec 11th, 2019
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. -- Вспомогательные функции для генерации файла .model для робота строителя
  2. -- @author kenik
  3. local gen = {}
  4.  
  5.  
  6. gen.fileHead = function(name)
  7. local str = ''
  8. str = str .. "title:string=" .. name .. "\n"
  9. str = str .. "author:string=kenik's maze generator\n"
  10. str = str .. "mats:table={\n"
  11. str = str .. " x:string=cobblestone\n"
  12. str = str .. "}\n"
  13. str = str .. "levels:list=[\n"
  14. return str
  15. end
  16.  
  17. gen.tableHead(name)
  18. local str = ''
  19. str = str .. " table={\n"
  20. str = str .. " name:string=" .. name .. "\n"
  21. str = str .. " blocks:list=[\n"
  22. return str
  23. end
  24.  
  25. -- @TODO Недопилено
  26. gen.fileLevel = function(n, tbl)
  27. local str = ''
  28. str = str .. gen.tableHead("level " .. n)
  29.  
  30. local first_row = " string= "
  31. local last_row = " string=x"
  32. local empty_row = " string= "
  33. local half = #tbl // 2 + 1
  34. for num = 1, #tbl do
  35. empty_row = empty_row .. " "
  36. first_row = first_row .. ( (n == 2 and num == half) and "v" or " ")
  37. last_row = last_row .. "xx"
  38. end
  39. empty_row = empty_row .. "\n"
  40. first_row = first_row .. " \n"
  41. last_row = last_row .. "\n"
  42. f:write(first_row)
  43. f:write(empty_row)
  44. f:write(last_row)
  45.  
  46. for _, item in pairs(tbl) do
  47. local row = " string=x"
  48. local second_row = " string=x"
  49. for _, letter in pairs(item) do
  50. row = row .. " " .. (letter["right_wall"] and "x" or " ")
  51. second_row = second_row .. (letter["bottom_wall"] and "x" or " ") .. (letter["right_wall"] and "x" or " ")
  52. end
  53. row = row .. "\n"
  54. second_row = second_row .. "\n"
  55.  
  56. f:write(row)
  57. f:write(second_row)
  58. end
  59.  
  60. f:write(last_row)
  61.  
  62. generateTableFooter(f)
  63. end
  64.  
  65. gen.tableFooter()
  66. local str = ''
  67. str = str .. " ]\n"
  68. str = str .. " }\n"
  69. return str
  70. end
  71.  
  72. gen.fileFooter = function()
  73. return "]\n"
  74. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement