compat.lua 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. -- compatibility shims for old mods
  2. function biome_lib:register_generate_plant(b, n)
  3. biome_lib.dbg("Warning: biome_lib:register_generate_plant() is deprecated!", 2)
  4. biome_lib.dbg("Use biome_lib.register_on_generate() instead", 2)
  5. biome_lib.dbg("Item: "..dump(n), 2)
  6. biome_lib.register_on_generate(b, n)
  7. end
  8. function biome_lib:spawn_on_surfaces(sd, sp, sr, sc, ss, sa)
  9. biome_lib.dbg("Warning: biome_lib:spawn_on_surfaces() is deprecated!", 2)
  10. biome_lib.dbg("Use biome_lib.register_active_spawner() instead.", 2)
  11. biome_lib.dbg("Item: "..dump(sd.spawn_plants or sp[1] or sp), 2)
  12. biome_lib.register_active_spawner(sd, sp, sr, sc, ss, sa)
  13. end
  14. function biome_lib:replace_object(p, r, f, w, d)
  15. biome_lib.dbg("Warning: biome_lib:replace_object() is deprecated!", 2)
  16. biome_lib.dbg("Use biome_lib.replace_plant() instead.", 2)
  17. biome_lib.dbg("Item: "..dump(r), 2)
  18. biome_lib.replace_plant(p, r, f, w, d)
  19. end
  20. function biome_lib:grow_plants(o)
  21. biome_lib.dbg("Warning: biome_lib:grow_plants() is deprecated!", 2)
  22. biome_lib.dbg("Use biome_lib.update_plant() instead.", 2)
  23. biome_lib.dbg("Item: "..dump(o.grow_nodes), 2)
  24. biome_lib.update_plant(o)
  25. end
  26. function biome_lib.generate_ltree(p, n)
  27. minetest.spawn_tree(p, n)
  28. end
  29. function biome_lib.grow_ltree(p, n)
  30. minetest.spawn_tree(p, n)
  31. end
  32. function biome_lib:generate_tree(p, n)
  33. biome_lib.dbg("Warning: biome_lib:generate_tree() is deprecated!", 2)
  34. biome_lib.dbg("Use biome_lib.generate_ltree() instead.", 2)
  35. biome_lib.dbg("Item: "..dump(n), 2)
  36. biome_lib.generate_ltree(p, n)
  37. end
  38. function biome_lib:grow_tree(p, n)
  39. biome_lib.dbg("Warning: biome_lib:grow_tree() is deprecated!", 2)
  40. biome_lib.dbg("Use biome_lib.grow_ltree() instead.", 2)
  41. biome_lib.dbg("Item: "..dump(n), 2)
  42. biome_lib.grow_ltree(p, n)
  43. end
  44. function biome_lib.can_use_decorations(b, nodes_or_function_or_treedef)
  45. if not b or not nodes_or_function_or_treedef
  46. or b.below_nodes
  47. or b.avoid_nodes
  48. or b.avoid_radius
  49. or b.neighbors
  50. or b.ncount
  51. or b.depth
  52. or b.near_nodes_size
  53. or b.near_nodes_vertical
  54. or b.temp_min
  55. or b.temp_max
  56. or b.verticals_list
  57. or b.delete_above
  58. or b.delete_above_surround
  59. or ( type(nodes_or_function_or_treedef) == "string" and not minetest.registered_nodes[nodes_or_function_or_treedef] )
  60. or ( type(nodes_or_function_or_treedef) == "table" and nodes_or_function_or_treedef.axiom )
  61. or type(nodes_or_function_or_treedef) == "function"
  62. then return false
  63. end
  64. local biome = biome_lib.set_defaults(b)
  65. local decor_def = {
  66. ["deco_type"] = "simple",
  67. ["flags"] = "all_floors",
  68. ["decoration"] = nodes_or_function_or_treedef,
  69. ["place_on"] = biome.surface,
  70. ["y_min"] = biome.min_elevation,
  71. ["y_max"] = biome.max_elevation,
  72. ["spawn_by"] = biome.near_nodes,
  73. ["num_spawn_by"] = biome.near_nodes and biome.near_nodes_count,
  74. }
  75. local r = (100-biome.rarity)/100
  76. local mc = math.min(biome.max_count, 6400)/6400
  77. decor_def.noise_params = {
  78. octaves = biome_lib.fertile_perlin_octaves,
  79. persist = biome_lib.fertile_perlin_persistence * (100/biome_lib.fertile_perlin_scale),
  80. scale = math.min(r, mc),
  81. seed = biome.seed_diff,
  82. offset = 0,
  83. spread = {x = 100, y = 100, z = 100},
  84. lacunarity = 2,
  85. flags = "absvalue"
  86. }
  87. if not b.check_air then
  88. decor_def.flags = decor_def.flags..",force_placement"
  89. end
  90. if b.spawn_replace_node then
  91. decor_def.place_offset_y = -1
  92. end
  93. if b.random_facedir then
  94. decor_def.param2 = math.min(b.random_facedir[1], b.random_facedir[2])
  95. decor_def.param2_max = math.max(b.random_facedir[1], b.random_facedir[2])
  96. end
  97. return decor_def
  98. end