biomes.lua 9.0 KB

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