TNT: Add on_blast to all nodes with an inventory
[oweals/minetest_game.git] / mods / flowers / mapgen.lua
1 --
2 -- Mgv6
3 --
4
5 local function register_mgv6_flower(name)
6         minetest.register_decoration({
7                 deco_type = "simple",
8                 place_on = {"default:dirt_with_grass"},
9                 sidelen = 16,
10                 noise_params = {
11                         offset = 0,
12                         scale = 0.006,
13                         spread = {x = 100, y = 100, z = 100},
14                         seed = 436,
15                         octaves = 3,
16                         persist = 0.6
17                 },
18                 y_min = 1,
19                 y_max = 30,
20                 decoration = "flowers:"..name,
21         })
22 end
23
24 local function register_mgv6_mushroom(name)
25         minetest.register_decoration({
26                 deco_type = "simple",
27                 place_on = {"default:dirt_with_grass"},
28                 sidelen = 16,
29                 noise_params = {
30                         offset = 0,
31                         scale = 0.04,
32                         spread = {x = 100, y = 100, z = 100},
33                         seed = 7133,
34                         octaves = 3,
35                         persist = 0.6
36                 },
37                 y_min = 1,
38                 y_max = 30,
39                 decoration = "flowers:"..name,
40                 spawn_by = "default:tree",
41                 num_spawn_by = 1,
42         })
43 end
44
45 local function register_mgv6_waterlily()
46         minetest.register_decoration({
47                 deco_type = "schematic",
48                 place_on = {"default:dirt"},
49                 sidelen = 16,
50                 noise_params = {
51                         offset = -0.12,
52                         scale = 0.3,
53                         spread = {x = 100, y = 100, z = 100},
54                         seed = 33,
55                         octaves = 3,
56                         persist = 0.7
57                 },
58                 y_min = 0,
59                 y_max = 0,
60                 schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts",
61                 rotation = "random",
62         })
63 end
64
65 function flowers.register_mgv6_decorations()
66         register_mgv6_flower("rose")
67         register_mgv6_flower("tulip")
68         register_mgv6_flower("dandelion_yellow")
69         register_mgv6_flower("geranium")
70         register_mgv6_flower("viola")
71         register_mgv6_flower("dandelion_white")
72
73         register_mgv6_mushroom("mushroom_brown")
74         register_mgv6_mushroom("mushroom_red")
75
76         register_mgv6_waterlily()
77 end
78
79
80 --
81 -- All other biome API mapgens
82 --
83
84 local function register_flower(seed, name)
85         minetest.register_decoration({
86                 deco_type = "simple",
87                 place_on = {"default:dirt_with_grass"},
88                 sidelen = 16,
89                 noise_params = {
90                         offset = -0.015,
91                         scale = 0.025,
92                         spread = {x = 200, y = 200, z = 200},
93                         seed = seed,
94                         octaves = 3,
95                         persist = 0.6
96                 },
97                 biomes = {"stone_grassland", "sandstone_grassland",
98                         "deciduous_forest", "coniferous_forest"},
99                 y_min = 1,
100                 y_max = 31000,
101                 decoration = "flowers:"..name,
102         })
103 end
104
105 local function register_mushroom(name)
106         minetest.register_decoration({
107                 deco_type = "simple",
108                 place_on = {"default:dirt_with_grass"},
109                 sidelen = 16,
110                 noise_params = {
111                         offset = 0,
112                         scale = 0.006,
113                         spread = {x = 200, y = 200, z = 200},
114                         seed = 2,
115                         octaves = 3,
116                         persist = 0.66
117                 },
118                 biomes = {"deciduous_forest", "coniferous_forest"},
119                 y_min = 1,
120                 y_max = 31000,
121                 decoration = "flowers:"..name,
122         })
123 end
124
125 local function register_waterlily()
126         minetest.register_decoration({
127                 deco_type = "schematic",
128                 place_on = {"default:dirt"},
129                 sidelen = 16,
130                 noise_params = {
131                         offset = -0.12,
132                         scale = 0.3,
133                         spread = {x = 200, y = 200, z = 200},
134                         seed = 33,
135                         octaves = 3,
136                         persist = 0.7
137                 },
138                 biomes = {"rainforest_swamp", "savanna_swamp", "deciduous_forest_swamp"},
139                 y_min = 0,
140                 y_max = 0,
141                 schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts",
142                 rotation = "random",
143         })
144 end
145
146 function flowers.register_decorations()
147         register_flower(436,     "rose")
148         register_flower(19822,   "tulip")
149         register_flower(1220999, "dandelion_yellow")
150         register_flower(36662,   "geranium")
151         register_flower(1133,    "viola")
152         register_flower(73133,   "dandelion_white")
153
154         register_mushroom("mushroom_brown")
155         register_mushroom("mushroom_red")
156
157         register_waterlily()
158 end
159
160
161 --
162 -- Detect mapgen to select functions
163 --
164
165 -- Mods using singlenode mapgen can call these functions to enable
166 -- the use of minetest.generate_ores or minetest.generate_decorations
167
168 local mg_params = minetest.get_mapgen_params()
169 if mg_params.mgname == "v6" then
170         flowers.register_mgv6_decorations()
171 elseif mg_params.mgname ~= "singlenode" then
172         flowers.register_decorations()
173 end