]> git.lizzy.rs Git - xocean.git/blob - init.lua
fixed possible bug with schem reading.
[xocean.git] / init.lua
1 minetest.register_node("xocean:ocean_cobble", {\r
2         description = "Ocean Cobblestone",\r
3         tile_images = {"xocean_cobble.png"},\r
4         groups = {cracky=3},\r
5 })\r
6 \r
7 minetest.register_node("xocean:ocean_stone", {\r
8         description = "Ocean Stone",\r
9         tile_images = {"xocean_stone.png"},\r
10         groups = {cracky=3},\r
11         drop= "xocean:ocean_cobble",\r
12 })\r
13 \r
14 minetest.register_craft({\r
15         type = "cooking",\r
16         output = "xocean:ocean_stone",\r
17         recipe = "xocean:ocean_cobble",\r
18 })\r
19 ---Spawn the stone\r
20 minetest.register_ore({\r
21                 ore_type        = "blob",\r
22                 ore             = "xocean:ocean_stone",\r
23                 wherein         = {"default:sand"},\r
24                 clust_scarcity  = 32 * 32 * 32,\r
25                 clust_size      = 8,\r
26                 y_min           = -15,\r
27                 y_max           = 0,\r
28                 noise_threshold = 0.0,\r
29                 noise_params    = {\r
30                         offset = 0.5,\r
31                         scale = 0.2,\r
32                         spread = {x = 8, y = 5, z = 8},\r
33                         seed = -316,\r
34                         octaves = 1,\r
35                         persist = 0.0\r
36                 },\r
37         })\r
38 \r
39 minetest.register_node("xocean:ocean_carved", {\r
40         description = "Carved Ocean Stone",\r
41         tile_images = {"xocean_carved.png"},\r
42         groups = {cracky=2},\r
43 })\r
44 \r
45 minetest.register_craft({\r
46         output = '"xocean:ocean_carved" 4',\r
47         recipe = {\r
48                 {'xocean:ocean_stone', 'xocean:ocean_stone',},\r
49                 {'xocean:ocean_stone', 'xocean:ocean_stone',},\r
50                 },\r
51 })\r
52 \r
53 minetest.register_node("xocean:ocean_circular", {\r
54         description = "Circular Ocean Stone",\r
55         tile_images = {"xocean_circular.png"},\r
56         groups = {cracky=2},\r
57 })\r
58 \r
59 minetest.register_craft({\r
60         output = '"xocean:ocean_circular" 4',\r
61         recipe = {\r
62                 {'xocean:ocean_craved', 'xocean:ocean_carved',},\r
63                 {'xocean:ocean_craved', 'xocean:ocean_carved',},\r
64                 },\r
65 })\r
66 \r
67 minetest.register_node("xocean:ocean_pillar", {\r
68         description = "Ocean Pillar",\r
69         tile_images = {"xocean_pillar.png"},\r
70         groups = {cracky=2},\r
71 })\r
72 \r
73 minetest.register_craft({\r
74         output = '"xocean:ocean_pillar" 4',\r
75         recipe = {\r
76                 {'xocean:ocean_brick', 'xocean:ocean_brick',},\r
77                 {'xocean:ocean_brick', 'xocean:ocean_brick',},\r
78                 },\r
79 })\r
80 \r
81 minetest.register_node("xocean:ocean_brick", {\r
82         description = "Ocean Brick",\r
83         tile_images = {"xocean_brick.png"},\r
84         groups = {cracky=2},\r
85 })\r
86 \r
87 minetest.register_craft({\r
88         output = '"xocean:ocean_brick" 4',\r
89         recipe = {\r
90                 {'xocean:ocean_cobble', 'xocean:ocean_cobble',},\r
91                 {'xocean:ocean_cobble', 'xocean:ocean_cobble',},\r
92                 },\r
93 })\r
94 \r
95 minetest.register_node("xocean:sea_lantern", {\r
96     description = "Sea Lantern",\r
97     drawtype = "glasslike",\r
98         light_source = 30,\r
99     tiles = {"xocean_lantern.png"},\r
100     paramtype = "light",\r
101     is_ground_content = true,\r
102     sunlight_propagates = true,\r
103     sounds = default.node_sound_glass_defaults(),\r
104     groups = {cracky=3,oddly_breakable_by_hand=3},\r
105 })\r
106 \r
107 minetest.register_craft({\r
108         output = '"xocean:sea_lantern" 4',\r
109         recipe = {\r
110                 {'default:torch', 'default:glass', 'default:torch', },\r
111                 {'default:glass', 'bucket:bucket_water', 'default:glass', },\r
112                 {'default:torch', 'default:glass', 'default:torch', },\r
113                 },\r
114                 replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}}\r
115 })\r
116 ---Sea stuff\r
117 minetest.register_node("xocean:kelp_block", {\r
118         description = "Dried Kelp Block",\r
119         tile_images = {"xocean_kelp_block.png"},\r
120         groups = {snappy=3},\r
121         drop= "xocean:kelp 9",\r
122 })\r
123 minetest.register_craft({\r
124         output = '"xocean:kelp_block" 1',\r
125         recipe = {\r
126                 {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', },\r
127                 {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', },\r
128                 {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', },\r
129                 },\r
130 })\r
131 minetest.override_item("default:sand_with_kelp", {\r
132         description = "Kelp",\r
133         drawtype = "plantlike_rooted",\r
134         waving = 1,\r
135         tiles = {"default_sand.png"},\r
136         special_tiles = {{name = "default_kelp.png", tileable_vertical = true}},\r
137         inventory_image = "xocean_kelp.png",\r
138         wield_image = "xocean_kelp.png",\r
139         paramtype = "light",\r
140         paramtype2 = "leveled",\r
141         groups = {snappy = 3},\r
142         selection_box = {\r
143                 type = "fixed",\r
144                 fixed = {\r
145                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
146                                 {-2/16, 0.5, -2/16, 2/16, 3.5, 2/16},\r
147                 },\r
148         },\r
149         node_dig_prediction = "default:sand",\r
150         node_placement_prediction = "",\r
151         sounds = default.node_sound_sand_defaults({\r
152                 dig = {name = "default_dig_snappy", gain = 0.2},\r
153                 dug = {name = "default_grass_footstep", gain = 0.25},\r
154         }),\r
155 \r
156         on_place = function(itemstack, placer, pointed_thing)\r
157                 -- Call on_rightclick if the pointed node defines it\r
158                 if pointed_thing.type == "node" and placer and\r
159                                 not placer:get_player_control().sneak then\r
160                         local node_ptu = minetest.get_node(pointed_thing.under)\r
161                         local def_ptu = minetest.registered_nodes[node_ptu.name]\r
162                         if def_ptu and def_ptu.on_rightclick then\r
163                                 return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,\r
164                                         itemstack, pointed_thing)\r
165                         end\r
166                 end\r
167 \r
168                 local pos = pointed_thing.under\r
169                 if minetest.get_node(pos).name ~= "default:sand" then\r
170                         return itemstack\r
171                 end\r
172 \r
173                 local height = math.random(4, 6)\r
174                 local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}\r
175                 local node_top = minetest.get_node(pos_top)\r
176                 local def_top = minetest.registered_nodes[node_top.name]\r
177                 local player_name = placer:get_player_name()\r
178 \r
179                 if def_top and def_top.liquidtype == "source" and\r
180                                 minetest.get_item_group(node_top.name, "water") > 0 then\r
181                         if not minetest.is_protected(pos, player_name) and\r
182                                         not minetest.is_protected(pos_top, player_name) then\r
183                                 minetest.set_node(pos, {name = "default:sand_with_kelp",\r
184                                         param2 = height * 16})\r
185                                 if not (creative and creative.is_enabled_for\r
186                                                 and creative.is_enabled_for(player_name)) then\r
187                                         itemstack:take_item()\r
188                                 end\r
189                         else\r
190                                 minetest.chat_send_player(player_name, "Node is protected")\r
191                                 minetest.record_protection_violation(pos, player_name)\r
192                         end\r
193                 end\r
194 \r
195                 return itemstack\r
196         end,\r
197 \r
198         after_destruct  = function(pos, oldnode)\r
199                 minetest.set_node(pos, {name = "default:sand"})\r
200         end\r
201 })\r
202 minetest.register_craft({\r
203         type = "cooking",\r
204         output = "xocean:kelp",\r
205         recipe = "default:sand_with_kelp",\r
206 })\r
207 minetest.register_craftitem("xocean:kelp", {\r
208         description = "Dried Kelp",\r
209         on_use = minetest.item_eat(2),\r
210         inventory_image = "xocean_dried_kelp.png",\r
211 })\r
212 minetest.register_node("xocean:seagrass", {\r
213         description = "Seagrass",\r
214         drawtype = "plantlike_rooted",\r
215         waving = 1,\r
216         paramtype = "light",\r
217         tiles = {"default_sand.png"},\r
218         special_tiles = {{name = "xocean_grass.png", tileable_vertical = true}},\r
219         inventory_image = "xocean_grass.png",\r
220         groups = {snappy = 3},\r
221         selection_box = {\r
222                 type = "fixed",\r
223                 fixed = {\r
224                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
225                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
226                 },\r
227         },\r
228         drop = "",\r
229         node_dig_prediction = "default:sand",\r
230         node_placement_prediction = "",\r
231         sounds = default.node_sound_stone_defaults({\r
232                 dig = {name = "default_dig_snappy", gain = 0.2},\r
233                 dug = {name = "default_grass_footstep", gain = 0.25},\r
234         }),\r
235 \r
236         on_place = function(itemstack, placer, pointed_thing)\r
237                 if pointed_thing.type ~= "node" or not placer then\r
238                         return itemstack\r
239                 end\r
240 \r
241                 local player_name = placer:get_player_name()\r
242                 local pos_under = pointed_thing.under\r
243                 local pos_above = pointed_thing.above\r
244 \r
245                 if minetest.get_node(pos_under).name ~= "default:sand" or\r
246                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
247                         return itemstack\r
248                 end\r
249 \r
250                 if minetest.is_protected(pos_under, player_name) or\r
251                                 minetest.is_protected(pos_above, player_name) then\r
252                         minetest.chat_send_player(player_name, "Node is protected")\r
253                         minetest.record_protection_violation(pos_under, player_name)\r
254                         return itemstack\r
255                 end\r
256 \r
257                 minetest.set_node(pos_under, {name = "xocean:seagrass"})\r
258                 if not (creative and creative.is_enabled_for(player_name)) then\r
259                         itemstack:take_item()\r
260                 end\r
261 \r
262                 return itemstack\r
263         end,\r
264 \r
265         after_destruct  = function(pos, oldnode)\r
266                 minetest.set_node(pos, {name = "default:sand"})\r
267         end,\r
268 })\r
269 minetest.register_craftitem("xocean:fish_edible", {\r
270         description = "Tropical Fish",\r
271         on_use = minetest.item_eat(3),\r
272         inventory_image = "xocean_fish_edible.png",\r
273 })\r
274 minetest.register_node("xocean:pickle", {\r
275         description = "Sea Pickle",\r
276         drawtype = "plantlike_rooted",\r
277         waving = 1,\r
278         paramtype = "light",\r
279         tiles = {"default_sand.png"},\r
280         special_tiles = {{name = "xocean_pickle.png", tileable_vertical = true}},\r
281         inventory_image = "xocean_pickle.png",\r
282         groups = {snappy = 3},\r
283         selection_box = {\r
284                 type = "fixed",\r
285                 fixed = {\r
286                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
287                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
288                 },\r
289         },\r
290         light_source = 3,\r
291         node_dig_prediction = "default:sand",\r
292         node_placement_prediction = "",\r
293         sounds = default.node_sound_stone_defaults({\r
294                 dig = {name = "default_dig_snappy", gain = 0.2},\r
295                 dug = {name = "default_grass_footstep", gain = 0.25},\r
296         }),\r
297 \r
298         on_place = function(itemstack, placer, pointed_thing)\r
299                 if pointed_thing.type ~= "node" or not placer then\r
300                         return itemstack\r
301                 end\r
302 \r
303                 local player_name = placer:get_player_name()\r
304                 local pos_under = pointed_thing.under\r
305                 local pos_above = pointed_thing.above\r
306 \r
307                 if minetest.get_node(pos_under).name ~= "default:sand" or\r
308                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
309                         return itemstack\r
310                 end\r
311 \r
312                 if minetest.is_protected(pos_under, player_name) or\r
313                                 minetest.is_protected(pos_above, player_name) then\r
314                         minetest.chat_send_player(player_name, "Node is protected")\r
315                         minetest.record_protection_violation(pos_under, player_name)\r
316                         return itemstack\r
317                 end\r
318 \r
319                 minetest.set_node(pos_under, {name = "xocean:pickle"})\r
320                 if not (creative and creative.is_enabled_for(player_name)) then\r
321                         itemstack:take_item()\r
322                 end\r
323 \r
324                 return itemstack\r
325         end,\r
326 \r
327         after_destruct  = function(pos, oldnode)\r
328                 minetest.set_node(pos, {name = "default:sand"})\r
329         end,\r
330 })\r
331 ---Corals\r
332 minetest.register_node("xocean:brain_block", {\r
333         description = "Brain Coral Block",\r
334         tiles = {"xocean_coral_brain.png"},\r
335         groups = {cracky = 3},\r
336         drop = "xocean:brain_skeleton",\r
337         sounds = default.node_sound_stone_defaults(),\r
338 })\r
339 minetest.override_item("default:coral_pink", {\r
340         description = "Brain Coral",\r
341         drawtype = "plantlike_rooted",\r
342         waving = 1,\r
343         paramtype = "light",\r
344         tiles = {"xocean_coral_brain.png"},\r
345         special_tiles = {{name = "xocean_brain.png", tileable_vertical = true}},\r
346         inventory_image = "xocean_brain.png",\r
347         groups = {snappy = 3},\r
348         selection_box = {\r
349                 type = "fixed",\r
350                 fixed = {\r
351                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
352                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
353                 },\r
354         },\r
355         node_dig_prediction = "xocean:brain_block",\r
356         node_placement_prediction = "",\r
357         sounds = default.node_sound_stone_defaults({\r
358                 dig = {name = "default_dig_snappy", gain = 0.2},\r
359                 dug = {name = "default_grass_footstep", gain = 0.25},\r
360         }),\r
361 \r
362         on_place = function(itemstack, placer, pointed_thing)\r
363                 if pointed_thing.type ~= "node" or not placer then\r
364                         return itemstack\r
365                 end\r
366 \r
367                 local player_name = placer:get_player_name()\r
368                 local pos_under = pointed_thing.under\r
369                 local pos_above = pointed_thing.above\r
370 \r
371                 if minetest.get_node(pos_under).name ~= "xocean:brain_block" or\r
372                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
373                         return itemstack\r
374                 end\r
375 \r
376                 if minetest.is_protected(pos_under, player_name) or\r
377                                 minetest.is_protected(pos_above, player_name) then\r
378                         minetest.chat_send_player(player_name, "Node is protected")\r
379                         minetest.record_protection_violation(pos_under, player_name)\r
380                         return itemstack\r
381                 end\r
382 \r
383                 minetest.set_node(pos_under, {name = "default:coral_pink"})\r
384                 if not (creative and creative.is_enabled_for(player_name)) then\r
385                         itemstack:take_item()\r
386                 end\r
387 \r
388                 return itemstack\r
389         end,\r
390 \r
391         after_destruct  = function(pos, oldnode)\r
392                 minetest.set_node(pos, {name = "xocean:brain_block"})\r
393         end,\r
394 })\r
395 minetest.register_node("xocean:brain_skeleton", {\r
396         description = "Brain Coral Skeleton",\r
397         tiles = {"xocean_coral_brain_skeleton.png"},\r
398         groups = {cracky = 3},\r
399         sounds = default.node_sound_stone_defaults(),\r
400 })\r
401 minetest.register_node("xocean:skeleton_brain", {\r
402         description = "Brain Coral Skeleton",\r
403         drawtype = "plantlike_rooted",\r
404         waving = 1,\r
405         paramtype = "light",\r
406         tiles = {"xocean_coral_brain_skeleton.png"},\r
407         special_tiles = {{name = "xocean_brain_skeleton.png", tileable_vertical = true}},\r
408         inventory_image = "xocean_brain_skeleton.png",\r
409         groups = {snappy = 3},\r
410         selection_box = {\r
411                 type = "fixed",\r
412                 fixed = {\r
413                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
414                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
415                 },\r
416         },\r
417         node_dig_prediction = "xocean:brain_skeleton",\r
418         node_placement_prediction = "",\r
419         sounds = default.node_sound_stone_defaults({\r
420                 dig = {name = "default_dig_snappy", gain = 0.2},\r
421                 dug = {name = "default_grass_footstep", gain = 0.25},\r
422         }),\r
423 \r
424         on_place = function(itemstack, placer, pointed_thing)\r
425                 if pointed_thing.type ~= "node" or not placer then\r
426                         return itemstack\r
427                 end\r
428 \r
429                 local player_name = placer:get_player_name()\r
430                 local pos_under = pointed_thing.under\r
431                 local pos_above = pointed_thing.above\r
432 \r
433                 if minetest.get_node(pos_under).name ~= "xocean:brain_skeleton" or\r
434                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
435                         return itemstack\r
436                 end\r
437 \r
438                 if minetest.is_protected(pos_under, player_name) or\r
439                                 minetest.is_protected(pos_above, player_name) then\r
440                         minetest.chat_send_player(player_name, "Node is protected")\r
441                         minetest.record_protection_violation(pos_under, player_name)\r
442                         return itemstack\r
443                 end\r
444 \r
445                 minetest.set_node(pos_under, {name = "xocean:skeleton_brain"})\r
446                 if not (creative and creative.is_enabled_for(player_name)) then\r
447                         itemstack:take_item()\r
448                 end\r
449 \r
450                 return itemstack\r
451         end,\r
452 \r
453         after_destruct  = function(pos, oldnode)\r
454                 minetest.set_node(pos, {name = "xocean:brain_skeleton"})\r
455         end,\r
456 })\r
457 minetest.register_node("xocean:tube_block", {\r
458         description = "Tube Coral Block",\r
459         tiles = {"xocean_coral_tube.png"},\r
460         groups = {cracky = 3},\r
461         drop = "xocean:tube_skeleton",\r
462         sounds = default.node_sound_stone_defaults(),\r
463 })\r
464 minetest.override_item("default:coral_cyan", {\r
465         description = "Tube Coral",\r
466         drawtype = "plantlike_rooted",\r
467         waving = 1,\r
468         paramtype = "light",\r
469         tiles = {"xocean_coral_tube.png"},\r
470         special_tiles = {{name = "xocean_tube.png", tileable_vertical = true}},\r
471         inventory_image = "xocean_tube.png",\r
472         groups = {snappy = 3},\r
473         selection_box = {\r
474                 type = "fixed",\r
475                 fixed = {\r
476                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
477                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
478                 },\r
479         },\r
480         drop = "xocean:tube_skeleton",\r
481         node_dig_prediction = "xocean:tube_block",\r
482         node_placement_prediction = "",\r
483         sounds = default.node_sound_stone_defaults({\r
484                 dig = {name = "default_dig_snappy", gain = 0.2},\r
485                 dug = {name = "default_grass_footstep", gain = 0.25},\r
486         }),\r
487 \r
488         on_place = function(itemstack, placer, pointed_thing)\r
489                 if pointed_thing.type ~= "node" or not placer then\r
490                         return itemstack\r
491                 end\r
492 \r
493                 local player_name = placer:get_player_name()\r
494                 local pos_under = pointed_thing.under\r
495                 local pos_above = pointed_thing.above\r
496 \r
497                 if minetest.get_node(pos_under).name ~= "xocean:tube_block" or\r
498                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
499                         return itemstack\r
500                 end\r
501 \r
502                 if minetest.is_protected(pos_under, player_name) or\r
503                                 minetest.is_protected(pos_above, player_name) then\r
504                         minetest.chat_send_player(player_name, "Node is protected")\r
505                         minetest.record_protection_violation(pos_under, player_name)\r
506                         return itemstack\r
507                 end\r
508 \r
509                 minetest.set_node(pos_under, {name = "default:cyan_pink"})\r
510                 if not (creative and creative.is_enabled_for(player_name)) then\r
511                         itemstack:take_item()\r
512                 end\r
513 \r
514                 return itemstack\r
515         end,\r
516 \r
517         after_destruct  = function(pos, oldnode)\r
518                 minetest.set_node(pos, {name = "xocean:tube_block"})\r
519         end,\r
520 })\r
521 minetest.register_node("xocean:tube_skeleton", {\r
522         description = "Tube Coral Skeleton",\r
523         tiles = {"xocean_coral_tube_skeleton.png"},\r
524         groups = {cracky = 3},\r
525         sounds = default.node_sound_stone_defaults(),\r
526 })\r
527 minetest.register_node("xocean:tube_bubble", {\r
528         description = "Tube Coral Skeleton",\r
529         drawtype = "plantlike_rooted",\r
530         waving = 1,\r
531         paramtype = "light",\r
532         tiles = {"xocean_coral_tube_skeleton.png"},\r
533         special_tiles = {{name = "xocean_tube_skeleton.png", tileable_vertical = true}},\r
534         inventory_image = "xocean_tube_skeleton.png",\r
535         groups = {snappy = 3},\r
536         selection_box = {\r
537                 type = "fixed",\r
538                 fixed = {\r
539                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
540                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
541                 },\r
542         },\r
543         node_dig_prediction = "xocean:tube_skeleton",\r
544         node_placement_prediction = "",\r
545         sounds = default.node_sound_stone_defaults({\r
546                 dig = {name = "default_dig_snappy", gain = 0.2},\r
547                 dug = {name = "default_grass_footstep", gain = 0.25},\r
548         }),\r
549 \r
550         on_place = function(itemstack, placer, pointed_thing)\r
551                 if pointed_thing.type ~= "node" or not placer then\r
552                         return itemstack\r
553                 end\r
554 \r
555                 local player_name = placer:get_player_name()\r
556                 local pos_under = pointed_thing.under\r
557                 local pos_above = pointed_thing.above\r
558 \r
559                 if minetest.get_node(pos_under).name ~= "xocean:tube_skeleton" or\r
560                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
561                         return itemstack\r
562                 end\r
563 \r
564                 if minetest.is_protected(pos_under, player_name) or\r
565                                 minetest.is_protected(pos_above, player_name) then\r
566                         minetest.chat_send_player(player_name, "Node is protected")\r
567                         minetest.record_protection_violation(pos_under, player_name)\r
568                         return itemstack\r
569                 end\r
570 \r
571                 minetest.set_node(pos_under, {name = "xocean:skeleton_tube"})\r
572                 if not (creative and creative.is_enabled_for(player_name)) then\r
573                         itemstack:take_item()\r
574                 end\r
575 \r
576                 return itemstack\r
577         end,\r
578 \r
579         after_destruct  = function(pos, oldnode)\r
580                 minetest.set_node(pos, {name = "xocean:tube_skeleton"})\r
581         end,\r
582 })\r
583 minetest.register_node("xocean:bubble_block", {\r
584         description = "Bubble Coral Block",\r
585         tiles = {"xocean_coral_bubble.png"},\r
586         groups = {cracky = 3},\r
587         drop = "xocean:bubble_skeleton",\r
588         sounds = default.node_sound_stone_defaults(),\r
589 })\r
590 minetest.register_node("xocean:bubble", {\r
591         description = "Bubble Coral",\r
592         drawtype = "plantlike_rooted",\r
593         waving = 1,\r
594         paramtype = "light",\r
595         tiles = {"xocean_coral_bubble.png"},\r
596         special_tiles = {{name = "xocean_bubble.png", tileable_vertical = true}},\r
597         inventory_image = "xocean_bubble.png",\r
598         groups = {snappy = 3},\r
599         selection_box = {\r
600                 type = "fixed",\r
601                 fixed = {\r
602                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
603                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
604                 },\r
605         },\r
606         node_dig_prediction = "xocean:bubble_block",\r
607         node_placement_prediction = "",\r
608         sounds = default.node_sound_stone_defaults({\r
609                 dig = {name = "default_dig_snappy", gain = 0.2},\r
610                 dug = {name = "default_grass_footstep", gain = 0.25},\r
611         }),\r
612 \r
613         on_place = function(itemstack, placer, pointed_thing)\r
614                 if pointed_thing.type ~= "node" or not placer then\r
615                         return itemstack\r
616                 end\r
617 \r
618                 local player_name = placer:get_player_name()\r
619                 local pos_under = pointed_thing.under\r
620                 local pos_above = pointed_thing.above\r
621 \r
622                 if minetest.get_node(pos_under).name ~= "xocean:bubble_block" or\r
623                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
624                         return itemstack\r
625                 end\r
626 \r
627                 if minetest.is_protected(pos_under, player_name) or\r
628                                 minetest.is_protected(pos_above, player_name) then\r
629                         minetest.chat_send_player(player_name, "Node is protected")\r
630                         minetest.record_protection_violation(pos_under, player_name)\r
631                         return itemstack\r
632                 end\r
633 \r
634                 minetest.set_node(pos_under, {name = "xocean:bubble"})\r
635                 if not (creative and creative.is_enabled_for(player_name)) then\r
636                         itemstack:take_item()\r
637                 end\r
638 \r
639                 return itemstack\r
640         end,\r
641 \r
642         after_destruct  = function(pos, oldnode)\r
643                 minetest.set_node(pos, {name = "xocean:bubble_block"})\r
644         end,\r
645 })\r
646 minetest.register_node("xocean:bubble_skeleton", {\r
647         description = "Bubble Coral Skeleton Block",\r
648         tiles = {"xocean_coral_bubble_skeleton.png"},\r
649         groups = {cracky = 3},\r
650         sounds = default.node_sound_stone_defaults(),\r
651 })\r
652 minetest.register_node("xocean:skeleton_bubble", {\r
653         description = "Bubble Coral Skeleton",\r
654         drawtype = "plantlike_rooted",\r
655         waving = 1,\r
656         paramtype = "light",\r
657         tiles = {"xocean_coral_bubble_skeleton.png"},\r
658         special_tiles = {{name = "xocean_bubble_skeleton.png", tileable_vertical = true}},\r
659         inventory_image = "xocean_bubble_skeleton.png",\r
660         groups = {snappy = 3},\r
661         selection_box = {\r
662                 type = "fixed",\r
663                 fixed = {\r
664                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
665                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
666                 },\r
667         },\r
668         drop = "xocean:skeleton_bubble",\r
669         node_dig_prediction = "xocean:bubble_skeleton",\r
670         node_placement_prediction = "",\r
671         sounds = default.node_sound_stone_defaults({\r
672                 dig = {name = "default_dig_snappy", gain = 0.2},\r
673                 dug = {name = "default_grass_footstep", gain = 0.25},\r
674         }),\r
675 \r
676         on_place = function(itemstack, placer, pointed_thing)\r
677                 if pointed_thing.type ~= "node" or not placer then\r
678                         return itemstack\r
679                 end\r
680 \r
681                 local player_name = placer:get_player_name()\r
682                 local pos_under = pointed_thing.under\r
683                 local pos_above = pointed_thing.above\r
684 \r
685                 if minetest.get_node(pos_under).name ~= "xocean:bubble_skeleton" or\r
686                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
687                         return itemstack\r
688                 end\r
689 \r
690                 if minetest.is_protected(pos_under, player_name) or\r
691                                 minetest.is_protected(pos_above, player_name) then\r
692                         minetest.chat_send_player(player_name, "Node is protected")\r
693                         minetest.record_protection_violation(pos_under, player_name)\r
694                         return itemstack\r
695                 end\r
696 \r
697                 minetest.set_node(pos_under, {name = "xocean:skeleton_bubble"})\r
698                 if not (creative and creative.is_enabled_for(player_name)) then\r
699                         itemstack:take_item()\r
700                 end\r
701 \r
702                 return itemstack\r
703         end,\r
704 \r
705         after_destruct  = function(pos, oldnode)\r
706                 minetest.set_node(pos, {name = "xocean:bubble_skeleton"})\r
707         end,\r
708 })\r
709 minetest.override_item("default:coral_brown", {\r
710         description = "Horn Coral Block",\r
711         tiles = {"xocean_coral_horn.png"},\r
712         groups = {cracky = 3},\r
713         drop = "default:coral_skeleton",\r
714         sounds = default.node_sound_stone_defaults(),\r
715 })\r
716 minetest.register_node("xocean:horn", {\r
717         description = "Horn Coral",\r
718         drawtype = "plantlike_rooted",\r
719         waving = 1,\r
720         paramtype = "light",\r
721         tiles = {"xocean_coral_horn.png"},\r
722         special_tiles = {{name = "xocean_horn.png", tileable_vertical = true}},\r
723         inventory_image = "xocean_horn.png",\r
724         groups = {snappy = 3},\r
725         selection_box = {\r
726                 type = "fixed",\r
727                 fixed = {\r
728                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
729                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
730                 },\r
731         },\r
732         node_dig_prediction = "xocean:horn_block",\r
733         node_placement_prediction = "",\r
734         sounds = default.node_sound_stone_defaults({\r
735                 dig = {name = "default_dig_snappy", gain = 0.2},\r
736                 dug = {name = "default_grass_footstep", gain = 0.25},\r
737         }),\r
738 \r
739         on_place = function(itemstack, placer, pointed_thing)\r
740                 if pointed_thing.type ~= "node" or not placer then\r
741                         return itemstack\r
742                 end\r
743 \r
744                 local player_name = placer:get_player_name()\r
745                 local pos_under = pointed_thing.under\r
746                 local pos_above = pointed_thing.above\r
747 \r
748                 if minetest.get_node(pos_under).name ~= "xocean:horn_block" or\r
749                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
750                         return itemstack\r
751                 end\r
752 \r
753                 if minetest.is_protected(pos_under, player_name) or\r
754                                 minetest.is_protected(pos_above, player_name) then\r
755                         minetest.chat_send_player(player_name, "Node is protected")\r
756                         minetest.record_protection_violation(pos_under, player_name)\r
757                         return itemstack\r
758                 end\r
759 \r
760                 minetest.set_node(pos_under, {name = "xocean:horn"})\r
761                 if not (creative and creative.is_enabled_for(player_name)) then\r
762                         itemstack:take_item()\r
763                 end\r
764 \r
765                 return itemstack\r
766         end,\r
767 \r
768         after_destruct  = function(pos, oldnode)\r
769                 minetest.set_node(pos, {name = "xocean:horn_block"})\r
770         end,\r
771 })\r
772 minetest.override_item("default:coral_skeleton", {\r
773         description = "Horn Coral Skeleton Block",\r
774         tiles = {"xocean_coral_horn_skeleton.png"},\r
775         groups = {cracky = 3},\r
776         sounds = default.node_sound_stone_defaults(),\r
777 })\r
778 minetest.register_node("xocean:skeleton_horn", {\r
779         description = "Horn Coral Skeleton",\r
780         drawtype = "plantlike_rooted",\r
781         waving = 1,\r
782         paramtype = "light",\r
783         tiles = {"xocean_coral_horn_skeleton.png"},\r
784         special_tiles = {{name = "xocean_horn_skeleton.png", tileable_vertical = true}},\r
785         inventory_image = "xocean_horn_skeleton.png",\r
786         groups = {snappy = 3},\r
787         selection_box = {\r
788                 type = "fixed",\r
789                 fixed = {\r
790                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
791                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
792                 },\r
793         },\r
794         drop = "xocean:skeleton:horn",\r
795         node_dig_prediction = "xocean:horn_skeleton",\r
796         node_placement_prediction = "",\r
797         sounds = default.node_sound_stone_defaults({\r
798                 dig = {name = "default_dig_snappy", gain = 0.2},\r
799                 dug = {name = "default_grass_footstep", gain = 0.25},\r
800         }),\r
801 \r
802         on_place = function(itemstack, placer, pointed_thing)\r
803                 if pointed_thing.type ~= "node" or not placer then\r
804                         return itemstack\r
805                 end\r
806 \r
807                 local player_name = placer:get_player_name()\r
808                 local pos_under = pointed_thing.under\r
809                 local pos_above = pointed_thing.above\r
810 \r
811                 if minetest.get_node(pos_under).name ~= "xocean:horn_skeleton" or\r
812                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
813                         return itemstack\r
814                 end\r
815 \r
816                 if minetest.is_protected(pos_under, player_name) or\r
817                                 minetest.is_protected(pos_above, player_name) then\r
818                         minetest.chat_send_player(player_name, "Node is protected")\r
819                         minetest.record_protection_violation(pos_under, player_name)\r
820                         return itemstack\r
821                 end\r
822 \r
823                 minetest.set_node(pos_under, {name = "xocean:skeleton_horn"})\r
824                 if not (creative and creative.is_enabled_for(player_name)) then\r
825                         itemstack:take_item()\r
826                 end\r
827 \r
828                 return itemstack\r
829         end,\r
830 \r
831         after_destruct  = function(pos, oldnode)\r
832                 minetest.set_node(pos, {name = "xocean:horn_skeleton"})\r
833         end,\r
834 })\r
835 minetest.override_item("default:coral_orange", {\r
836         description = "Fire Coral Block",\r
837         tiles = {"xocean_coral_fire.png"},\r
838         groups = {cracky = 3},\r
839         drop = "xocean:fire_skeleton",\r
840         sounds = default.node_sound_stone_defaults(),\r
841 })\r
842 minetest.register_node("xocean:fire", {\r
843         description = "Fire Coral",\r
844         drawtype = "plantlike_rooted",\r
845         waving = 1,\r
846         paramtype = "light",\r
847         tiles = {"xocean_coral_fire.png"},\r
848         special_tiles = {{name = "xocean_fire.png", tileable_vertical = true}},\r
849         inventory_image = "xocean_fire.png",\r
850         groups = {snappy = 3},\r
851         selection_box = {\r
852                 type = "fixed",\r
853                 fixed = {\r
854                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
855                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
856                 },\r
857         },\r
858         drop = "xocean:skeleton_fire",\r
859         node_dig_prediction = "xocean:default:coral_orange",\r
860         node_placement_prediction = "",\r
861         sounds = default.node_sound_stone_defaults({\r
862                 dig = {name = "default_dig_snappy", gain = 0.2},\r
863                 dug = {name = "default_grass_footstep", gain = 0.25},\r
864         }),\r
865 \r
866         on_place = function(itemstack, placer, pointed_thing)\r
867                 if pointed_thing.type ~= "node" or not placer then\r
868                         return itemstack\r
869                 end\r
870 \r
871                 local player_name = placer:get_player_name()\r
872                 local pos_under = pointed_thing.under\r
873                 local pos_above = pointed_thing.above\r
874 \r
875                 if minetest.get_node(pos_under).name ~= "default:coral_orange" or\r
876                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
877                         return itemstack\r
878                 end\r
879 \r
880                 if minetest.is_protected(pos_under, player_name) or\r
881                                 minetest.is_protected(pos_above, player_name) then\r
882                         minetest.chat_send_player(player_name, "Node is protected")\r
883                         minetest.record_protection_violation(pos_under, player_name)\r
884                         return itemstack\r
885                 end\r
886 \r
887                 minetest.set_node(pos_under, {name = "xocean:fire"})\r
888                 if not (creative and creative.is_enabled_for(player_name)) then\r
889                         itemstack:take_item()\r
890                 end\r
891 \r
892                 return itemstack\r
893         end,\r
894 \r
895         after_destruct  = function(pos, oldnode)\r
896                 minetest.set_node(pos, {name = "default:coral_orange"})\r
897         end,\r
898 })\r
899 minetest.register_node("xocean:fire_skeleton", {\r
900         description = "Fire Coral Skeleton Block",\r
901         tiles = {"xocean_coral_fire_skeleton.png"},\r
902         groups = {cracky = 3},\r
903         sounds = default.node_sound_stone_defaults(),\r
904 })\r
905 minetest.register_node("xocean:skeleton_fire", {\r
906         description = "Fire Coral Skeleton",\r
907         drawtype = "plantlike_rooted",\r
908         waving = 1,\r
909         paramtype = "light",\r
910         tiles = {"xocean_coral_fire_skeleton.png"},\r
911         special_tiles = {{name = "xocean_fire_skeleton.png", tileable_vertical = true}},\r
912         inventory_image = "xocean_fire_skeleton.png",\r
913         groups = {snappy = 3},\r
914         selection_box = {\r
915                 type = "fixed",\r
916                 fixed = {\r
917                                 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},\r
918                                 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},\r
919                 },\r
920         },\r
921         node_dig_prediction = "xocean:fire_skeleton",\r
922         node_placement_prediction = "",\r
923         sounds = default.node_sound_stone_defaults({\r
924                 dig = {name = "default_dig_snappy", gain = 0.2},\r
925                 dug = {name = "default_grass_footstep", gain = 0.25},\r
926         }),\r
927 \r
928         on_place = function(itemstack, placer, pointed_thing)\r
929                 if pointed_thing.type ~= "node" or not placer then\r
930                         return itemstack\r
931                 end\r
932 \r
933                 local player_name = placer:get_player_name()\r
934                 local pos_under = pointed_thing.under\r
935                 local pos_above = pointed_thing.above\r
936 \r
937                 if minetest.get_node(pos_under).name ~= "xocean:fire_skeleton" or\r
938                                 minetest.get_node(pos_above).name ~= "default:water_source" then\r
939                         return itemstack\r
940                 end\r
941 \r
942                 if minetest.is_protected(pos_under, player_name) or\r
943                                 minetest.is_protected(pos_above, player_name) then\r
944                         minetest.chat_send_player(player_name, "Node is protected")\r
945                         minetest.record_protection_violation(pos_under, player_name)\r
946                         return itemstack\r
947                 end\r
948 \r
949                 minetest.set_node(pos_under, {name = "xocean:skeleton_fire"})\r
950                 if not (creative and creative.is_enabled_for(player_name)) then\r
951                         itemstack:take_item()\r
952                 end\r
953 \r
954                 return itemstack\r
955         end,\r
956 \r
957         after_destruct  = function(pos, oldnode)\r
958                 minetest.set_node(pos, {name = "xocean:fire_skeleton"})\r
959         end,\r
960 })\r
961 ---Mapgen\r
962 minetest.register_decoration({\r
963                 name = "xocean:brain",\r
964                 deco_type = "schematic",\r
965                 place_on = {"default:sand"},\r
966                 place_offset_y = -1,\r
967                 sidelen = 2,\r
968                 noise_params = {\r
969                         offset = 0.0001,\r
970                         scale = 0.0001,\r
971                         spread = {x = 100000, y = 100000, z = 100000},\r
972                         seed = 87112,\r
973                         octaves = 20,\r
974                         persist = 0.7\r
975                 },\r
976                 biomes = {\r
977                         "taiga_ocean",\r
978                         "snowy_grassland_ocean",\r
979                         "grassland_ocean",\r
980                         "coniferous_forest_ocean",\r
981                         "deciduous_forest_ocean",\r
982                         "sandstone_desert_ocean",\r
983                         "cold_desert_ocean"},\r
984                 y_max = -10,\r
985                 y_min = -40,\r
986                 flags = "force_placement",\r
987                 schematic = minetest.get_modpath("xocean") .. "/schems/brain.mts",\r
988                 param2 = 48,\r
989                 param2_max = 96,\r
990         })\r
991 minetest.register_decoration({\r
992                 name = "xocean:horn",\r
993                 deco_type = "schematic",\r
994                 place_on = {"default:sand"},\r
995                 place_offset_y = -1,\r
996                 sidelen = 2,\r
997                 noise_params = {\r
998                         offset = 0.0001,\r
999                         scale = 0.0001,\r
1000                         spread = {x = 100000, y = 100000, z = 100000},\r
1001                         seed = 87112,\r
1002                         octaves = 20,\r
1003                         persist = 0.7\r
1004                 },\r
1005                 biomes = {\r
1006                         "taiga_ocean",\r
1007                         "snowy_grassland_ocean",\r
1008                         "grassland_ocean",\r
1009                         "coniferous_forest_ocean",\r
1010                         "deciduous_forest_ocean",\r
1011                         "sandstone_desert_ocean",\r
1012                         "cold_desert_ocean"},\r
1013                 y_max = -10,\r
1014                 y_min = -40,\r
1015                 flags = "force_placement",\r
1016                 schematic = minetest.get_modpath("xocean") .. "/schems/horn.mts",\r
1017                 param2 = 48,\r
1018                 param2_max = 96,\r
1019         })\r
1020 minetest.register_decoration({\r
1021                 name = "xocean:bubble",\r
1022                 deco_type = "schematic",\r
1023                 place_on = {"default:sand"},\r
1024                 place_offset_y = -1,\r
1025                 sidelen = 2,\r
1026                 noise_params = {\r
1027                         offset = 0.0001,\r
1028                         scale = 0.0001,\r
1029                         spread = {x = 100000, y = 100000, z = 100000},\r
1030                         seed = 87112,\r
1031                         octaves = 20,\r
1032                         persist = 0.7\r
1033                 },\r
1034                 biomes = {\r
1035                         "taiga_ocean",\r
1036                         "snowy_grassland_ocean",\r
1037                         "grassland_ocean",\r
1038                         "coniferous_forest_ocean",\r
1039                         "deciduous_forest_ocean",\r
1040                         "sandstone_desert_ocean",\r
1041                         "cold_desert_ocean"},\r
1042                 y_max = -10,\r
1043                 y_min = -40,\r
1044                 flags = "force_placement",\r
1045                 schematic = minetest.get_modpath("xocean") .. "/schems/bubble.mts",\r
1046                 param2 = 48,\r
1047                 param2_max = 96,\r
1048         })\r
1049 minetest.register_decoration({\r
1050                 name = "xocean:tube",\r
1051                 deco_type = "schematic",\r
1052                 place_on = {"default:sand"},\r
1053                 place_offset_y = -1,\r
1054                 sidelen = 2,\r
1055                 noise_params = {\r
1056                         offset = 0.0001,\r
1057                         scale = 0.0001,\r
1058                         spread = {x = 100000, y = 100000, z = 100000},\r
1059                         seed = 87112,\r
1060                         octaves = 20,\r
1061                         persist = 0.7\r
1062                 },\r
1063                 biomes = {\r
1064                         "taiga_ocean",\r
1065                         "snowy_grassland_ocean",\r
1066                         "grassland_ocean",\r
1067                         "coniferous_forest_ocean",\r
1068                         "deciduous_forest_ocean",\r
1069                         "sandstone_desert_ocean",\r
1070                         "cold_desert_ocean"},\r
1071                 y_max = -10,\r
1072                 y_min = -40,\r
1073                 flags = "force_placement",\r
1074                 schematic = minetest.get_modpath("xocean") .. "/schems/tube.mts",\r
1075                 param2 = 48,\r
1076                 param2_max = 96,\r
1077         })\r
1078 minetest.register_decoration({\r
1079                 name = "xocean:fire",\r
1080                 deco_type = "schematic",\r
1081                 place_on = {"default:sand"},\r
1082                 place_offset_y = -1,\r
1083                 sidelen = 2,\r
1084                 noise_params = {\r
1085                         offset = 0.0001,\r
1086                         scale = 0.0001,\r
1087                         spread = {x = 100000, y = 100000, z = 100000},\r
1088                         seed = 87112,\r
1089                         octaves = 20,\r
1090                         persist = 0.7\r
1091                 },\r
1092                 biomes = {\r
1093                         "taiga_ocean",\r
1094                         "snowy_grassland_ocean",\r
1095                         "grassland_ocean",\r
1096                         "coniferous_forest_ocean",\r
1097                         "deciduous_forest_ocean",\r
1098                         "sandstone_desert_ocean",\r
1099                         "cold_desert_ocean"},\r
1100                 y_max = -10,\r
1101                 y_min = -40,\r
1102                 flags = "force_placement",\r
1103                 schematic = minetest.get_modpath("xocean") .. "/schems/fire.mts",\r
1104                 param2 = 48,\r
1105                 param2_max = 96,\r
1106         })\r
1107 minetest.register_decoration({\r
1108                 name = "xocean:brain2",\r
1109                 deco_type = "schematic",\r
1110                 place_on = {"default:sand"},\r
1111                 place_offset_y = -1,\r
1112                 sidelen = 2,\r
1113                 noise_params = {\r
1114                         offset = 0.0001,\r
1115                         scale = 0.001,\r
1116                         spread = {x = 100000, y = 100000, z = 100000},\r
1117                         seed = 87112,\r
1118                         octaves = 28,\r
1119                         persist = 0.7\r
1120                 },\r
1121                 biomes = {\r
1122                         "taiga_ocean",\r
1123                         "snowy_grassland_ocean",\r
1124                         "grassland_ocean",\r
1125                         "coniferous_forest_ocean",\r
1126                         "deciduous_forest_ocean",\r
1127                         "sandstone_desert_ocean",\r
1128                         "cold_desert_ocean"},\r
1129                 y_max = -10,\r
1130                 y_min = -40,\r
1131                 flags = "force_placement",\r
1132                 schematic = minetest.get_modpath("xocean") .. "/schems/brain2.mts",\r
1133                 param2 = 48,\r
1134                 param2_max = 96,\r
1135         })\r
1136 minetest.register_decoration({\r
1137                 name = "xocean:horn2",\r
1138                 deco_type = "schematic",\r
1139                 place_on = {"default:sand"},\r
1140                 place_offset_y = -1,\r
1141                 sidelen = 2,\r
1142                 noise_params = {\r
1143                         offset = 0.0001,\r
1144                         scale = 0.001,\r
1145                         spread = {x = 100000, y = 100000, z = 100000},\r
1146                         seed = 87112,\r
1147                         octaves = 28,\r
1148                         persist = 0.7\r
1149                 },\r
1150                 biomes = {\r
1151                         "taiga_ocean",\r
1152                         "snowy_grassland_ocean",\r
1153                         "grassland_ocean",\r
1154                         "coniferous_forest_ocean",\r
1155                         "deciduous_forest_ocean",\r
1156                         "sandstone_desert_ocean",\r
1157                         "cold_desert_ocean"},\r
1158                 y_max = -10,\r
1159                 y_min = -40,\r
1160                 flags = "force_placement",\r
1161                 schematic = minetest.get_modpath("xocean") .. "/schems/horn2.mts",\r
1162                 param2 = 48,\r
1163                 param2_max = 96,\r
1164         })\r
1165 minetest.register_decoration({\r
1166                 name = "xocean:bubble2",\r
1167                 deco_type = "schematic",\r
1168                 place_on = {"default:sand"},\r
1169                 place_offset_y = -1,\r
1170                 sidelen = 2,\r
1171                 noise_params = {\r
1172                         offset = 0.0001,\r
1173                         scale = 0.001,\r
1174                         spread = {x = 100000, y = 100000, z = 100000},\r
1175                         seed = 87112,\r
1176                         octaves = 28,\r
1177                         persist = 0.7\r
1178                 },\r
1179                 biomes = {\r
1180                         "taiga_ocean",\r
1181                         "snowy_grassland_ocean",\r
1182                         "grassland_ocean",\r
1183                         "coniferous_forest_ocean",\r
1184                         "deciduous_forest_ocean",\r
1185                         "sandstone_desert_ocean",\r
1186                         "cold_desert_ocean"},\r
1187                 y_max = -10,\r
1188                 y_min = -40,\r
1189                 flags = "force_placement",\r
1190                 schematic = minetest.get_modpath("xocean") .. "/schems/bubble2.mts",\r
1191                 param2 = 48,\r
1192                 param2_max = 96,\r
1193         })\r
1194 minetest.register_decoration({\r
1195                 name = "xocean:tube2",\r
1196                 deco_type = "schematic",\r
1197                 place_on = {"default:sand"},\r
1198                 place_offset_y = -1,\r
1199                 sidelen = 2,\r
1200                 noise_params = {\r
1201                         offset = 0.0001,\r
1202                         scale = 0.001,\r
1203                         spread = {x = 100000, y = 100000, z = 100000},\r
1204                         seed = 87112,\r
1205                         octaves = 28,\r
1206                         persist = 0.7\r
1207                 },\r
1208                 biomes = {\r
1209                         "taiga_ocean",\r
1210                         "snowy_grassland_ocean",\r
1211                         "grassland_ocean",\r
1212                         "coniferous_forest_ocean",\r
1213                         "deciduous_forest_ocean",\r
1214                         "sandstone_desert_ocean",\r
1215                         "cold_desert_ocean"},\r
1216                 y_max = -10,\r
1217                 y_min = -40,\r
1218                 flags = "force_placement",\r
1219                 schematic = minetest.get_modpath("xocean") .. "/schems/tube2.mts",\r
1220                 param2 = 48,\r
1221                 param2_max = 96,\r
1222         })\r
1223 minetest.register_decoration({\r
1224                 name = "xocean:fire2",\r
1225                 deco_type = "schematic",\r
1226                 place_on = {"default:sand"},\r
1227                 place_offset_y = -1,\r
1228                 sidelen = 2,\r
1229                 noise_params = {\r
1230                         offset = 0.0001,\r
1231                         scale = 0.001,\r
1232                         spread = {x = 100000, y = 100000, z = 100000},\r
1233                         seed = 87112,\r
1234                         octaves = 12,\r
1235                         persist = 0.7\r
1236                 },\r
1237                 biomes = {\r
1238                         "taiga_ocean",\r
1239                         "snowy_grassland_ocean",\r
1240                         "grassland_ocean",\r
1241                         "coniferous_forest_ocean",\r
1242                         "deciduous_forest_ocean",\r
1243                         "sandstone_desert_ocean",\r
1244                         "cold_desert_ocean"},\r
1245                 y_max = -10,\r
1246                 y_min = -40,\r
1247                 flags = "force_placement",\r
1248                 schematic = minetest.get_modpath("xocean") .. "/schems/fire2.mts",\r
1249                 param2 = 48,\r
1250                 param2_max = 96,\r
1251         })\r
1252 minetest.register_decoration({\r
1253                 name = "xocean:tube3",\r
1254                 deco_type = "schematic",\r
1255                 place_on = {"default:sand"},\r
1256                 place_offset_y = -1,\r
1257                 sidelen = 1  ,\r
1258                 noise_params = {\r
1259                         offset = 0.0001,\r
1260                         scale = 0.000001,\r
1261                         spread = {x = 100000, y = 100000, z = 100000},\r
1262                         seed = 87112,\r
1263                         octaves = 20,\r
1264                         persist = 0.7\r
1265                 },\r
1266                 biomes = {\r
1267                         "taiga_ocean",\r
1268                         "snowy_grassland_ocean",\r
1269                         "grassland_ocean",\r
1270                         "coniferous_forest_ocean",\r
1271                         "deciduous_forest_ocean",\r
1272                         "sandstone_desert_ocean",\r
1273                         "cold_desert_ocean"},\r
1274                 y_max = -10,\r
1275                 y_min = -40,\r
1276                 flags = "force_placement",\r
1277                 schematic = minetest.get_modpath("xocean") .. "/schems/tube3.mts",\r
1278                 param2 = 48,\r
1279                 param2_max = 96,\r
1280         })\r
1281 minetest.register_decoration({\r
1282                 name = "xocean:brain3",\r
1283                 deco_type = "schematic",\r
1284                 place_on = {"default:sand"},\r
1285                 place_offset_y = -1,\r
1286                 sidelen = 1,\r
1287                 noise_params = {\r
1288                         offset = 0.0001,\r
1289                         scale = 0.000001,\r
1290                         spread = {x = 100000, y = 100000, z = 100000},\r
1291                         seed = 87112,\r
1292                         octaves = 25,\r
1293                         persist = 0.7\r
1294                 },\r
1295                 biomes = {\r
1296                         "taiga_ocean",\r
1297                         "snowy_grassland_ocean",\r
1298                         "grassland_ocean",\r
1299                         "coniferous_forest_ocean",\r
1300                         "deciduous_forest_ocean",\r
1301                         "sandstone_desert_ocean",\r
1302                         "cold_desert_ocean"},\r
1303                 y_max = -10,\r
1304                 y_min = -40,\r
1305                 flags = "force_placement",\r
1306                 schematic = minetest.get_modpath("xocean") .. "/schems/brain3.mts",\r
1307                 param2 = 48,\r
1308                 param2_max = 96,\r
1309         })\r
1310 minetest.register_decoration({\r
1311                 name = "xocean:brain4",\r
1312                 deco_type = "schematic",\r
1313                 place_on = {"default:sand"},\r
1314                 place_offset_y = -1,\r
1315                 sidelen = 1,\r
1316                 noise_params = {\r
1317                         offset = 0.0001,\r
1318                         scale = 0.0000001,\r
1319                         spread = {x = 100000, y = 100000, z = 100000},\r
1320                         seed = 87112,\r
1321                         octaves = 25,\r
1322                         persist = 0.7\r
1323                 },\r
1324                 biomes = {\r
1325                         "taiga_ocean",\r
1326                         "snowy_grassland_ocean",\r
1327                         "grassland_ocean",\r
1328                         "coniferous_forest_ocean",\r
1329                         "deciduous_forest_ocean",\r
1330                         "sandstone_desert_ocean",\r
1331                         "cold_desert_ocean"},\r
1332                 y_max = -15,\r
1333                 y_min = -40,\r
1334                 flags = "force_placement",\r
1335                 schematic = minetest.get_modpath("xocean") .. "/schems/brain4.mts",\r
1336                 param2 = 48,\r
1337                 param2_max = 96,\r
1338         })\r
1339         minetest.register_decoration({\r
1340                 name = "xocean:seagrass",\r
1341                 deco_type = "simple",\r
1342                 place_on = {"default:sand"},\r
1343                 place_offset_y = -1,\r
1344                 sidelen = 16,\r
1345                 noise_params = {\r
1346                         offset = -0.04,\r
1347                         scale = 0.4,\r
1348                         spread = {x = 200, y = 200, z = 200},\r
1349                         seed = 87112,\r
1350                         octaves = 3,\r
1351                         persist = 0.7\r
1352                 },\r
1353                 biomes = {\r
1354                         "taiga_ocean",\r
1355                         "snowy_grassland_ocean",\r
1356                         "grassland_ocean",\r
1357                         "coniferous_forest_ocean",\r
1358                         "deciduous_forest_ocean",\r
1359                         "sandstone_desert_ocean",\r
1360                         "cold_desert_ocean"},\r
1361                 y_max = -5,\r
1362                 y_min = -50,\r
1363                 flags = "force_placement",\r
1364                 decoration = "xocean:seagrass",\r
1365                 param2 = 48,\r
1366                 param2_max = 96,\r
1367         })\r
1368         minetest.register_decoration({\r
1369                 name = "xocean:fire_plant_dead",\r
1370                 deco_type = "simple",\r
1371                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1372                 place_offset_y = -1,\r
1373                 sidelen = 16,\r
1374                 noise_params = {\r
1375                         offset = -0.04,\r
1376                         scale = 1.0,\r
1377                         spread = {x = 20, y = 20, z = 20},\r
1378                         seed = 87112,\r
1379                         octaves = 3,\r
1380                         persist = 0.7\r
1381                 },\r
1382                 biomes = {\r
1383                         "taiga_ocean",\r
1384                         "snowy_grassland_ocean",\r
1385                         "grassland_ocean",\r
1386                         "coniferous_forest_ocean",\r
1387                         "deciduous_forest_ocean",\r
1388                         "sandstone_desert_ocean",\r
1389                         "cold_desert_ocean"},\r
1390                 y_max = -5,\r
1391                 y_min = -50,\r
1392                 flags = "force_placement",\r
1393                 decoration = "xocean:skeleton_fire",\r
1394                 param2 = 48,\r
1395                 param2_max = 96,\r
1396         })\r
1397         minetest.register_decoration({\r
1398                 name = "xocean:horn_plant_dead",\r
1399                 deco_type = "simple",\r
1400                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1401                 place_offset_y = -1,\r
1402                 sidelen = 16,\r
1403                 noise_params = {\r
1404                         offset = -0.04,\r
1405                         scale = 1.0,\r
1406                         spread = {x = 20, y = 20, z = 20},\r
1407                         seed = 87112,\r
1408                         octaves = 3,\r
1409                         persist = 0.7\r
1410                 },\r
1411                 biomes = {\r
1412                         "taiga_ocean",\r
1413                         "snowy_grassland_ocean",\r
1414                         "grassland_ocean",\r
1415                         "coniferous_forest_ocean",\r
1416                         "deciduous_forest_ocean",\r
1417                         "sandstone_desert_ocean",\r
1418                         "cold_desert_ocean"},\r
1419                 y_max = -5,\r
1420                 y_min = -50,\r
1421                 flags = "force_placement",\r
1422                 decoration = "xocean:skeleton_horn",\r
1423                 param2 = 48,\r
1424                 param2_max = 96,\r
1425         })\r
1426         minetest.register_decoration({\r
1427                 name = "xocean:bubble_plant_skeleton",\r
1428                 deco_type = "simple",\r
1429                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1430                 place_offset_y = -1,\r
1431                 sidelen = 16,\r
1432                 noise_params = {\r
1433                         offset = -0.04,\r
1434                         scale = 1.0,\r
1435                         spread = {x = 20, y = 20, z = 20},\r
1436                         seed = 87112,\r
1437                         octaves = 3,\r
1438                         persist = 0.7\r
1439                 },\r
1440                 biomes = {\r
1441                         "taiga_ocean",\r
1442                         "snowy_grassland_ocean",\r
1443                         "grassland_ocean",\r
1444                         "coniferous_forest_ocean",\r
1445                         "deciduous_forest_ocean",\r
1446                         "sandstone_desert_ocean",\r
1447                         "cold_desert_ocean"},\r
1448                 y_max = -5,\r
1449                 y_min = -50,\r
1450                 flags = "force_placement",\r
1451                 decoration = "xocean:skeleton_bubble",\r
1452                 param2 = 48,\r
1453                 param2_max = 96,\r
1454         })\r
1455         minetest.register_decoration({\r
1456                 name = "xocean:brain_plant_skeleton",\r
1457                 deco_type = "simple",\r
1458                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1459                 place_offset_y = -1,\r
1460                 sidelen = 16,\r
1461                 noise_params = {\r
1462                         offset = -0.04,\r
1463                         scale = 1.0,\r
1464                         spread = {x = 20, y = 20, z = 20},\r
1465                         seed = 87112,\r
1466                         octaves = 3,\r
1467                         persist = 0.7\r
1468                 },\r
1469                 biomes = {\r
1470                         "taiga_ocean",\r
1471                         "snowy_grassland_ocean",\r
1472                         "grassland_ocean",\r
1473                         "coniferous_forest_ocean",\r
1474                         "deciduous_forest_ocean",\r
1475                         "sandstone_desert_ocean",\r
1476                         "cold_desert_ocean"},\r
1477                 y_max = -5,\r
1478                 y_min = -50,\r
1479                 flags = "force_placement",\r
1480                 decoration = "xocean:skeleton_brain",\r
1481                 param2 = 48,\r
1482                 param2_max = 96,\r
1483         })\r
1484         minetest.register_decoration({\r
1485                 name = "xocean:tube_plant",\r
1486                 deco_type = "simple",\r
1487                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1488                 place_offset_y = -1,\r
1489                 sidelen = 16,\r
1490                 noise_params = {\r
1491                         offset = -0.04,\r
1492                         scale = 1.0,\r
1493                         spread = {x = 20, y = 20, z = 20},\r
1494                         seed = 87112,\r
1495                         octaves = 3,\r
1496                         persist = 0.7\r
1497                 },\r
1498                 biomes = {\r
1499                         "taiga_ocean",\r
1500                         "snowy_grassland_ocean",\r
1501                         "grassland_ocean",\r
1502                         "coniferous_forest_ocean",\r
1503                         "deciduous_forest_ocean",\r
1504                         "sandstone_desert_ocean",\r
1505                         "cold_desert_ocean"},\r
1506                 y_max = -5,\r
1507                 y_min = -50,\r
1508                 flags = "force_placement",\r
1509                 decoration = "xocean:skeleton_tube",\r
1510                 param2 = 48,\r
1511                 param2_max = 96,\r
1512         })\r
1513         minetest.register_decoration({\r
1514                 name = "xocean:fire_plant",\r
1515                 deco_type = "simple",\r
1516                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1517                 place_offset_y = -1,\r
1518                 sidelen = 16,\r
1519                 noise_params = {\r
1520                         offset = -0.04,\r
1521                         scale = 1.0,\r
1522                         spread = {x = 20, y = 20, z = 20},\r
1523                         seed = 87112,\r
1524                         octaves = 3,\r
1525                         persist = 0.7\r
1526                 },\r
1527                 biomes = {\r
1528                         "taiga_ocean",\r
1529                         "snowy_grassland_ocean",\r
1530                         "grassland_ocean",\r
1531                         "coniferous_forest_ocean",\r
1532                         "deciduous_forest_ocean",\r
1533                         "sandstone_desert_ocean",\r
1534                         "cold_desert_ocean"},\r
1535                 y_max = -5,\r
1536                 y_min = -50,\r
1537                 flags = "force_placement",\r
1538                 decoration = "xocean:fire",\r
1539                 param2 = 48,\r
1540                 param2_max = 96,\r
1541         })\r
1542         minetest.register_decoration({\r
1543                 name = "xocean:horn_plant",\r
1544                 deco_type = "simple",\r
1545                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1546                 place_offset_y = -1,\r
1547                 sidelen = 16,\r
1548                 noise_params = {\r
1549                         offset = -0.04,\r
1550                         scale = 1.0,\r
1551                         spread = {x = 20, y = 20, z = 20},\r
1552                         seed = 87112,\r
1553                         octaves = 3,\r
1554                         persist = 0.7\r
1555                 },\r
1556                 biomes = {\r
1557                         "taiga_ocean",\r
1558                         "snowy_grassland_ocean",\r
1559                         "grassland_ocean",\r
1560                         "coniferous_forest_ocean",\r
1561                         "deciduous_forest_ocean",\r
1562                         "sandstone_desert_ocean",\r
1563                         "cold_desert_ocean"},\r
1564                 y_max = -5,\r
1565                 y_min = -50,\r
1566                 flags = "force_placement",\r
1567                 decoration = "xocean:horn",\r
1568                 param2 = 48,\r
1569                 param2_max = 96,\r
1570         })\r
1571         minetest.register_decoration({\r
1572                 name = "xocean:bubble_plant",\r
1573                 deco_type = "simple",\r
1574                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1575                 place_offset_y = -1,\r
1576                 sidelen = 16,\r
1577                 noise_params = {\r
1578                         offset = -0.04,\r
1579                         scale = 1.0,\r
1580                         spread = {x = 20, y = 20, z = 20},\r
1581                         seed = 87112,\r
1582                         octaves = 3,\r
1583                         persist = 0.7\r
1584                 },\r
1585                 biomes = {\r
1586                         "taiga_ocean",\r
1587                         "snowy_grassland_ocean",\r
1588                         "grassland_ocean",\r
1589                         "coniferous_forest_ocean",\r
1590                         "deciduous_forest_ocean",\r
1591                         "sandstone_desert_ocean",\r
1592                         "cold_desert_ocean"},\r
1593                 y_max = -5,\r
1594                 y_min = -50,\r
1595                 flags = "force_placement",\r
1596                 decoration = "xocean:bubble",\r
1597                 param2 = 48,\r
1598                 param2_max = 96,\r
1599         })\r
1600         minetest.register_decoration({\r
1601                 name = "xocean:brain_plant",\r
1602                 deco_type = "simple",\r
1603                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1604                 place_offset_y = -1,\r
1605                 sidelen = 16,\r
1606                 noise_params = {\r
1607                         offset = -0.04,\r
1608                         scale = 1.0,\r
1609                         spread = {x = 20, y = 20, z = 20},\r
1610                         seed = 87112,\r
1611                         octaves = 3,\r
1612                         persist = 0.7\r
1613                 },\r
1614                 biomes = {\r
1615                         "taiga_ocean",\r
1616                         "snowy_grassland_ocean",\r
1617                         "grassland_ocean",\r
1618                         "coniferous_forest_ocean",\r
1619                         "deciduous_forest_ocean",\r
1620                         "sandstone_desert_ocean",\r
1621                         "cold_desert_ocean"},\r
1622                 y_max = -5,\r
1623                 y_min = -50,\r
1624                 flags = "force_placement",\r
1625                 decoration = "default:coral_pink",\r
1626                 param2 = 48,\r
1627                 param2_max = 96,\r
1628         })\r
1629         minetest.register_decoration({\r
1630                 name = "xocean:tube_plant",\r
1631                 deco_type = "simple",\r
1632                 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},\r
1633                 place_offset_y = -1,\r
1634                 sidelen = 16,\r
1635                 noise_params = {\r
1636                         offset = -0.04,\r
1637                         scale = 1.0,\r
1638                         spread = {x = 20, y = 20, z = 20},\r
1639                         seed = 87112,\r
1640                         octaves = 3,\r
1641                         persist = 0.7\r
1642                 },\r
1643                 biomes = {\r
1644                         "taiga_ocean",\r
1645                         "snowy_grassland_ocean",\r
1646                         "grassland_ocean",\r
1647                         "coniferous_forest_ocean",\r
1648                         "deciduous_forest_ocean",\r
1649                         "sandstone_desert_ocean",\r
1650                         "cold_desert_ocean"},\r
1651                 y_max = -5,\r
1652                 y_min = -50,\r
1653                 flags = "force_placement",\r
1654                 decoration = "default:coral_cyan",\r
1655                 param2 = 48,\r
1656                 param2_max = 96,\r
1657         })\r
1658         minetest.register_decoration({\r
1659                 name = "xocean:pickle",\r
1660                 deco_type = "simple",\r
1661                 place_on = {"default:sand"},\r
1662                 place_offset_y = -1,\r
1663                 sidelen = 16,\r
1664                 noise_params = {\r
1665                         offset = -0.04,\r
1666                         scale = 0.04,\r
1667                         spread = {x = 200, y = 200, z = 200},\r
1668                         seed = 87112,\r
1669                         octaves = 3,\r
1670                         persist = 0.7\r
1671                 },\r
1672                 biomes = {\r
1673                         "taiga_ocean",\r
1674                         "snowy_grassland_ocean",\r
1675                         "grassland_ocean",\r
1676                         "coniferous_forest_ocean",\r
1677                         "deciduous_forest_ocean",\r
1678                         "sandstone_desert_ocean",\r
1679                         "cold_desert_ocean"},\r
1680                 y_max = -8,\r
1681                 y_min = -50,\r
1682                 flags = "force_placement",\r
1683                 decoration = "xocean:pickle",\r
1684                 param2 = 48,\r
1685                 param2_max = 96,\r
1686         })\r
1687 ---Mobs\r
1688 if minetest.get_modpath("mobs") then\r
1689 local l_water_level             = minetest.setting_get("water_level") - 2\r
1690         mobs:register_mob("xocean:dolphin", {\r
1691                 type = "animal",\r
1692                 attack_type = "dogfight",\r
1693                 damage = 1,\r
1694                 visual_size = {x = 15, y = 15, z= 15},\r
1695                 reach = 3,\r
1696                 hp_min = 20,\r
1697                 hp_max = 20,\r
1698                 armor = 100,\r
1699                 collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75},\r
1700                 visual = "mesh",\r
1701                 mesh = "dolphin.b3d",\r
1702                 textures = {\r
1703                         {"mobs_dolphin.png"}\r
1704                 },\r
1705                 drops = {\r
1706         {name = "mobs:meat_raw", chance = 1, min = 2, max = 4},\r
1707     },\r
1708                 makes_footstep_sound = false,\r
1709                 walk_velocity = 4,\r
1710                 run_velocity = 6,\r
1711                 fly = true,\r
1712                 fly_in = "default:water_source",\r
1713                 fall_speed = 0,\r
1714                 rotate = 90,\r
1715                 view_range = 30,\r
1716                 water_damage = 0,\r
1717                 lava_damage = 10,\r
1718                 light_damage = 0,\r
1719                 animation = {\r
1720                         speed_normal = 15,\r
1721             speed_run = 25,\r
1722                         stand_start = 40,\r
1723                         stand_end = 100,\r
1724             walk_start = 40,\r
1725             walk_end = 100,\r
1726             run_start = 40,\r
1727             run_end = 100,\r
1728                 },\r
1729         })\r
1730         mobs:spawn_specific("xocean:dolphin",   {"default:water_source"},       {"default:water_flowing","default:water_source"},       5, 20, 30, 10000, 2, -31000, l_water_level)\r
1731         mobs:register_egg("xocean:dolphin", "Dolphin", "xocean_stone.png", 1)\r
1732         \r
1733         mobs:register_mob("xocean:fish", {\r
1734                 type = "animal",\r
1735                 hp_min = 5,\r
1736                 hp_max = 5,\r
1737                 armor = 100,\r
1738                 visual_size = {x = 2, y = 2, z= 2},\r
1739                 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},\r
1740                 visual = "mesh",\r
1741                 mesh = "fishy.b3d",\r
1742                 textures = {\r
1743                         {"mobs_fishy.png"},\r
1744                         {"mobs_fishy1.png"},\r
1745                         {"mobs_fishy2.png"},\r
1746                         {"mobs_fishy3.png"}\r
1747                 },\r
1748                 drops = {\r
1749         {name = "xocean:fish_edible", chance = 1, min = 1, max = 1},\r
1750     },\r
1751                 makes_footstep_sound = false,\r
1752                 walk_velocity = 2,\r
1753                 run_velocity = 3,\r
1754                 fly = true,\r
1755                 fly_in = "default:water_source",\r
1756                 fall_speed = 0,\r
1757                 view_range = 30,\r
1758                 water_damage = 0,\r
1759                 lava_damage = 10,\r
1760                 light_damage = 0,\r
1761                 animation = {\r
1762                         speed_normal = 15,\r
1763             speed_run = 25,\r
1764                         stand_start = 40,\r
1765                         stand_end = 100,\r
1766             walk_start = 40,\r
1767             walk_end = 100,\r
1768             run_start = 40,\r
1769             run_end = 100,\r
1770                 },\r
1771         })\r
1772         mobs:spawn_specific("xocean:fish",      {"default:water_source"},       {"default:water_flowing","default:water_source"},       2, 20, 30, 10000, 5, -31000, l_water_level)\r
1773         mobs:register_egg("xocean:fish", "Tropical Fish (Kob)", "xocean_fish.png", 0)\r
1774 mobs:register_mob("xocean:fish2", {\r
1775                 type = "animal",\r
1776                 hp_min = 5,\r
1777                 hp_max = 5,\r
1778                 armor = 100,\r
1779                 visual_size = {x = 2, y = 2, z= 2},\r
1780                 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},\r
1781                 visual = "mesh",\r
1782                 mesh = "fishy.b3d",\r
1783                 textures = {\r
1784                         {"mobs_fishy4.png"},\r
1785                         {"mobs_fishy5.png"},\r
1786                         {"mobs_fishy6.png"}\r
1787                 },\r
1788                 drops = {\r
1789         {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},\r
1790     },\r
1791                 makes_footstep_sound = false,\r
1792                 walk_velocity = 2,\r
1793                 run_velocity = 3,\r
1794                 fly = true,\r
1795                 fly_in = "default:water_source",\r
1796                 fall_speed = 0,\r
1797                 view_range = 30,\r
1798                 water_damage = 0,\r
1799                 lava_damage = 10,\r
1800                 light_damage = 0,\r
1801                 animation = {\r
1802                         speed_normal = 15,\r
1803             speed_run = 25,\r
1804                         stand_start = 40,\r
1805                         stand_end = 100,\r
1806             walk_start = 40,\r
1807             walk_end = 100,\r
1808             run_start = 40,\r
1809             run_end = 100,\r
1810                 },\r
1811         })\r
1812         mobs:spawn_specific("xocean:fish2",     {"default:water_source"},       {"default:water_flowing","default:water_source"},       2, 20, 30, 10000, 5, -31000, l_water_level)\r
1813         mobs:register_egg("xocean:fish2", "Tropical Fish (SunStreak)", "xocean_fish2.png", 0)\r
1814 mobs:register_mob("xocean:fish3", {\r
1815                 type = "animal",\r
1816                 hp_min = 5,\r
1817                 hp_max = 5,\r
1818                 armor = 100,\r
1819                 visual_size = {x = 2, y = 2, z= 2},\r
1820                 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},\r
1821                 visual = "mesh",\r
1822                 mesh = "fishy.b3d",\r
1823                 textures = {\r
1824                         {"mobs_fishy7.png"},\r
1825                         {"mobs_fishy8.png"},\r
1826                         {"mobs_fishy9.png"}\r
1827                 },\r
1828                 drops = {\r
1829         {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},\r
1830     },\r
1831                 makes_footstep_sound = false,\r
1832                 walk_velocity = 2,\r
1833                 run_velocity = 3,\r
1834                 fly = true,\r
1835                 fly_in = "default:water_source",\r
1836                 fall_speed = 0,\r
1837                 view_range = 30,\r
1838                 water_damage = 0,\r
1839                 lava_damage = 10,\r
1840                 light_damage = 0,\r
1841                 animation = {\r
1842                         speed_normal = 15,\r
1843             speed_run = 25,\r
1844                         stand_start = 40,\r
1845                         stand_end = 100,\r
1846             walk_start = 40,\r
1847             walk_end = 100,\r
1848             run_start = 40,\r
1849             run_end = 100,\r
1850                 },\r
1851         })\r
1852         mobs:spawn_specific("xocean:fish3",     {"default:water_source"},       {"default:water_flowing","default:water_source"},       2, 20, 30, 10000, 5, -31000, l_water_level)\r
1853         mobs:register_egg("xocean:fish3", "Tropical Fish (Dasher)", "xocean_fish3.png", 0)\r
1854 end\r