biomes.lua 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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. -- helper strings
  6. local tmp, tmp2
  7. -- helper function
  8. local add_biome = function(a, l, m, n, o, p, b, c, d, e, f, g)
  9. -- if not 1 then biome disabled, don't add
  10. if p ~= 1 then return end
  11. minetest.register_biome({
  12. name = a,
  13. node_dust = b,
  14. node_top = c,
  15. depth_top = d,
  16. node_filler = e,
  17. depth_filler = f,
  18. node_stone = g,
  19. -- node_water_top = h,
  20. -- depth_water_top = i,
  21. -- node_water = j,
  22. -- node_river_water = k,
  23. y_min = l,
  24. y_max = m,
  25. heat_point = n,
  26. humidity_point = o
  27. })
  28. end
  29. -- always registered biomes
  30. add_biome("mountain", 140, 31000, 50, 50, 1,
  31. nil, "default:snow", 1, "default:snowblock", 2)
  32. add_biome("clearing", 3, 71, 45, 65, 1,
  33. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  34. add_biome("underground", -31000, -192, 50, 50, 1,
  35. nil, nil, nil, nil, nil)
  36. -- biomes with disable setting
  37. tmp = "default:desert_stone"
  38. add_biome("desert", 3, 23, 35, 20, ethereal.desert,
  39. nil, "default:desert_sand", 1, "default:desert_sand", 3, tmp)
  40. add_biome("desert_ocean", -192, 3, 35, 20, ethereal.desert,
  41. nil, "default:sand", 1, "default:sand", 2, tmp)
  42. add_biome("bamboo", 25, 70, 45, 75, ethereal.bamboo,
  43. nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
  44. add_biome("sakura", 3, 25, 45, 75, ethereal.sakura,
  45. nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
  46. add_biome("sakura_ocean", -192, 2, 45, 75, ethereal.sakura,
  47. nil, "default:sand", 1, "default:sand", 2)
  48. add_biome("mesa", 1, 71, 25, 28, ethereal.mesa,
  49. nil, "default:dirt_with_dry_grass", 1, "bakedclay:orange", 15)
  50. add_biome("mesa_ocean", -192, 1, 25, 28, ethereal.mesa,
  51. nil, "default:sand", 1, "default:sand", 2)
  52. tmp = "default:dirt_with_coniferous_litter"
  53. if not minetest.registered_nodes[tmp] then
  54. tmp = "ethereal:cold_dirt"
  55. end
  56. add_biome("snowy", 4, 40, 10, 40, ethereal.snowy,
  57. nil, tmp, 1, "default:dirt", 2)
  58. add_biome("alpine", 40, 140, 10, 40, ethereal.alpine,
  59. nil, "default:dirt_with_snow", 1, "default:dirt", 2)
  60. add_biome("frost", 1, 71, 10, 40, ethereal.frost,
  61. nil, "ethereal:crystal_dirt", 1, "default:dirt", 3)
  62. add_biome("frost_ocean", -192, 1, 10, 40, ethereal.frost,
  63. nil, "default:sand", 1, "default:sand", 2)
  64. add_biome("grassy", 3, 91, 13, 40, ethereal.grassy,
  65. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  66. add_biome("grassy_ocean", -31000, 3, 13, 40, ethereal.grassy,
  67. nil, "default:sand", 2, "default:gravel", 1)
  68. add_biome("caves", 4, 41, 15, 25, ethereal.caves,
  69. nil, "default:desert_stone", 3, "air", 8)
  70. tmp = "default:silver_sand"
  71. if not minetest.registered_nodes[tmp] then
  72. tmp = "default:sand"
  73. end
  74. add_biome("grayness", 2, 41, 15, 30, ethereal.grayness,
  75. nil, "ethereal:gray_dirt", 1, "default:dirt", 3)
  76. add_biome("grayness_ocean", -192, 1, 15, 30, ethereal.grayness,
  77. nil, tmp, 2, "default:sand", 2)
  78. add_biome("grassytwo", 1, 91, 15, 40, ethereal.grassytwo,
  79. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  80. add_biome("grassytwo_ocean", -192, 1, 15, 40, ethereal.grassytwo,
  81. nil, "default:sand", 1, "default:sand", 2)
  82. add_biome("prairie", 3, 26, 20, 40, ethereal.prairie,
  83. nil, "ethereal:prairie_dirt", 1, "default:dirt", 3)
  84. add_biome("prairie_ocean", -192, 1, 20, 40, ethereal.prairie,
  85. nil, "default:sand", 1, "default:sand", 2)
  86. add_biome("jumble", 1, 71, 25, 50, ethereal.jumble,
  87. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  88. add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble,
  89. nil, "default:sand", 1, "default:sand", 2)
  90. tmp = "default:dirt_with_rainforest_litter"
  91. if not minetest.registered_nodes[tmp] then
  92. tmp = "ethereal:jungle_dirt"
  93. end
  94. add_biome("junglee", 1, 71, 30, 60, ethereal.junglee,
  95. nil, tmp, 1, "default:dirt", 3)
  96. add_biome("junglee_ocean", -192, 1, 30, 60, ethereal.junglee,
  97. nil, "default:sand", 1, "default:sand", 2)
  98. add_biome("grove", 3, 23, 45, 35, ethereal.grove,
  99. nil, "ethereal:grove_dirt", 1, "default:dirt", 3)
  100. add_biome("grove_ocean", -192, 2, 45, 35, ethereal.grove,
  101. nil, "default:sand", 1, "default:sand", 2)
  102. add_biome("mushroom", 3, 50, 45, 55, ethereal.mushroom,
  103. nil, "ethereal:mushroom_dirt", 1, "default:dirt", 3)
  104. add_biome("mushroom_ocean", -192, 2, 45, 55, ethereal.mushroom,
  105. nil, "default:sand", 1, "default:sand", 2)
  106. add_biome("sandstone", 3, 23, 50, 20, ethereal.sandstone,
  107. nil, "default:sandstone", 1, "default:sandstone", 1, "default:sandstone")
  108. add_biome("sandstone_ocean", -192, 2, 50, 20, ethereal.sandstone,
  109. nil, "default:sand", 1, "default:sand", 2)
  110. add_biome("quicksand", 1, 1, 50, 38, ethereal.quicksand,
  111. nil, "ethereal:quicksand2", 3, "default:gravel", 1)
  112. add_biome("plains", 3, 25, 65, 25, ethereal.plains,
  113. nil, "ethereal:dry_dirt", 1, "default:dirt", 3)
  114. add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains,
  115. nil, "default:sand", 1, "default:sand", 2)
  116. tmp = "default:dry_dirt_with_dry_grass"
  117. tmp2 = "default:dry_dirt"
  118. if not minetest.registered_nodes[tmp] then
  119. tmp = "default:dirt_with_dry_grass"
  120. tmp2 = "default:dirt"
  121. end
  122. add_biome("savanna", 3, 50, 55, 25, ethereal.savanna,
  123. nil, tmp, 1, tmp2, 3)
  124. add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna,
  125. nil, "default:sand", 1, "default:sand", 2)
  126. add_biome("fiery", 5, 20, 75, 10, ethereal.fiery,
  127. nil, "ethereal:fiery_dirt", 1, "default:dirt", 3)
  128. add_biome("fiery_ocean", -192, 4, 75, 10, ethereal.fiery,
  129. nil, "default:sand", 1, "default:sand", 2)
  130. add_biome("sandclay", 1, 11, 65, 2, ethereal.sandclay,
  131. nil, "default:sand", 3, "default:clay", 2)
  132. add_biome("swamp", 1, 7, 80, 90, ethereal.swamp,
  133. nil, "default:dirt_with_grass", 1, "default:dirt", 3)
  134. add_biome("swamp_ocean", -192, 1, 80, 90, ethereal.swamp,
  135. nil, "default:sand", 2, "default:clay", 2)
  136. if ethereal.glacier == 1 then
  137. minetest.register_biome({
  138. name = "glacier",
  139. node_dust = "default:snowblock",
  140. node_top = "default:snowblock",
  141. depth_top = 1,
  142. node_filler = "default:snowblock",
  143. depth_filler = 3,
  144. node_stone = "default:ice",
  145. node_water_top = "default:ice",
  146. depth_water_top = 10,
  147. node_river_water = "default:ice",
  148. node_riverbed = "default:gravel",
  149. depth_riverbed = 2,
  150. y_min = -8,
  151. y_max = 31000,
  152. heat_point = 0,
  153. humidity_point = 50,
  154. })
  155. minetest.register_biome({
  156. name = "glacier_ocean",
  157. node_dust = "default:snowblock",
  158. node_top = "default:sand",
  159. depth_top = 1,
  160. node_filler = "default:sand",
  161. depth_filler = 3,
  162. y_min = -112,
  163. y_max = -9,
  164. heat_point = 0,
  165. humidity_point = 50,
  166. })
  167. end
  168. if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then
  169. minetest.register_biome({
  170. name = "tundra_highland",
  171. node_dust = "default:snow",
  172. node_riverbed = "default:gravel",
  173. depth_riverbed = 2,
  174. y_max = 180,
  175. y_min = 47,
  176. heat_point = 0,
  177. humidity_point = 40,
  178. })
  179. minetest.register_biome({
  180. name = "tundra",
  181. node_top = "default:permafrost_with_stones",
  182. depth_top = 1,
  183. node_filler = "default:permafrost",
  184. depth_filler = 1,
  185. node_riverbed = "default:gravel",
  186. depth_riverbed = 2,
  187. vertical_blend = 4,
  188. y_max = 46,
  189. y_min = 2,
  190. heat_point = 0,
  191. humidity_point = 40,
  192. })
  193. minetest.register_biome({
  194. name = "tundra_beach",
  195. node_top = "default:gravel",
  196. depth_top = 1,
  197. node_filler = "default:gravel",
  198. depth_filler = 2,
  199. node_riverbed = "default:gravel",
  200. depth_riverbed = 2,
  201. vertical_blend = 1,
  202. y_max = 1,
  203. y_min = -3,
  204. heat_point = 0,
  205. humidity_point = 40,
  206. })
  207. minetest.register_biome({
  208. name = "tundra_ocean",
  209. node_top = "default:sand",
  210. depth_top = 1,
  211. node_filler = "default:sand",
  212. depth_filler = 3,
  213. node_riverbed = "default:gravel",
  214. depth_riverbed = 2,
  215. vertical_blend = 1,
  216. y_max = -4,
  217. y_min = -112,
  218. heat_point = 0,
  219. humidity_point = 40,
  220. })
  221. end