mapgen.lua 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192
  1. --
  2. -- Aliases for map generators
  3. --
  4. minetest.register_alias("mapgen_stone", "default:stone")
  5. minetest.register_alias("mapgen_dirt", "default:dirt")
  6. minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass")
  7. minetest.register_alias("mapgen_sand", "default:sand")
  8. minetest.register_alias("mapgen_water_source", "default:water_source")
  9. minetest.register_alias("mapgen_river_water_source", "default:river_water_source")
  10. minetest.register_alias("mapgen_lava_source", "default:lava_source")
  11. minetest.register_alias("mapgen_gravel", "default:gravel")
  12. minetest.register_alias("mapgen_desert_stone", "default:desert_stone")
  13. minetest.register_alias("mapgen_desert_sand", "default:desert_sand")
  14. minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow")
  15. minetest.register_alias("mapgen_snowblock", "default:snowblock")
  16. minetest.register_alias("mapgen_snow", "default:snow")
  17. minetest.register_alias("mapgen_ice", "default:ice")
  18. minetest.register_alias("mapgen_sandstone", "default:sandstone")
  19. -- Flora
  20. minetest.register_alias("mapgen_tree", "default:tree")
  21. minetest.register_alias("mapgen_leaves", "default:leaves")
  22. minetest.register_alias("mapgen_apple", "default:apple")
  23. minetest.register_alias("mapgen_jungletree", "default:jungletree")
  24. minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves")
  25. minetest.register_alias("mapgen_junglegrass", "default:junglegrass")
  26. minetest.register_alias("mapgen_pine_tree", "default:pine_tree")
  27. minetest.register_alias("mapgen_pine_needles", "default:pine_needles")
  28. -- Dungeons
  29. minetest.register_alias("mapgen_cobble", "default:cobble")
  30. minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
  31. minetest.register_alias("mapgen_mossycobble", "default:mossycobble")
  32. minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone")
  33. minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick")
  34. minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block")
  35. --
  36. -- Register ores
  37. --
  38. -- Mgv6
  39. function default.register_mgv6_ores()
  40. -- Blob ore
  41. -- These first to avoid other ores in blobs
  42. -- Clay
  43. -- This first to avoid clay in sand blobs
  44. minetest.register_ore({
  45. ore_type = "blob",
  46. ore = "default:clay",
  47. wherein = {"default:sand"},
  48. clust_scarcity = 16 * 16 * 16,
  49. clust_size = 5,
  50. y_max = 0,
  51. y_min = -15,
  52. noise_threshold = 0.0,
  53. noise_params = {
  54. offset = 0.5,
  55. scale = 0.2,
  56. spread = {x = 5, y = 5, z = 5},
  57. seed = -316,
  58. octaves = 1,
  59. persist = 0.0
  60. },
  61. })
  62. -- Sand
  63. minetest.register_ore({
  64. ore_type = "blob",
  65. ore = "default:sand",
  66. wherein = {"default:stone", "default:desert_stone"},
  67. clust_scarcity = 16 * 16 * 16,
  68. clust_size = 5,
  69. y_max = 0,
  70. y_min = -31,
  71. noise_threshold = 0.0,
  72. noise_params = {
  73. offset = 0.5,
  74. scale = 0.2,
  75. spread = {x = 5, y = 5, z = 5},
  76. seed = 2316,
  77. octaves = 1,
  78. persist = 0.0
  79. },
  80. })
  81. -- Dirt
  82. minetest.register_ore({
  83. ore_type = "blob",
  84. ore = "default:dirt",
  85. wherein = {"default:stone"},
  86. clust_scarcity = 16 * 16 * 16,
  87. clust_size = 5,
  88. y_max = 31000,
  89. y_min = -31,
  90. noise_threshold = 0.0,
  91. noise_params = {
  92. offset = 0.5,
  93. scale = 0.2,
  94. spread = {x = 5, y = 5, z = 5},
  95. seed = 17676,
  96. octaves = 1,
  97. persist = 0.0
  98. },
  99. })
  100. -- Gravel
  101. minetest.register_ore({
  102. ore_type = "blob",
  103. ore = "default:gravel",
  104. wherein = {"default:stone"},
  105. clust_scarcity = 16 * 16 * 16,
  106. clust_size = 5,
  107. y_max = 31000,
  108. y_min = -31000,
  109. noise_threshold = 0.0,
  110. noise_params = {
  111. offset = 0.5,
  112. scale = 0.2,
  113. spread = {x = 5, y = 5, z = 5},
  114. seed = 766,
  115. octaves = 1,
  116. persist = 0.0
  117. },
  118. })
  119. -- Scatter ores
  120. -- Coal
  121. minetest.register_ore({
  122. ore_type = "scatter",
  123. ore = "default:stone_with_coal",
  124. wherein = "default:stone",
  125. clust_scarcity = 8 * 8 * 8,
  126. clust_num_ores = 9,
  127. clust_size = 3,
  128. y_max = 31000,
  129. y_min = 1025,
  130. })
  131. minetest.register_ore({
  132. ore_type = "scatter",
  133. ore = "default:stone_with_coal",
  134. wherein = "default:stone",
  135. clust_scarcity = 8 * 8 * 8,
  136. clust_num_ores = 8,
  137. clust_size = 3,
  138. y_max = 64,
  139. y_min = -31000,
  140. })
  141. minetest.register_ore({
  142. ore_type = "scatter",
  143. ore = "default:stone_with_coal",
  144. wherein = "default:stone",
  145. clust_scarcity = 24 * 24 * 24,
  146. clust_num_ores = 27,
  147. clust_size = 6,
  148. y_max = 0,
  149. y_min = -31000,
  150. })
  151. -- Iron
  152. minetest.register_ore({
  153. ore_type = "scatter",
  154. ore = "default:stone_with_iron",
  155. wherein = "default:stone",
  156. clust_scarcity = 9 * 9 * 9,
  157. clust_num_ores = 12,
  158. clust_size = 3,
  159. y_max = 31000,
  160. y_min = 1025,
  161. })
  162. minetest.register_ore({
  163. ore_type = "scatter",
  164. ore = "default:stone_with_iron",
  165. wherein = "default:stone",
  166. clust_scarcity = 7 * 7 * 7,
  167. clust_num_ores = 5,
  168. clust_size = 3,
  169. y_max = 0,
  170. y_min = -31000,
  171. })
  172. minetest.register_ore({
  173. ore_type = "scatter",
  174. ore = "default:stone_with_iron",
  175. wherein = "default:stone",
  176. clust_scarcity = 24 * 24 * 24,
  177. clust_num_ores = 27,
  178. clust_size = 6,
  179. y_max = -64,
  180. y_min = -31000,
  181. })
  182. -- Copper
  183. minetest.register_ore({
  184. ore_type = "scatter",
  185. ore = "default:stone_with_copper",
  186. wherein = "default:stone",
  187. clust_scarcity = 9 * 9 * 9,
  188. clust_num_ores = 5,
  189. clust_size = 3,
  190. y_max = 31000,
  191. y_min = 1025,
  192. })
  193. minetest.register_ore({
  194. ore_type = "scatter",
  195. ore = "default:stone_with_copper",
  196. wherein = "default:stone",
  197. clust_scarcity = 12 * 12 * 12,
  198. clust_num_ores = 4,
  199. clust_size = 3,
  200. y_max = -16,
  201. y_min = -63,
  202. })
  203. minetest.register_ore({
  204. ore_type = "scatter",
  205. ore = "default:stone_with_copper",
  206. wherein = "default:stone",
  207. clust_scarcity = 9 * 9 * 9,
  208. clust_num_ores = 5,
  209. clust_size = 3,
  210. y_max = -64,
  211. y_min = -31000,
  212. })
  213. -- Tin
  214. minetest.register_ore({
  215. ore_type = "scatter",
  216. ore = "default:stone_with_tin",
  217. wherein = "default:stone",
  218. clust_scarcity = 10 * 10 * 10,
  219. clust_num_ores = 5,
  220. clust_size = 3,
  221. y_max = 31000,
  222. y_min = 1025,
  223. })
  224. minetest.register_ore({
  225. ore_type = "scatter",
  226. ore = "default:stone_with_tin",
  227. wherein = "default:stone",
  228. clust_scarcity = 13 * 13 * 13,
  229. clust_num_ores = 4,
  230. clust_size = 3,
  231. y_max = -32,
  232. y_min = -127,
  233. })
  234. minetest.register_ore({
  235. ore_type = "scatter",
  236. ore = "default:stone_with_tin",
  237. wherein = "default:stone",
  238. clust_scarcity = 10 * 10 * 10,
  239. clust_num_ores = 5,
  240. clust_size = 3,
  241. y_max = -128,
  242. y_min = -31000,
  243. })
  244. -- Gold
  245. minetest.register_ore({
  246. ore_type = "scatter",
  247. ore = "default:stone_with_gold",
  248. wherein = "default:stone",
  249. clust_scarcity = 13 * 13 * 13,
  250. clust_num_ores = 5,
  251. clust_size = 3,
  252. y_max = 31000,
  253. y_min = 1025,
  254. })
  255. minetest.register_ore({
  256. ore_type = "scatter",
  257. ore = "default:stone_with_gold",
  258. wherein = "default:stone",
  259. clust_scarcity = 15 * 15 * 15,
  260. clust_num_ores = 3,
  261. clust_size = 2,
  262. y_max = -64,
  263. y_min = -255,
  264. })
  265. minetest.register_ore({
  266. ore_type = "scatter",
  267. ore = "default:stone_with_gold",
  268. wherein = "default:stone",
  269. clust_scarcity = 13 * 13 * 13,
  270. clust_num_ores = 5,
  271. clust_size = 3,
  272. y_max = -256,
  273. y_min = -31000,
  274. })
  275. -- Mese crystal
  276. minetest.register_ore({
  277. ore_type = "scatter",
  278. ore = "default:stone_with_mese",
  279. wherein = "default:stone",
  280. clust_scarcity = 14 * 14 * 14,
  281. clust_num_ores = 5,
  282. clust_size = 3,
  283. y_max = 31000,
  284. y_min = 1025,
  285. })
  286. minetest.register_ore({
  287. ore_type = "scatter",
  288. ore = "default:stone_with_mese",
  289. wherein = "default:stone",
  290. clust_scarcity = 18 * 18 * 18,
  291. clust_num_ores = 3,
  292. clust_size = 2,
  293. y_max = -64,
  294. y_min = -255,
  295. })
  296. minetest.register_ore({
  297. ore_type = "scatter",
  298. ore = "default:stone_with_mese",
  299. wherein = "default:stone",
  300. clust_scarcity = 14 * 14 * 14,
  301. clust_num_ores = 5,
  302. clust_size = 3,
  303. y_max = -256,
  304. y_min = -31000,
  305. })
  306. -- Diamond
  307. minetest.register_ore({
  308. ore_type = "scatter",
  309. ore = "default:stone_with_diamond",
  310. wherein = "default:stone",
  311. clust_scarcity = 15 * 15 * 15,
  312. clust_num_ores = 4,
  313. clust_size = 3,
  314. y_max = 31000,
  315. y_min = 1025,
  316. })
  317. minetest.register_ore({
  318. ore_type = "scatter",
  319. ore = "default:stone_with_diamond",
  320. wherein = "default:stone",
  321. clust_scarcity = 17 * 17 * 17,
  322. clust_num_ores = 4,
  323. clust_size = 3,
  324. y_max = -128,
  325. y_min = -255,
  326. })
  327. minetest.register_ore({
  328. ore_type = "scatter",
  329. ore = "default:stone_with_diamond",
  330. wherein = "default:stone",
  331. clust_scarcity = 15 * 15 * 15,
  332. clust_num_ores = 4,
  333. clust_size = 3,
  334. y_max = -256,
  335. y_min = -31000,
  336. })
  337. -- Mese block
  338. minetest.register_ore({
  339. ore_type = "scatter",
  340. ore = "default:mese",
  341. wherein = "default:stone",
  342. clust_scarcity = 36 * 36 * 36,
  343. clust_num_ores = 3,
  344. clust_size = 2,
  345. y_max = 31000,
  346. y_min = 1025,
  347. })
  348. minetest.register_ore({
  349. ore_type = "scatter",
  350. ore = "default:mese",
  351. wherein = "default:stone",
  352. clust_scarcity = 36 * 36 * 36,
  353. clust_num_ores = 3,
  354. clust_size = 2,
  355. y_max = -1024,
  356. y_min = -31000,
  357. })
  358. end
  359. -- All mapgens except mgv6
  360. function default.register_ores()
  361. -- Stratum ores.
  362. -- These obviously first.
  363. -- Silver sandstone
  364. minetest.register_ore({
  365. ore_type = "stratum",
  366. ore = "default:silver_sandstone",
  367. wherein = {"default:stone"},
  368. clust_scarcity = 1,
  369. y_max = 46,
  370. y_min = 10,
  371. noise_params = {
  372. offset = 28,
  373. scale = 16,
  374. spread = {x = 128, y = 128, z = 128},
  375. seed = 90122,
  376. octaves = 1,
  377. },
  378. stratum_thickness = 4,
  379. biomes = {"cold_desert"},
  380. })
  381. minetest.register_ore({
  382. ore_type = "stratum",
  383. ore = "default:silver_sandstone",
  384. wherein = {"default:stone"},
  385. clust_scarcity = 1,
  386. y_max = 42,
  387. y_min = 6,
  388. noise_params = {
  389. offset = 24,
  390. scale = 16,
  391. spread = {x = 128, y = 128, z = 128},
  392. seed = 90122,
  393. octaves = 1,
  394. },
  395. stratum_thickness = 2,
  396. biomes = {"cold_desert"},
  397. })
  398. -- Desert sandstone
  399. minetest.register_ore({
  400. ore_type = "stratum",
  401. ore = "default:desert_sandstone",
  402. wherein = {"default:desert_stone"},
  403. clust_scarcity = 1,
  404. y_max = 46,
  405. y_min = 10,
  406. noise_params = {
  407. offset = 28,
  408. scale = 16,
  409. spread = {x = 128, y = 128, z = 128},
  410. seed = 90122,
  411. octaves = 1,
  412. },
  413. stratum_thickness = 4,
  414. biomes = {"desert"},
  415. })
  416. minetest.register_ore({
  417. ore_type = "stratum",
  418. ore = "default:desert_sandstone",
  419. wherein = {"default:desert_stone"},
  420. clust_scarcity = 1,
  421. y_max = 42,
  422. y_min = 6,
  423. noise_params = {
  424. offset = 24,
  425. scale = 16,
  426. spread = {x = 128, y = 128, z = 128},
  427. seed = 90122,
  428. octaves = 1,
  429. },
  430. stratum_thickness = 2,
  431. biomes = {"desert"},
  432. })
  433. -- Sandstone
  434. minetest.register_ore({
  435. ore_type = "stratum",
  436. ore = "default:sandstone",
  437. wherein = {"default:desert_stone"},
  438. clust_scarcity = 1,
  439. y_max = 39,
  440. y_min = 3,
  441. noise_params = {
  442. offset = 21,
  443. scale = 16,
  444. spread = {x = 128, y = 128, z = 128},
  445. seed = 90122,
  446. octaves = 1,
  447. },
  448. stratum_thickness = 2,
  449. biomes = {"desert"},
  450. })
  451. -- Blob ore.
  452. -- These before scatter ores to avoid other ores in blobs.
  453. -- Clay
  454. minetest.register_ore({
  455. ore_type = "blob",
  456. ore = "default:clay",
  457. wherein = {"default:sand"},
  458. clust_scarcity = 16 * 16 * 16,
  459. clust_size = 5,
  460. y_max = 0,
  461. y_min = -15,
  462. noise_threshold = 0.0,
  463. noise_params = {
  464. offset = 0.5,
  465. scale = 0.2,
  466. spread = {x = 5, y = 5, z = 5},
  467. seed = -316,
  468. octaves = 1,
  469. persist = 0.0
  470. },
  471. })
  472. -- Silver sand
  473. minetest.register_ore({
  474. ore_type = "blob",
  475. ore = "default:silver_sand",
  476. wherein = {"default:stone"},
  477. clust_scarcity = 16 * 16 * 16,
  478. clust_size = 5,
  479. y_max = 31000,
  480. y_min = -31000,
  481. noise_threshold = 0.0,
  482. noise_params = {
  483. offset = 0.5,
  484. scale = 0.2,
  485. spread = {x = 5, y = 5, z = 5},
  486. seed = 2316,
  487. octaves = 1,
  488. persist = 0.0
  489. },
  490. biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean",
  491. "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean",
  492. "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest",
  493. "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
  494. "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
  495. "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
  496. "rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
  497. "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
  498. })
  499. -- Dirt
  500. minetest.register_ore({
  501. ore_type = "blob",
  502. ore = "default:dirt",
  503. wherein = {"default:stone"},
  504. clust_scarcity = 16 * 16 * 16,
  505. clust_size = 5,
  506. y_max = 31000,
  507. y_min = -31,
  508. noise_threshold = 0.0,
  509. noise_params = {
  510. offset = 0.5,
  511. scale = 0.2,
  512. spread = {x = 5, y = 5, z = 5},
  513. seed = 17676,
  514. octaves = 1,
  515. persist = 0.0
  516. },
  517. biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
  518. "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore",
  519. "rainforest", "rainforest_swamp", "floatland_coniferous_forest"}
  520. })
  521. -- Gravel
  522. minetest.register_ore({
  523. ore_type = "blob",
  524. ore = "default:gravel",
  525. wherein = {"default:stone"},
  526. clust_scarcity = 16 * 16 * 16,
  527. clust_size = 5,
  528. y_max = 31000,
  529. y_min = -31000,
  530. noise_threshold = 0.0,
  531. noise_params = {
  532. offset = 0.5,
  533. scale = 0.2,
  534. spread = {x = 5, y = 5, z = 5},
  535. seed = 766,
  536. octaves = 1,
  537. persist = 0.0
  538. },
  539. biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean",
  540. "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean",
  541. "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest",
  542. "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
  543. "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
  544. "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
  545. "rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
  546. "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
  547. })
  548. -- Scatter ores
  549. -- Coal
  550. minetest.register_ore({
  551. ore_type = "scatter",
  552. ore = "default:stone_with_coal",
  553. wherein = "default:stone",
  554. clust_scarcity = 8 * 8 * 8,
  555. clust_num_ores = 9,
  556. clust_size = 3,
  557. y_max = 31000,
  558. y_min = 1025,
  559. })
  560. minetest.register_ore({
  561. ore_type = "scatter",
  562. ore = "default:stone_with_coal",
  563. wherein = "default:stone",
  564. clust_scarcity = 8 * 8 * 8,
  565. clust_num_ores = 8,
  566. clust_size = 3,
  567. y_max = 64,
  568. y_min = -127,
  569. })
  570. minetest.register_ore({
  571. ore_type = "scatter",
  572. ore = "default:stone_with_coal",
  573. wherein = "default:stone",
  574. clust_scarcity = 12 * 12 * 12,
  575. clust_num_ores = 30,
  576. clust_size = 5,
  577. y_max = -128,
  578. y_min = -31000,
  579. })
  580. -- Tin
  581. minetest.register_ore({
  582. ore_type = "scatter",
  583. ore = "default:stone_with_tin",
  584. wherein = "default:stone",
  585. clust_scarcity = 10 * 10 * 10,
  586. clust_num_ores = 5,
  587. clust_size = 3,
  588. y_max = 31000,
  589. y_min = 1025,
  590. })
  591. minetest.register_ore({
  592. ore_type = "scatter",
  593. ore = "default:stone_with_tin",
  594. wherein = "default:stone",
  595. clust_scarcity = 13 * 13 * 13,
  596. clust_num_ores = 4,
  597. clust_size = 3,
  598. y_max = -64,
  599. y_min = -127,
  600. })
  601. minetest.register_ore({
  602. ore_type = "scatter",
  603. ore = "default:stone_with_tin",
  604. wherein = "default:stone",
  605. clust_scarcity = 10 * 10 * 10,
  606. clust_num_ores = 5,
  607. clust_size = 3,
  608. y_max = -128,
  609. y_min = -31000,
  610. })
  611. -- Copper
  612. minetest.register_ore({
  613. ore_type = "scatter",
  614. ore = "default:stone_with_copper",
  615. wherein = "default:stone",
  616. clust_scarcity = 9 * 9 * 9,
  617. clust_num_ores = 5,
  618. clust_size = 3,
  619. y_max = 31000,
  620. y_min = 1025,
  621. })
  622. minetest.register_ore({
  623. ore_type = "scatter",
  624. ore = "default:stone_with_copper",
  625. wherein = "default:stone",
  626. clust_scarcity = 12 * 12 * 12,
  627. clust_num_ores = 4,
  628. clust_size = 3,
  629. y_max = -64,
  630. y_min = -127,
  631. })
  632. minetest.register_ore({
  633. ore_type = "scatter",
  634. ore = "default:stone_with_copper",
  635. wherein = "default:stone",
  636. clust_scarcity = 9 * 9 * 9,
  637. clust_num_ores = 5,
  638. clust_size = 3,
  639. y_max = -128,
  640. y_min = -31000,
  641. })
  642. -- Iron
  643. minetest.register_ore({
  644. ore_type = "scatter",
  645. ore = "default:stone_with_iron",
  646. wherein = "default:stone",
  647. clust_scarcity = 9 * 9 * 9,
  648. clust_num_ores = 12,
  649. clust_size = 3,
  650. y_max = 31000,
  651. y_min = 1025,
  652. })
  653. minetest.register_ore({
  654. ore_type = "scatter",
  655. ore = "default:stone_with_iron",
  656. wherein = "default:stone",
  657. clust_scarcity = 7 * 7 * 7,
  658. clust_num_ores = 5,
  659. clust_size = 3,
  660. y_max = -128,
  661. y_min = -255,
  662. })
  663. minetest.register_ore({
  664. ore_type = "scatter",
  665. ore = "default:stone_with_iron",
  666. wherein = "default:stone",
  667. clust_scarcity = 12 * 12 * 12,
  668. clust_num_ores = 29,
  669. clust_size = 5,
  670. y_max = -256,
  671. y_min = -31000,
  672. })
  673. -- Gold
  674. minetest.register_ore({
  675. ore_type = "scatter",
  676. ore = "default:stone_with_gold",
  677. wherein = "default:stone",
  678. clust_scarcity = 13 * 13 * 13,
  679. clust_num_ores = 5,
  680. clust_size = 3,
  681. y_max = 31000,
  682. y_min = 1025,
  683. })
  684. minetest.register_ore({
  685. ore_type = "scatter",
  686. ore = "default:stone_with_gold",
  687. wherein = "default:stone",
  688. clust_scarcity = 15 * 15 * 15,
  689. clust_num_ores = 3,
  690. clust_size = 2,
  691. y_max = -256,
  692. y_min = -511,
  693. })
  694. minetest.register_ore({
  695. ore_type = "scatter",
  696. ore = "default:stone_with_gold",
  697. wherein = "default:stone",
  698. clust_scarcity = 13 * 13 * 13,
  699. clust_num_ores = 5,
  700. clust_size = 3,
  701. y_max = -512,
  702. y_min = -31000,
  703. })
  704. -- Mese crystal
  705. minetest.register_ore({
  706. ore_type = "scatter",
  707. ore = "default:stone_with_mese",
  708. wherein = "default:stone",
  709. clust_scarcity = 14 * 14 * 14,
  710. clust_num_ores = 5,
  711. clust_size = 3,
  712. y_max = 31000,
  713. y_min = 1025,
  714. })
  715. minetest.register_ore({
  716. ore_type = "scatter",
  717. ore = "default:stone_with_mese",
  718. wherein = "default:stone",
  719. clust_scarcity = 18 * 18 * 18,
  720. clust_num_ores = 3,
  721. clust_size = 2,
  722. y_max = -512,
  723. y_min = -1023,
  724. })
  725. minetest.register_ore({
  726. ore_type = "scatter",
  727. ore = "default:stone_with_mese",
  728. wherein = "default:stone",
  729. clust_scarcity = 14 * 14 * 14,
  730. clust_num_ores = 5,
  731. clust_size = 3,
  732. y_max = -1024,
  733. y_min = -31000,
  734. })
  735. -- Diamond
  736. minetest.register_ore({
  737. ore_type = "scatter",
  738. ore = "default:stone_with_diamond",
  739. wherein = "default:stone",
  740. clust_scarcity = 15 * 15 * 15,
  741. clust_num_ores = 4,
  742. clust_size = 3,
  743. y_max = 31000,
  744. y_min = 1025,
  745. })
  746. minetest.register_ore({
  747. ore_type = "scatter",
  748. ore = "default:stone_with_diamond",
  749. wherein = "default:stone",
  750. clust_scarcity = 17 * 17 * 17,
  751. clust_num_ores = 4,
  752. clust_size = 3,
  753. y_max = -1024,
  754. y_min = -2047,
  755. })
  756. minetest.register_ore({
  757. ore_type = "scatter",
  758. ore = "default:stone_with_diamond",
  759. wherein = "default:stone",
  760. clust_scarcity = 15 * 15 * 15,
  761. clust_num_ores = 4,
  762. clust_size = 3,
  763. y_max = -2048,
  764. y_min = -31000,
  765. })
  766. -- Mese block
  767. minetest.register_ore({
  768. ore_type = "scatter",
  769. ore = "default:mese",
  770. wherein = "default:stone",
  771. clust_scarcity = 36 * 36 * 36,
  772. clust_num_ores = 3,
  773. clust_size = 2,
  774. y_max = 31000,
  775. y_min = 1025,
  776. })
  777. minetest.register_ore({
  778. ore_type = "scatter",
  779. ore = "default:mese",
  780. wherein = "default:stone",
  781. clust_scarcity = 36 * 36 * 36,
  782. clust_num_ores = 3,
  783. clust_size = 2,
  784. y_max = -2048,
  785. y_min = -4095,
  786. })
  787. minetest.register_ore({
  788. ore_type = "scatter",
  789. ore = "default:mese",
  790. wherein = "default:stone",
  791. clust_scarcity = 28 * 28 * 28,
  792. clust_num_ores = 5,
  793. clust_size = 3,
  794. y_max = -4096,
  795. y_min = -31000,
  796. })
  797. end
  798. --
  799. -- Register biomes
  800. --
  801. -- All mapgens except mgv6
  802. function default.register_biomes(upper_limit)
  803. -- Icesheet
  804. minetest.register_biome({
  805. name = "icesheet",
  806. node_dust = "default:snowblock",
  807. node_top = "default:snowblock",
  808. depth_top = 1,
  809. node_filler = "default:snowblock",
  810. depth_filler = 3,
  811. node_stone = "default:cave_ice",
  812. node_water_top = "default:ice",
  813. depth_water_top = 10,
  814. node_river_water = "default:ice",
  815. node_riverbed = "default:gravel",
  816. depth_riverbed = 2,
  817. y_max = upper_limit,
  818. y_min = -8,
  819. heat_point = 0,
  820. humidity_point = 73,
  821. })
  822. minetest.register_biome({
  823. name = "icesheet_ocean",
  824. node_dust = "default:snowblock",
  825. node_top = "default:sand",
  826. depth_top = 1,
  827. node_filler = "default:sand",
  828. depth_filler = 3,
  829. node_water_top = "default:ice",
  830. depth_water_top = 10,
  831. y_max = -9,
  832. y_min = -112,
  833. heat_point = 0,
  834. humidity_point = 73,
  835. })
  836. -- Tundra
  837. minetest.register_biome({
  838. name = "tundra_highland",
  839. node_dust = "default:snow",
  840. node_riverbed = "default:gravel",
  841. depth_riverbed = 2,
  842. y_max = upper_limit,
  843. y_min = 49,
  844. heat_point = 0,
  845. humidity_point = 40,
  846. })
  847. minetest.register_biome({
  848. name = "tundra",
  849. node_top = "default:permafrost_with_stones",
  850. depth_top = 1,
  851. node_filler = "default:permafrost",
  852. depth_filler = 1,
  853. node_riverbed = "default:gravel",
  854. depth_riverbed = 2,
  855. y_max = 48,
  856. y_min = 2,
  857. heat_point = 0,
  858. humidity_point = 40,
  859. })
  860. minetest.register_biome({
  861. name = "tundra_beach",
  862. node_top = "default:gravel",
  863. depth_top = 1,
  864. node_filler = "default:gravel",
  865. depth_filler = 2,
  866. node_riverbed = "default:gravel",
  867. depth_riverbed = 2,
  868. y_max = 1,
  869. y_min = -3,
  870. heat_point = 0,
  871. humidity_point = 40,
  872. })
  873. minetest.register_biome({
  874. name = "tundra_ocean",
  875. node_top = "default:sand",
  876. depth_top = 1,
  877. node_filler = "default:sand",
  878. depth_filler = 3,
  879. node_riverbed = "default:gravel",
  880. depth_riverbed = 2,
  881. y_max = -4,
  882. y_min = -112,
  883. heat_point = 0,
  884. humidity_point = 40,
  885. })
  886. -- Taiga
  887. minetest.register_biome({
  888. name = "taiga",
  889. node_dust = "default:snow",
  890. node_top = "default:dirt_with_snow",
  891. depth_top = 1,
  892. node_filler = "default:dirt",
  893. depth_filler = 3,
  894. node_riverbed = "default:sand",
  895. depth_riverbed = 2,
  896. y_max = upper_limit,
  897. y_min = 2,
  898. heat_point = 25,
  899. humidity_point = 70,
  900. })
  901. minetest.register_biome({
  902. name = "taiga_ocean",
  903. node_top = "default:sand",
  904. depth_top = 1,
  905. node_filler = "default:sand",
  906. depth_filler = 3,
  907. node_riverbed = "default:sand",
  908. depth_riverbed = 2,
  909. y_max = 1,
  910. y_min = -112,
  911. heat_point = 25,
  912. humidity_point = 70,
  913. })
  914. -- Snowy grassland
  915. minetest.register_biome({
  916. name = "snowy_grassland",
  917. node_dust = "default:snow",
  918. node_top = "default:dirt_with_snow",
  919. depth_top = 1,
  920. node_filler = "default:dirt",
  921. depth_filler = 1,
  922. node_riverbed = "default:sand",
  923. depth_riverbed = 2,
  924. y_max = upper_limit,
  925. y_min = 5,
  926. heat_point = 20,
  927. humidity_point = 35,
  928. })
  929. minetest.register_biome({
  930. name = "snowy_grassland_ocean",
  931. node_top = "default:sand",
  932. depth_top = 1,
  933. node_filler = "default:sand",
  934. depth_filler = 3,
  935. node_riverbed = "default:sand",
  936. depth_riverbed = 2,
  937. y_max = 4,
  938. y_min = -112,
  939. heat_point = 20,
  940. humidity_point = 35,
  941. })
  942. -- Grassland
  943. minetest.register_biome({
  944. name = "grassland",
  945. node_top = "default:dirt_with_grass",
  946. depth_top = 1,
  947. node_filler = "default:dirt",
  948. depth_filler = 1,
  949. node_riverbed = "default:sand",
  950. depth_riverbed = 2,
  951. y_max = upper_limit,
  952. y_min = 6,
  953. heat_point = 50,
  954. humidity_point = 35,
  955. })
  956. minetest.register_biome({
  957. name = "grassland_dunes",
  958. node_top = "default:sand",
  959. depth_top = 1,
  960. node_filler = "default:sand",
  961. depth_filler = 2,
  962. node_riverbed = "default:sand",
  963. depth_riverbed = 2,
  964. y_max = 5,
  965. y_min = 4,
  966. heat_point = 50,
  967. humidity_point = 35,
  968. })
  969. minetest.register_biome({
  970. name = "grassland_ocean",
  971. node_top = "default:sand",
  972. depth_top = 1,
  973. node_filler = "default:sand",
  974. depth_filler = 3,
  975. node_riverbed = "default:sand",
  976. depth_riverbed = 2,
  977. y_max = 3,
  978. y_min = -112,
  979. heat_point = 50,
  980. humidity_point = 35,
  981. })
  982. -- Coniferous forest
  983. minetest.register_biome({
  984. name = "coniferous_forest",
  985. node_top = "default:dirt_with_coniferous_litter",
  986. depth_top = 1,
  987. node_filler = "default:dirt",
  988. depth_filler = 3,
  989. node_riverbed = "default:sand",
  990. depth_riverbed = 2,
  991. y_max = upper_limit,
  992. y_min = 6,
  993. heat_point = 45,
  994. humidity_point = 70,
  995. })
  996. minetest.register_biome({
  997. name = "coniferous_forest_dunes",
  998. node_top = "default:sand",
  999. depth_top = 1,
  1000. node_filler = "default:sand",
  1001. depth_filler = 3,
  1002. node_riverbed = "default:sand",
  1003. depth_riverbed = 2,
  1004. y_max = 5,
  1005. y_min = 4,
  1006. heat_point = 45,
  1007. humidity_point = 70,
  1008. })
  1009. minetest.register_biome({
  1010. name = "coniferous_forest_ocean",
  1011. node_top = "default:sand",
  1012. depth_top = 1,
  1013. node_filler = "default:sand",
  1014. depth_filler = 3,
  1015. node_riverbed = "default:sand",
  1016. depth_riverbed = 2,
  1017. y_max = 3,
  1018. y_min = -112,
  1019. heat_point = 45,
  1020. humidity_point = 70,
  1021. })
  1022. -- Deciduous forest
  1023. minetest.register_biome({
  1024. name = "deciduous_forest",
  1025. node_top = "default:dirt_with_grass",
  1026. depth_top = 1,
  1027. node_filler = "default:dirt",
  1028. depth_filler = 3,
  1029. node_riverbed = "default:sand",
  1030. depth_riverbed = 2,
  1031. y_max = upper_limit,
  1032. y_min = 1,
  1033. heat_point = 60,
  1034. humidity_point = 68,
  1035. })
  1036. minetest.register_biome({
  1037. name = "deciduous_forest_shore",
  1038. node_top = "default:dirt",
  1039. depth_top = 1,
  1040. node_filler = "default:dirt",
  1041. depth_filler = 3,
  1042. node_riverbed = "default:sand",
  1043. depth_riverbed = 2,
  1044. y_max = 0,
  1045. y_min = -1,
  1046. heat_point = 60,
  1047. humidity_point = 68,
  1048. })
  1049. minetest.register_biome({
  1050. name = "deciduous_forest_ocean",
  1051. node_top = "default:sand",
  1052. depth_top = 1,
  1053. node_filler = "default:sand",
  1054. depth_filler = 3,
  1055. node_riverbed = "default:sand",
  1056. depth_riverbed = 2,
  1057. y_max = -2,
  1058. y_min = -112,
  1059. heat_point = 60,
  1060. humidity_point = 68,
  1061. })
  1062. -- Desert
  1063. minetest.register_biome({
  1064. name = "desert",
  1065. node_top = "default:desert_sand",
  1066. depth_top = 1,
  1067. node_filler = "default:desert_sand",
  1068. depth_filler = 1,
  1069. node_stone = "default:desert_stone",
  1070. node_riverbed = "default:sand",
  1071. depth_riverbed = 2,
  1072. y_max = upper_limit,
  1073. y_min = 5,
  1074. heat_point = 92,
  1075. humidity_point = 16,
  1076. })
  1077. minetest.register_biome({
  1078. name = "desert_ocean",
  1079. node_top = "default:sand",
  1080. depth_top = 1,
  1081. node_filler = "default:sand",
  1082. depth_filler = 3,
  1083. node_stone = "default:desert_stone",
  1084. node_riverbed = "default:sand",
  1085. depth_riverbed = 2,
  1086. y_max = 4,
  1087. y_min = -112,
  1088. heat_point = 92,
  1089. humidity_point = 16,
  1090. })
  1091. -- Sandstone desert
  1092. minetest.register_biome({
  1093. name = "sandstone_desert",
  1094. node_top = "default:sand",
  1095. depth_top = 1,
  1096. node_filler = "default:sand",
  1097. depth_filler = 1,
  1098. node_stone = "default:sandstone",
  1099. node_riverbed = "default:sand",
  1100. depth_riverbed = 2,
  1101. y_max = upper_limit,
  1102. y_min = 5,
  1103. heat_point = 60,
  1104. humidity_point = 0,
  1105. })
  1106. minetest.register_biome({
  1107. name = "sandstone_desert_ocean",
  1108. node_top = "default:sand",
  1109. depth_top = 1,
  1110. node_filler = "default:sand",
  1111. depth_filler = 3,
  1112. node_stone = "default:sandstone",
  1113. node_riverbed = "default:sand",
  1114. depth_riverbed = 2,
  1115. y_max = 4,
  1116. y_min = -112,
  1117. heat_point = 60,
  1118. humidity_point = 0,
  1119. })
  1120. -- Cold desert
  1121. minetest.register_biome({
  1122. name = "cold_desert",
  1123. node_top = "default:silver_sand",
  1124. depth_top = 1,
  1125. node_filler = "default:silver_sand",
  1126. depth_filler = 1,
  1127. node_riverbed = "default:sand",
  1128. depth_riverbed = 2,
  1129. y_max = upper_limit,
  1130. y_min = 5,
  1131. heat_point = 40,
  1132. humidity_point = 0,
  1133. })
  1134. minetest.register_biome({
  1135. name = "cold_desert_ocean",
  1136. node_top = "default:sand",
  1137. depth_top = 1,
  1138. node_filler = "default:sand",
  1139. depth_filler = 3,
  1140. node_riverbed = "default:sand",
  1141. depth_riverbed = 2,
  1142. y_max = 4,
  1143. y_min = -112,
  1144. heat_point = 40,
  1145. humidity_point = 0,
  1146. })
  1147. -- Savanna
  1148. minetest.register_biome({
  1149. name = "savanna",
  1150. node_top = "default:dirt_with_dry_grass",
  1151. depth_top = 1,
  1152. node_filler = "default:dirt",
  1153. depth_filler = 1,
  1154. node_riverbed = "default:sand",
  1155. depth_riverbed = 2,
  1156. y_max = upper_limit,
  1157. y_min = 1,
  1158. heat_point = 89,
  1159. humidity_point = 42,
  1160. })
  1161. minetest.register_biome({
  1162. name = "savanna_shore",
  1163. node_top = "default:dirt",
  1164. depth_top = 1,
  1165. node_filler = "default:dirt",
  1166. depth_filler = 3,
  1167. node_riverbed = "default:sand",
  1168. depth_riverbed = 2,
  1169. y_max = 0,
  1170. y_min = -1,
  1171. heat_point = 89,
  1172. humidity_point = 42,
  1173. })
  1174. minetest.register_biome({
  1175. name = "savanna_ocean",
  1176. node_top = "default:sand",
  1177. depth_top = 1,
  1178. node_filler = "default:sand",
  1179. depth_filler = 3,
  1180. node_riverbed = "default:sand",
  1181. depth_riverbed = 2,
  1182. y_max = -2,
  1183. y_min = -112,
  1184. heat_point = 89,
  1185. humidity_point = 42,
  1186. })
  1187. -- Rainforest
  1188. minetest.register_biome({
  1189. name = "rainforest",
  1190. node_top = "default:dirt_with_rainforest_litter",
  1191. depth_top = 1,
  1192. node_filler = "default:dirt",
  1193. depth_filler = 3,
  1194. node_riverbed = "default:sand",
  1195. depth_riverbed = 2,
  1196. y_max = upper_limit,
  1197. y_min = 1,
  1198. heat_point = 86,
  1199. humidity_point = 65,
  1200. })
  1201. minetest.register_biome({
  1202. name = "rainforest_swamp",
  1203. node_top = "default:dirt",
  1204. depth_top = 1,
  1205. node_filler = "default:dirt",
  1206. depth_filler = 3,
  1207. node_riverbed = "default:sand",
  1208. depth_riverbed = 2,
  1209. y_max = 0,
  1210. y_min = -1,
  1211. heat_point = 86,
  1212. humidity_point = 65,
  1213. })
  1214. minetest.register_biome({
  1215. name = "rainforest_ocean",
  1216. node_top = "default:sand",
  1217. depth_top = 1,
  1218. node_filler = "default:sand",
  1219. depth_filler = 3,
  1220. node_riverbed = "default:sand",
  1221. depth_riverbed = 2,
  1222. y_max = -2,
  1223. y_min = -112,
  1224. heat_point = 86,
  1225. humidity_point = 65,
  1226. })
  1227. -- Underground
  1228. minetest.register_biome({
  1229. name = "underground",
  1230. y_max = -113,
  1231. y_min = -31000,
  1232. heat_point = 50,
  1233. humidity_point = 50,
  1234. })
  1235. end
  1236. -- Biomes for floatlands
  1237. -- TODO Temporary simple biomes to be replaced by special floatland biomes later.
  1238. function default.register_floatland_biomes(floatland_level, shadow_limit)
  1239. minetest.register_biome({
  1240. name = "floatland_grassland",
  1241. node_top = "default:dirt_with_grass",
  1242. depth_top = 1,
  1243. node_filler = "default:dirt",
  1244. depth_filler = 1,
  1245. y_max = 31000,
  1246. y_min = floatland_level + 2,
  1247. heat_point = 50,
  1248. humidity_point = 25,
  1249. })
  1250. minetest.register_biome({
  1251. name = "floatland_coniferous_forest",
  1252. node_top = "default:dirt_with_coniferous_litter",
  1253. depth_top = 1,
  1254. node_filler = "default:dirt",
  1255. depth_filler = 3,
  1256. y_max = 31000,
  1257. y_min = floatland_level + 2,
  1258. heat_point = 50,
  1259. humidity_point = 75,
  1260. })
  1261. minetest.register_biome({
  1262. name = "floatland_ocean",
  1263. node_top = "default:sand",
  1264. depth_top = 1,
  1265. node_filler = "default:sand",
  1266. depth_filler = 3,
  1267. y_max = floatland_level + 1,
  1268. y_min = shadow_limit,
  1269. heat_point = 50,
  1270. humidity_point = 50,
  1271. })
  1272. end
  1273. --
  1274. -- Register decorations
  1275. --
  1276. -- Mgv6
  1277. function default.register_mgv6_decorations()
  1278. -- Papyrus
  1279. minetest.register_decoration({
  1280. name = "default:papyrus",
  1281. deco_type = "simple",
  1282. place_on = {"default:dirt_with_grass"},
  1283. sidelen = 16,
  1284. noise_params = {
  1285. offset = -0.3,
  1286. scale = 0.7,
  1287. spread = {x = 100, y = 100, z = 100},
  1288. seed = 354,
  1289. octaves = 3,
  1290. persist = 0.7
  1291. },
  1292. y_max = 1,
  1293. y_min = 1,
  1294. decoration = "default:papyrus",
  1295. height = 2,
  1296. height_max = 4,
  1297. spawn_by = "default:water_source",
  1298. num_spawn_by = 1,
  1299. })
  1300. -- Cacti
  1301. minetest.register_decoration({
  1302. name = "default:cactus",
  1303. deco_type = "simple",
  1304. place_on = {"default:desert_sand"},
  1305. sidelen = 16,
  1306. noise_params = {
  1307. offset = -0.012,
  1308. scale = 0.024,
  1309. spread = {x = 100, y = 100, z = 100},
  1310. seed = 230,
  1311. octaves = 3,
  1312. persist = 0.6
  1313. },
  1314. y_max = 30,
  1315. y_min = 1,
  1316. decoration = "default:cactus",
  1317. height = 3,
  1318. height_max = 4,
  1319. })
  1320. -- Long grasses
  1321. for length = 1, 5 do
  1322. minetest.register_decoration({
  1323. name = "default:grass_"..length,
  1324. deco_type = "simple",
  1325. place_on = {"default:dirt_with_grass"},
  1326. sidelen = 16,
  1327. noise_params = {
  1328. offset = 0,
  1329. scale = 0.007,
  1330. spread = {x = 100, y = 100, z = 100},
  1331. seed = 329,
  1332. octaves = 3,
  1333. persist = 0.6
  1334. },
  1335. y_max = 30,
  1336. y_min = 1,
  1337. decoration = "default:grass_"..length,
  1338. })
  1339. end
  1340. -- Dry shrubs
  1341. minetest.register_decoration({
  1342. name = "default:dry_shrub",
  1343. deco_type = "simple",
  1344. place_on = {"default:desert_sand", "default:dirt_with_snow"},
  1345. sidelen = 16,
  1346. noise_params = {
  1347. offset = 0,
  1348. scale = 0.035,
  1349. spread = {x = 100, y = 100, z = 100},
  1350. seed = 329,
  1351. octaves = 3,
  1352. persist = 0.6
  1353. },
  1354. y_max = 30,
  1355. y_min = 1,
  1356. decoration = "default:dry_shrub",
  1357. param2 = 4,
  1358. })
  1359. end
  1360. -- All mapgens except mgv6
  1361. local function register_grass_decoration(offset, scale, length)
  1362. minetest.register_decoration({
  1363. name = "default:grass_" .. length,
  1364. deco_type = "simple",
  1365. place_on = {"default:dirt_with_grass"},
  1366. sidelen = 16,
  1367. noise_params = {
  1368. offset = offset,
  1369. scale = scale,
  1370. spread = {x = 200, y = 200, z = 200},
  1371. seed = 329,
  1372. octaves = 3,
  1373. persist = 0.6
  1374. },
  1375. biomes = {"grassland", "deciduous_forest", "floatland_grassland"},
  1376. y_max = 31000,
  1377. y_min = 1,
  1378. decoration = "default:grass_" .. length,
  1379. })
  1380. end
  1381. local function register_dry_grass_decoration(offset, scale, length)
  1382. minetest.register_decoration({
  1383. name = "default:dry_grass_" .. length,
  1384. deco_type = "simple",
  1385. place_on = {"default:dirt_with_dry_grass"},
  1386. sidelen = 16,
  1387. noise_params = {
  1388. offset = offset,
  1389. scale = scale,
  1390. spread = {x = 200, y = 200, z = 200},
  1391. seed = 329,
  1392. octaves = 3,
  1393. persist = 0.6
  1394. },
  1395. biomes = {"savanna"},
  1396. y_max = 31000,
  1397. y_min = 1,
  1398. decoration = "default:dry_grass_" .. length,
  1399. })
  1400. end
  1401. local function register_fern_decoration(seed, length)
  1402. minetest.register_decoration({
  1403. name = "default:fern_" .. length,
  1404. deco_type = "simple",
  1405. place_on = {"default:dirt_with_coniferous_litter"},
  1406. sidelen = 16,
  1407. noise_params = {
  1408. offset = 0,
  1409. scale = 0.2,
  1410. spread = {x = 100, y = 100, z = 100},
  1411. seed = seed,
  1412. octaves = 3,
  1413. persist = 0.7
  1414. },
  1415. biomes = {"coniferous_forest", "floatland_coniferous_forest"},
  1416. y_max = 31000,
  1417. y_min = 6,
  1418. decoration = "default:fern_" .. length,
  1419. })
  1420. end
  1421. function default.register_decorations()
  1422. -- Apple tree and log
  1423. minetest.register_decoration({
  1424. name = "default:apple_tree",
  1425. deco_type = "schematic",
  1426. place_on = {"default:dirt_with_grass"},
  1427. sidelen = 16,
  1428. noise_params = {
  1429. offset = 0.036,
  1430. scale = 0.022,
  1431. spread = {x = 250, y = 250, z = 250},
  1432. seed = 2,
  1433. octaves = 3,
  1434. persist = 0.66
  1435. },
  1436. biomes = {"deciduous_forest"},
  1437. y_max = 31000,
  1438. y_min = 1,
  1439. schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts",
  1440. flags = "place_center_x, place_center_z",
  1441. rotation = "random",
  1442. })
  1443. minetest.register_decoration({
  1444. name = "default:apple_log",
  1445. deco_type = "schematic",
  1446. place_on = {"default:dirt_with_grass"},
  1447. sidelen = 16,
  1448. noise_params = {
  1449. offset = 0.0018,
  1450. scale = 0.0011,
  1451. spread = {x = 250, y = 250, z = 250},
  1452. seed = 2,
  1453. octaves = 3,
  1454. persist = 0.66
  1455. },
  1456. biomes = {"deciduous_forest"},
  1457. y_max = 31000,
  1458. y_min = 1,
  1459. schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts",
  1460. flags = "place_center_x",
  1461. rotation = "random",
  1462. })
  1463. -- Emergent jungle tree
  1464. -- Due to 32 node height, altitude is limited and prescence depends on chunksize
  1465. local chunksize = tonumber(minetest.get_mapgen_setting("chunksize"))
  1466. if chunksize >= 5 then
  1467. minetest.register_decoration({
  1468. name = "default:emergent_jungle_tree",
  1469. deco_type = "schematic",
  1470. place_on = {"default:dirt_with_rainforest_litter"},
  1471. sidelen = 80,
  1472. noise_params = {
  1473. offset = 0.0,
  1474. scale = 0.0025,
  1475. spread = {x = 250, y = 250, z = 250},
  1476. seed = 2685,
  1477. octaves = 3,
  1478. persist = 0.7
  1479. },
  1480. biomes = {"rainforest"},
  1481. y_max = 32,
  1482. y_min = 1,
  1483. schematic = minetest.get_modpath("default") ..
  1484. "/schematics/emergent_jungle_tree.mts",
  1485. flags = "place_center_x, place_center_z",
  1486. rotation = "random",
  1487. place_offset_y = -4,
  1488. })
  1489. end
  1490. -- Jungle tree and log
  1491. minetest.register_decoration({
  1492. name = "default:jungle_tree",
  1493. deco_type = "schematic",
  1494. place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
  1495. sidelen = 80,
  1496. fill_ratio = 0.1,
  1497. biomes = {"rainforest", "rainforest_swamp"},
  1498. y_max = 31000,
  1499. y_min = -1,
  1500. schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts",
  1501. flags = "place_center_x, place_center_z",
  1502. rotation = "random",
  1503. })
  1504. minetest.register_decoration({
  1505. name = "default:jungle_log",
  1506. deco_type = "schematic",
  1507. place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
  1508. sidelen = 80,
  1509. fill_ratio = 0.005,
  1510. biomes = {"rainforest", "rainforest_swamp"},
  1511. y_max = 31000,
  1512. y_min = 1,
  1513. schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts",
  1514. flags = "place_center_x",
  1515. rotation = "random",
  1516. })
  1517. -- Taiga and temperate coniferous forest pine tree, small pine tree and log
  1518. minetest.register_decoration({
  1519. name = "default:pine_tree",
  1520. deco_type = "schematic",
  1521. place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
  1522. sidelen = 16,
  1523. noise_params = {
  1524. offset = 0.010,
  1525. scale = 0.048,
  1526. spread = {x = 250, y = 250, z = 250},
  1527. seed = 2,
  1528. octaves = 3,
  1529. persist = 0.66
  1530. },
  1531. biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
  1532. y_max = 31000,
  1533. y_min = 2,
  1534. schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
  1535. flags = "place_center_x, place_center_z",
  1536. })
  1537. minetest.register_decoration({
  1538. name = "default:small_pine_tree",
  1539. deco_type = "schematic",
  1540. place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
  1541. sidelen = 16,
  1542. noise_params = {
  1543. offset = 0.010,
  1544. scale = -0.048,
  1545. spread = {x = 250, y = 250, z = 250},
  1546. seed = 2,
  1547. octaves = 3,
  1548. persist = 0.66
  1549. },
  1550. biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
  1551. y_max = 31000,
  1552. y_min = 2,
  1553. schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts",
  1554. flags = "place_center_x, place_center_z",
  1555. })
  1556. minetest.register_decoration({
  1557. name = "default:pine_log",
  1558. deco_type = "schematic",
  1559. place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
  1560. sidelen = 80,
  1561. fill_ratio = 0.0018,
  1562. biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
  1563. y_max = 31000,
  1564. y_min = 1,
  1565. schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts",
  1566. flags = "place_center_x",
  1567. rotation = "random",
  1568. })
  1569. -- Acacia tree and log
  1570. minetest.register_decoration({
  1571. name = "default:acacia_tree",
  1572. deco_type = "schematic",
  1573. place_on = {"default:dirt_with_dry_grass"},
  1574. sidelen = 16,
  1575. noise_params = {
  1576. offset = 0,
  1577. scale = 0.002,
  1578. spread = {x = 250, y = 250, z = 250},
  1579. seed = 2,
  1580. octaves = 3,
  1581. persist = 0.66
  1582. },
  1583. biomes = {"savanna"},
  1584. y_max = 31000,
  1585. y_min = 1,
  1586. schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts",
  1587. flags = "place_center_x, place_center_z",
  1588. rotation = "random",
  1589. })
  1590. minetest.register_decoration({
  1591. name = "default:acacia_log",
  1592. deco_type = "schematic",
  1593. place_on = {"default:dirt_with_dry_grass"},
  1594. sidelen = 16,
  1595. noise_params = {
  1596. offset = 0,
  1597. scale = 0.001,
  1598. spread = {x = 250, y = 250, z = 250},
  1599. seed = 2,
  1600. octaves = 3,
  1601. persist = 0.66
  1602. },
  1603. biomes = {"savanna"},
  1604. y_max = 31000,
  1605. y_min = 1,
  1606. schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts",
  1607. flags = "place_center_x",
  1608. rotation = "random",
  1609. })
  1610. -- Aspen tree and log
  1611. minetest.register_decoration({
  1612. name = "default:aspen_tree",
  1613. deco_type = "schematic",
  1614. place_on = {"default:dirt_with_grass"},
  1615. sidelen = 16,
  1616. noise_params = {
  1617. offset = 0.0,
  1618. scale = -0.015,
  1619. spread = {x = 250, y = 250, z = 250},
  1620. seed = 2,
  1621. octaves = 3,
  1622. persist = 0.66
  1623. },
  1624. biomes = {"deciduous_forest"},
  1625. y_max = 31000,
  1626. y_min = 1,
  1627. schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts",
  1628. flags = "place_center_x, place_center_z",
  1629. })
  1630. minetest.register_decoration({
  1631. name = "default:aspen_log",
  1632. deco_type = "schematic",
  1633. place_on = {"default:dirt_with_grass"},
  1634. sidelen = 16,
  1635. noise_params = {
  1636. offset = 0.0,
  1637. scale = -0.0008,
  1638. spread = {x = 250, y = 250, z = 250},
  1639. seed = 2,
  1640. octaves = 3,
  1641. persist = 0.66
  1642. },
  1643. biomes = {"deciduous_forest"},
  1644. y_max = 31000,
  1645. y_min = 1,
  1646. schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts",
  1647. flags = "place_center_x",
  1648. rotation = "random",
  1649. })
  1650. -- Large cactus
  1651. minetest.register_decoration({
  1652. name = "default:large_cactus",
  1653. deco_type = "schematic",
  1654. place_on = {"default:desert_sand"},
  1655. sidelen = 16,
  1656. noise_params = {
  1657. offset = -0.0003,
  1658. scale = 0.0009,
  1659. spread = {x = 200, y = 200, z = 200},
  1660. seed = 230,
  1661. octaves = 3,
  1662. persist = 0.6
  1663. },
  1664. biomes = {"desert"},
  1665. y_max = 31000,
  1666. y_min = 5,
  1667. schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts",
  1668. flags = "place_center_x",
  1669. rotation = "random",
  1670. })
  1671. -- Cactus
  1672. minetest.register_decoration({
  1673. name = "default:cactus",
  1674. deco_type = "simple",
  1675. place_on = {"default:desert_sand"},
  1676. sidelen = 16,
  1677. noise_params = {
  1678. offset = -0.0003,
  1679. scale = 0.0009,
  1680. spread = {x = 200, y = 200, z = 200},
  1681. seed = 230,
  1682. octaves = 3,
  1683. persist = 0.6
  1684. },
  1685. biomes = {"desert"},
  1686. y_max = 31000,
  1687. y_min = 5,
  1688. decoration = "default:cactus",
  1689. height = 2,
  1690. height_max = 5,
  1691. })
  1692. -- Papyrus
  1693. minetest.register_decoration({
  1694. name = "default:papyrus",
  1695. deco_type = "schematic",
  1696. place_on = {"default:dirt"},
  1697. sidelen = 16,
  1698. noise_params = {
  1699. offset = -0.3,
  1700. scale = 0.7,
  1701. spread = {x = 200, y = 200, z = 200},
  1702. seed = 354,
  1703. octaves = 3,
  1704. persist = 0.7
  1705. },
  1706. biomes = {"savanna_shore"},
  1707. y_max = 0,
  1708. y_min = 0,
  1709. schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts",
  1710. })
  1711. -- Bush
  1712. minetest.register_decoration({
  1713. name = "default:bush",
  1714. deco_type = "schematic",
  1715. place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
  1716. sidelen = 16,
  1717. noise_params = {
  1718. offset = -0.004,
  1719. scale = 0.01,
  1720. spread = {x = 100, y = 100, z = 100},
  1721. seed = 137,
  1722. octaves = 3,
  1723. persist = 0.7,
  1724. },
  1725. biomes = {"snowy_grassland", "grassland", "deciduous_forest",
  1726. "floatland_grassland"},
  1727. y_max = 31000,
  1728. y_min = 1,
  1729. schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
  1730. flags = "place_center_x, place_center_z",
  1731. })
  1732. -- Acacia bush
  1733. minetest.register_decoration({
  1734. name = "default:acacia_bush",
  1735. deco_type = "schematic",
  1736. place_on = {"default:dirt_with_dry_grass"},
  1737. sidelen = 16,
  1738. noise_params = {
  1739. offset = -0.004,
  1740. scale = 0.01,
  1741. spread = {x = 100, y = 100, z = 100},
  1742. seed = 90155,
  1743. octaves = 3,
  1744. persist = 0.7,
  1745. },
  1746. biomes = {"savanna"},
  1747. y_max = 31000,
  1748. y_min = 1,
  1749. schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts",
  1750. flags = "place_center_x, place_center_z",
  1751. })
  1752. -- Grasses
  1753. register_grass_decoration(-0.03, 0.09, 5)
  1754. register_grass_decoration(-0.015, 0.075, 4)
  1755. register_grass_decoration(0, 0.06, 3)
  1756. register_grass_decoration(0.015, 0.045, 2)
  1757. register_grass_decoration(0.03, 0.03, 1)
  1758. -- Dry grasses
  1759. register_dry_grass_decoration(0.01, 0.05, 5)
  1760. register_dry_grass_decoration(0.03, 0.03, 4)
  1761. register_dry_grass_decoration(0.05, 0.01, 3)
  1762. register_dry_grass_decoration(0.07, -0.01, 2)
  1763. register_dry_grass_decoration(0.09, -0.03, 1)
  1764. -- Ferns
  1765. register_fern_decoration(14936, 3)
  1766. register_fern_decoration(801, 2)
  1767. register_fern_decoration(5, 1)
  1768. -- Junglegrass
  1769. minetest.register_decoration({
  1770. name = "default:junglegrass",
  1771. deco_type = "simple",
  1772. place_on = {"default:dirt_with_rainforest_litter"},
  1773. sidelen = 80,
  1774. fill_ratio = 0.1,
  1775. biomes = {"rainforest"},
  1776. y_max = 31000,
  1777. y_min = 1,
  1778. decoration = "default:junglegrass",
  1779. })
  1780. -- Dry shrub
  1781. minetest.register_decoration({
  1782. name = "default:dry_shrub",
  1783. deco_type = "simple",
  1784. place_on = {"default:desert_sand",
  1785. "default:sand", "default:silver_sand"},
  1786. sidelen = 16,
  1787. noise_params = {
  1788. offset = 0,
  1789. scale = 0.02,
  1790. spread = {x = 200, y = 200, z = 200},
  1791. seed = 329,
  1792. octaves = 3,
  1793. persist = 0.6
  1794. },
  1795. biomes = {"desert", "sandstone_desert", "cold_desert"},
  1796. y_max = 31000,
  1797. y_min = 2,
  1798. decoration = "default:dry_shrub",
  1799. param2 = 4,
  1800. })
  1801. -- Marram grass
  1802. minetest.register_decoration({
  1803. name = "default:marram_grass",
  1804. deco_type = "simple",
  1805. place_on = {"default:sand"},
  1806. sidelen = 4,
  1807. noise_params = {
  1808. offset = -0.4,
  1809. scale = 3.0,
  1810. spread = {x = 16, y = 16, z = 16},
  1811. seed = 513337,
  1812. octaves = 1,
  1813. persist = 0.5,
  1814. flags = "absvalue"
  1815. },
  1816. biomes = {"coniferous_forest_dunes", "grassland_dunes"},
  1817. y_max = 5,
  1818. y_min = 4,
  1819. decoration = {
  1820. "default:marram_grass_1",
  1821. "default:marram_grass_2",
  1822. "default:marram_grass_3",
  1823. },
  1824. })
  1825. -- Tundra moss
  1826. minetest.register_decoration({
  1827. deco_type = "simple",
  1828. place_on = {"default:permafrost_with_stones"},
  1829. sidelen = 4,
  1830. noise_params = {
  1831. offset = -0.8,
  1832. scale = 2.0,
  1833. spread = {x = 100, y = 100, z = 100},
  1834. seed = 53995,
  1835. octaves = 3,
  1836. persist = 1.0
  1837. },
  1838. biomes = {"tundra"},
  1839. y_max = 48,
  1840. y_min = 2,
  1841. decoration = "default:permafrost_with_moss",
  1842. place_offset_y = -1,
  1843. flags = "force_placement",
  1844. })
  1845. -- Tundra patchy snow
  1846. minetest.register_decoration({
  1847. deco_type = "simple",
  1848. place_on = {
  1849. "default:permafrost_with_moss",
  1850. "default:permafrost_with_stones",
  1851. "default:stone"
  1852. },
  1853. sidelen = 4,
  1854. noise_params = {
  1855. offset = 0,
  1856. scale = 1.0,
  1857. spread = {x = 100, y = 100, z = 100},
  1858. seed = 172555,
  1859. octaves = 3,
  1860. persist = 1.0
  1861. },
  1862. biomes = {"tundra"},
  1863. y_max = 48,
  1864. y_min = 2,
  1865. decoration = "default:snow",
  1866. })
  1867. -- Coral reef
  1868. minetest.register_decoration({
  1869. name = "default:corals",
  1870. deco_type = "schematic",
  1871. place_on = {"default:sand"},
  1872. noise_params = {
  1873. offset = -0.15,
  1874. scale = 0.1,
  1875. spread = {x = 100, y = 100, z = 100},
  1876. seed = 7013,
  1877. octaves = 3,
  1878. persist = 1,
  1879. },
  1880. biomes = {
  1881. "desert_ocean",
  1882. "savanna_ocean",
  1883. "rainforest_ocean",
  1884. },
  1885. y_max = -2,
  1886. y_min = -8,
  1887. schematic = minetest.get_modpath("default") .. "/schematics/corals.mts",
  1888. flags = "place_center_x, place_center_z",
  1889. rotation = "random",
  1890. })
  1891. -- Kelp
  1892. minetest.register_decoration({
  1893. name = "default:kelp",
  1894. deco_type = "simple",
  1895. place_on = {"default:sand"},
  1896. place_offset_y = -1,
  1897. sidelen = 16,
  1898. noise_params = {
  1899. offset = -0.04,
  1900. scale = 0.1,
  1901. spread = {x = 200, y = 200, z = 200},
  1902. seed = 87112,
  1903. octaves = 3,
  1904. persist = 0.7
  1905. },
  1906. biomes = {
  1907. "taiga_ocean",
  1908. "snowy_grassland_ocean",
  1909. "grassland_ocean",
  1910. "coniferous_forest_ocean",
  1911. "deciduous_forest_ocean",
  1912. "sandstone_desert_ocean",
  1913. "cold_desert_ocean"},
  1914. y_max = -5,
  1915. y_min = -10,
  1916. flags = "force_placement",
  1917. decoration = "default:sand_with_kelp",
  1918. param2 = 48,
  1919. param2_max = 96,
  1920. })
  1921. end
  1922. --
  1923. -- Detect mapgen, flags and parameters to select functions
  1924. --
  1925. -- Get setting or default
  1926. local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or
  1927. "mountains, ridges, nofloatlands, caverns"
  1928. local captures_float = string.match(mgv7_spflags, "floatlands")
  1929. local captures_nofloat = string.match(mgv7_spflags, "nofloatlands")
  1930. -- Get setting or default
  1931. -- Make global for mods to use to register floatland biomes
  1932. default.mgv7_floatland_level =
  1933. minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
  1934. default.mgv7_shadow_limit =
  1935. minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
  1936. minetest.clear_registered_biomes()
  1937. minetest.clear_registered_ores()
  1938. minetest.clear_registered_decorations()
  1939. local mg_name = minetest.get_mapgen_setting("mg_name")
  1940. if mg_name == "v6" then
  1941. default.register_mgv6_ores()
  1942. default.register_mgv6_decorations()
  1943. -- Need to check for 'nofloatlands' because that contains
  1944. -- 'floatlands' which makes the second condition true.
  1945. elseif mg_name == "v7" and
  1946. captures_float == "floatlands" and
  1947. captures_nofloat ~= "nofloatlands" then
  1948. -- Mgv7 with floatlands and floatland biomes
  1949. default.register_biomes(default.mgv7_shadow_limit - 1)
  1950. default.register_floatland_biomes(
  1951. default.mgv7_floatland_level, default.mgv7_shadow_limit)
  1952. default.register_ores()
  1953. default.register_decorations()
  1954. else
  1955. default.register_biomes(31000)
  1956. default.register_ores()
  1957. default.register_decorations()
  1958. end