biomes.lua 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. -- clear default mapgen biomes, decorations but keep ores
  2. minetest.clear_registered_biomes()
  3. minetest.clear_registered_decorations()
  4. --minetest.clear_registered_ores()
  5. local S = ethereal.intllib
  6. -- Blue Marble Nodes
  7. minetest.register_node("ethereal:blue_marble", {
  8. description = S("Blue Marble"),
  9. tiles = {"ethereal_blue_marble.png"},
  10. groups = {cracky = 1, stone = 1},
  11. sounds = default.node_sound_stone_defaults()
  12. })
  13. minetest.register_node("ethereal:blue_marble_tile", {
  14. description = S("Blue Marble Tile"),
  15. tiles = {"ethereal_blue_marble_tile.png"},
  16. groups = {cracky = 1, stone = 1},
  17. sounds = default.node_sound_stone_defaults()
  18. })
  19. minetest.register_craft({
  20. output = "ethereal:blue_marble_tile 9",
  21. recipe = {
  22. {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"},
  23. {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"},
  24. {"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"}
  25. }
  26. })
  27. -- helper strings
  28. local tmp, tmp2
  29. -- helper function
  30. local add_biome = function(a, l, m, n, o, p, b, c, d, e, f, g, nd, na, ns)
  31. -- if not 1 then biome disabled, don't add
  32. if p ~= 1 then return end
  33. minetest.register_biome({
  34. name = a,
  35. node_dust = b,
  36. node_top = c,
  37. depth_top = d,
  38. node_filler = e,
  39. depth_filler = f,
  40. node_stone = g,
  41. -- node_water_top = h,
  42. -- depth_water_top = i,
  43. -- node_water = j,
  44. -- node_river_water = k,
  45. y_min = l,
  46. y_max = m,
  47. heat_point = n,
  48. humidity_point = o,
  49. node_dungeon = nd or "default:cobble",
  50. node_dungeon_alt = (nd and "") or "default:mossycobble",
  51. node_dungeon_stair = ns or "stairs:stair_cobble"
  52. })
  53. end
  54. -- always registered biomes
  55. add_biome("mountain", 140, 31000, 50, 50, 1,
  56. nil, "default:snow", 1, "default:snowblock", 2)
  57. add_biome("grassland", 3, 71, 45, 65, 1,
  58. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  59. add_biome("underground", -31000, -192, 50, 50, 1,
  60. nil, nil, nil, nil, nil)
  61. -- biomes with disable setting
  62. tmp = "default:desert_stone"
  63. add_biome("desert", 3, 23, 35, 20, ethereal.desert,
  64. nil, "default:desert_sand", 1, "default:desert_sand", 3, tmp,
  65. "default:desert_stone", nil, "stairs:stair_desert_stone")
  66. add_biome("desert_ocean", -192, 3, 35, 20, ethereal.desert,
  67. nil, "default:sand", 1, "default:sand", 2, tmp,
  68. "default:desert_stone", nil, "stairs:stair_desert_stone")
  69. add_biome("bamboo", 25, 70, 45, 75, ethereal.bamboo,
  70. nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
  71. add_biome("sakura", 3, 25, 45, 75, ethereal.sakura,
  72. nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
  73. add_biome("sakura_ocean", -192, 2, 45, 75, ethereal.sakura,
  74. nil, "default:sand", 1, "default:sand", 2)
  75. add_biome("mesa", 1, 71, 25, 28, ethereal.mesa,
  76. nil, "default:dirt_with_dry_grass", 1, "bakedclay:orange", 15)
  77. add_biome("mesa_ocean", -192, 1, 25, 28, ethereal.mesa,
  78. nil, "default:sand", 1, "default:sand", 2)
  79. tmp = "default:dirt_with_coniferous_litter"
  80. if not minetest.registered_nodes[tmp] then
  81. tmp = "ethereal:cold_dirt"
  82. end
  83. -- was 'snowy' biome
  84. add_biome("coniferous_forest", 4, 40, 10, 40, ethereal.snowy,
  85. nil, tmp, 1, "default:dirt", 2)
  86. add_biome("taiga", 40, 140, 10, 40, ethereal.alpine,
  87. nil, "default:dirt_with_snow", 1, "default:dirt", 2)
  88. add_biome("frost_floatland", 1025, 1750, 10, 40, ethereal.frost,
  89. nil, "ethereal:crystal_dirt", 1, "default:dirt", 1)
  90. add_biome("frost", 1, 71, 10, 40, ethereal.frost,
  91. nil, "ethereal:crystal_dirt", 1, "default:dirt", 3)
  92. add_biome("frost_ocean", -192, 1, 10, 40, ethereal.frost,
  93. nil, "default:sand", 1, "default:sand", 2)
  94. add_biome("deciduous_forest", 3, 91, 13, 40, ethereal.grassy,
  95. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  96. add_biome("deciduous_forest_ocean", -31000, 3, 13, 40, ethereal.grassy,
  97. nil, "default:sand", 2, "default:gravel", 1)
  98. add_biome("caves", 4, 41, 15, 25, ethereal.caves,
  99. nil, "default:desert_stone", 3, "air", 8)
  100. tmp = "default:silver_sand"
  101. if not minetest.registered_nodes[tmp] then
  102. tmp = "default:sand"
  103. end
  104. add_biome("grayness", 2, 41, 15, 30, ethereal.grayness,
  105. nil, "ethereal:gray_dirt", 1, "default:dirt", 3)
  106. add_biome("grayness_ocean", -28, 1, 15, 30, ethereal.grayness,
  107. nil, tmp, 2, "default:sand", 2, "ethereal:blue_marble")
  108. add_biome("grassytwo", 1, 91, 15, 40, ethereal.grassytwo,
  109. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  110. add_biome("grassytwo_ocean", -192, 1, 15, 40, ethereal.grassytwo,
  111. nil, "default:sand", 1, "default:sand", 2)
  112. add_biome("prairie", 3, 26, 20, 40, ethereal.prairie,
  113. nil, "ethereal:prairie_dirt", 1, "default:dirt", 3)
  114. add_biome("prairie_ocean", -192, 1, 20, 40, ethereal.prairie,
  115. nil, "default:sand", 1, "default:sand", 2)
  116. add_biome("jumble", 1, 71, 25, 50, ethereal.jumble,
  117. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  118. add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble,
  119. nil, "default:sand", 1, "default:sand", 2)
  120. tmp = "default:dirt_with_rainforest_litter"
  121. if not minetest.registered_nodes[tmp] then
  122. tmp = "ethereal:jungle_dirt"
  123. end
  124. add_biome("junglee", 1, 71, 30, 60, ethereal.junglee,
  125. nil, tmp, 1, "default:dirt", 3)
  126. add_biome("junglee_ocean", -192, 1, 30, 60, ethereal.junglee,
  127. nil, "default:sand", 1, "default:sand", 2)
  128. add_biome("grove", 3, 23, 45, 35, ethereal.grove,
  129. nil, "ethereal:grove_dirt", 1, "default:dirt", 3)
  130. add_biome("grove_ocean", -192, 2, 45, 35, ethereal.grove,
  131. nil, "default:sand", 1, "default:sand", 2)
  132. add_biome("mediterranean", 3, 50, 20, 45, ethereal.mediterranean,
  133. nil, "ethereal:grove_dirt", 1, "default:dirt", 3)
  134. add_biome("mushroom", 3, 50, 45, 55, ethereal.mushroom,
  135. nil, "ethereal:mushroom_dirt", 1, "default:dirt", 3)
  136. add_biome("mushroom_ocean", -192, 2, 45, 55, ethereal.mushroom,
  137. nil, "default:sand", 1, "default:sand", 2)
  138. add_biome("sandstone", 3, 23, 50, 20, ethereal.sandstone,
  139. nil, "default:sandstone", 1, "default:sandstone", 1, "default:sandstone",
  140. "default:sandstone", nil, "stairs:stair_sandstone")
  141. add_biome("sandstone_ocean", -192, 2, 50, 20, ethereal.sandstone,
  142. nil, "default:sand", 1, "default:sand", 2, "default:sandstone",
  143. "default:sandstone", nil, "stairs:stair_sandstone")
  144. add_biome("quicksand", 1, 1, 50, 38, ethereal.quicksand,
  145. nil, "ethereal:quicksand2", 3, "default:gravel", 1)
  146. add_biome("plains", 3, 25, 65, 25, ethereal.plains,
  147. nil, "ethereal:dry_dirt", 1, "default:dirt", 3)
  148. add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains,
  149. nil, "default:sand", 1, "default:sand", 2)
  150. tmp = "default:dry_dirt_with_dry_grass"
  151. tmp2 = "default:dry_dirt"
  152. if not minetest.registered_nodes[tmp] then
  153. tmp = "default:dirt_with_dry_grass"
  154. tmp2 = "default:dirt"
  155. end
  156. add_biome("savanna", 3, 50, 55, 25, ethereal.savanna,
  157. nil, tmp, 1, tmp2, 3)
  158. add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna,
  159. nil, "default:sand", 1, "default:sand", 2)
  160. add_biome("fiery", 5, 20, 75, 10, ethereal.fiery,
  161. nil, "ethereal:fiery_dirt", 1, "default:dirt", 3)
  162. add_biome("fiery_ocean", -192, 4, 75, 10, ethereal.fiery,
  163. nil, "default:sand", 1, "default:sand", 2)
  164. add_biome("sandclay", 1, 11, 65, 2, ethereal.sandclay,
  165. nil, "default:sand", 3, "default:clay", 2)
  166. add_biome("swamp", 1, 7, 80, 90, ethereal.swamp,
  167. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  168. add_biome("swamp_ocean", -192, 1, 80, 90, ethereal.swamp,
  169. nil, "default:sand", 2, "default:clay", 2)
  170. if ethereal.glacier == 1 then
  171. minetest.register_biome({
  172. name = "glacier",
  173. node_dust = "default:snowblock",
  174. node_top = "default:snowblock",
  175. depth_top = 1,
  176. node_filler = "default:snowblock",
  177. depth_filler = 3,
  178. node_stone = "default:ice",
  179. node_water_top = "default:ice",
  180. depth_water_top = 10,
  181. node_river_water = "default:ice",
  182. node_riverbed = "default:gravel",
  183. depth_riverbed = 2,
  184. node_dungeon = "ethereal:icebrick",--"default:ice",
  185. node_dungeon_stair = "stairs:stair_ice",
  186. y_min = -8,
  187. y_max = 31000,
  188. heat_point = 0,
  189. humidity_point = 50,
  190. })
  191. minetest.register_biome({
  192. name = "glacier_ocean",
  193. node_dust = "default:snowblock",
  194. node_top = "default:sand",
  195. depth_top = 1,
  196. node_filler = "default:sand",
  197. depth_filler = 3,
  198. y_min = -112,
  199. y_max = -9,
  200. heat_point = 0,
  201. humidity_point = 50,
  202. })
  203. end
  204. if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
  205. minetest.register_biome({
  206. name = "tundra_highland",
  207. node_dust = "default:snow",
  208. node_riverbed = "default:gravel",
  209. depth_riverbed = 2,
  210. y_max = 180,
  211. y_min = 47,
  212. heat_point = 0,
  213. humidity_point = 40,
  214. })
  215. minetest.register_biome({
  216. name = "tundra",
  217. node_top = "default:permafrost_with_stones",
  218. depth_top = 1,
  219. node_filler = "default:permafrost",
  220. depth_filler = 1,
  221. node_riverbed = "default:gravel",
  222. depth_riverbed = 2,
  223. vertical_blend = 4,
  224. y_max = 46,
  225. y_min = 2,
  226. heat_point = 0,
  227. humidity_point = 40,
  228. })
  229. minetest.register_biome({
  230. name = "tundra_beach",
  231. node_top = "default:gravel",
  232. depth_top = 1,
  233. node_filler = "default:gravel",
  234. depth_filler = 2,
  235. node_riverbed = "default:gravel",
  236. depth_riverbed = 2,
  237. vertical_blend = 1,
  238. y_max = 1,
  239. y_min = -3,
  240. heat_point = 0,
  241. humidity_point = 40,
  242. })
  243. minetest.register_biome({
  244. name = "tundra_ocean",
  245. node_top = "default:sand",
  246. depth_top = 1,
  247. node_filler = "default:sand",
  248. depth_filler = 3,
  249. node_riverbed = "default:gravel",
  250. depth_riverbed = 2,
  251. vertical_blend = 1,
  252. y_max = -4,
  253. y_min = -112,
  254. heat_point = 0,
  255. humidity_point = 40,
  256. })
  257. end