room.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. local room = {"a","a","a","a","a","a","a","a","a",
  2. "a","c","a","c","a","c","a","c","a",
  3. "a","s","a","s","a","s","a","s","a",
  4. "a","a","a","a","a","a","a","a","a",
  5. "a","a","a","a","a","a","a","a","a",
  6. "a","a","a","a","a","a","a","a","a",
  7. "a","s","a","s","a","s","a","s","a",
  8. "a","c","a","c","a","c","a","c","a",
  9. "a","a","a","a","a","a","a","a","a"}
  10. local trap = {"b","b","b","b","b","b","b","b","b",
  11. "l","b","l","b","l","b","l","b","b",
  12. "l","b","l","b","l","b","l","b","b",
  13. "l","b","l","l","l","b","l","l","b",
  14. "l","l","b","l","b","l","l","b","b",
  15. "l","b","l","l","l","l","l","l","b",
  16. "l","b","l","b","l","b","l","b","b",
  17. "l","b","l","b","l","b","l","b","b",
  18. "b","b","b","b","b","b","b","b","b"}
  19. local code = {}
  20. code["s"] = "sandstone"
  21. code["eye"] = "deco_stone1"
  22. code["men"] = "deco_stone2"
  23. code["sun"] = "deco_stone3"
  24. code["c"] = "chest"
  25. code["b"] = "sandstonebrick"
  26. code["a"] = "air"
  27. code["l"] = "lava_source"
  28. code["t"] = "trap"
  29. local function replace(str,iy)
  30. local out = "default:"
  31. if iy < 4 and str == "c" then str = "a" end
  32. if iy == 0 and str == "s" then out = "pyramids:" str = "sun" end
  33. if iy == 3 and str == "s" then out = "pyramids:" str = "men" end
  34. if str == "a" then out = "" end
  35. return out..code[str]
  36. end
  37. local function replace2(str,iy)
  38. local out = "default:"
  39. if iy == 0 and str == "l" then out = "pyramids:" str = "t"
  40. elseif iy < 3 and str == "l" then str = "a" end
  41. if str == "a" then out = "" end
  42. return out..code[str]
  43. end
  44. function pyramids.make_room(pos)
  45. local loch = {x=pos.x+7,y=pos.y+5, z=pos.z+7}
  46. for iy=0,4,1 do
  47. for ix=0,8,1 do
  48. for iz=0,8,1 do
  49. local n_str = room[tonumber(ix*9+iz+1)]
  50. local p2 = 0
  51. if n_str == "c" then
  52. if ix < 3 then p2 = 1 else p2 = 3 end
  53. pyramids.fill_chest({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz})
  54. end
  55. minetest.set_node({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz}, {name=replace(n_str,iy), param2=p2})
  56. end
  57. end
  58. end
  59. end
  60. function pyramids.make_traps(pos)
  61. local loch = {x=pos.x+7,y=pos.y, z=pos.z+7}
  62. for iy=0,4,1 do
  63. for ix=0,8,1 do
  64. for iz=0,8,1 do
  65. local n_str = trap[tonumber(ix*9+iz+1)]
  66. local p2 = 0
  67. minetest.set_node({x=loch.x+ix,y=loch.y-iy,z=loch.z+iz}, {name=replace2(n_str,iy), param2=p2})
  68. end
  69. end
  70. end
  71. end