1 minetest.register_node("xocean:ocean_cobble", {
\r
2 description = "Ocean Cobblestone",
\r
3 tile_images = {"xocean_cobble.png"},
\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
14 minetest.register_craft({
\r
16 output = "xocean:ocean_stone",
\r
17 recipe = "xocean:ocean_cobble",
\r
20 minetest.register_ore({
\r
22 ore = "xocean:ocean_stone",
\r
23 wherein = {"default:sand"},
\r
24 clust_scarcity = 32 * 32 * 32,
\r
28 noise_threshold = 0.0,
\r
32 spread = {x = 8, y = 5, z = 8},
\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
45 minetest.register_craft({
\r
46 output = '"xocean:ocean_carved" 4',
\r
48 {'xocean:ocean_stone', 'xocean:ocean_stone',},
\r
49 {'xocean:ocean_stone', 'xocean:ocean_stone',},
\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
59 minetest.register_craft({
\r
60 output = '"xocean:ocean_circular" 4',
\r
62 {'xocean:ocean_craved', 'xocean:ocean_carved',},
\r
63 {'xocean:ocean_craved', 'xocean:ocean_carved',},
\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
73 minetest.register_craft({
\r
74 output = '"xocean:ocean_pillar" 4',
\r
76 {'xocean:ocean_brick', 'xocean:ocean_brick',},
\r
77 {'xocean:ocean_brick', 'xocean:ocean_brick',},
\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
87 minetest.register_craft({
\r
88 output = '"xocean:ocean_brick" 4',
\r
90 {'xocean:ocean_cobble', 'xocean:ocean_cobble',},
\r
91 {'xocean:ocean_cobble', 'xocean:ocean_cobble',},
\r
95 minetest.register_node("xocean:sea_lantern", {
\r
96 description = "Sea Lantern",
\r
97 drawtype = "glasslike",
\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
107 minetest.register_craft({
\r
108 output = '"xocean:sea_lantern" 4',
\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
114 replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}}
\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
123 minetest.register_craft({
\r
124 output = '"xocean:kelp_block" 1',
\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
131 minetest.override_item("default:sand_with_kelp", {
\r
132 description = "Kelp",
\r
133 drawtype = "plantlike_rooted",
\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
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
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
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
168 local pos = pointed_thing.under
\r
169 if minetest.get_node(pos).name ~= "default:sand" then
\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
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
190 minetest.chat_send_player(player_name, "Node is protected")
\r
191 minetest.record_protection_violation(pos, player_name)
\r
198 after_destruct = function(pos, oldnode)
\r
199 minetest.set_node(pos, {name = "default:sand"})
\r
202 minetest.register_craft({
\r
204 output = "xocean:kelp",
\r
205 recipe = "default:sand_with_kelp",
\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
212 minetest.register_node("xocean:seagrass", {
\r
213 description = "Seagrass",
\r
214 drawtype = "plantlike_rooted",
\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
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
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
236 on_place = function(itemstack, placer, pointed_thing)
\r
237 if pointed_thing.type ~= "node" or not placer then
\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
245 if minetest.get_node(pos_under).name ~= "default:sand" or
\r
246 minetest.get_node(pos_above).name ~= "default:water_source" then
\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
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
265 after_destruct = function(pos, oldnode)
\r
266 minetest.set_node(pos, {name = "default:sand"})
\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
274 minetest.register_node("xocean:pickle", {
\r
275 description = "Sea Pickle",
\r
276 drawtype = "plantlike_rooted",
\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
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
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
298 on_place = function(itemstack, placer, pointed_thing)
\r
299 if pointed_thing.type ~= "node" or not placer then
\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
307 if minetest.get_node(pos_under).name ~= "default:sand" or
\r
308 minetest.get_node(pos_above).name ~= "default:water_source" then
\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
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
327 after_destruct = function(pos, oldnode)
\r
328 minetest.set_node(pos, {name = "default:sand"})
\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
339 minetest.override_item("default:coral_pink", {
\r
340 description = "Brain Coral",
\r
341 drawtype = "plantlike_rooted",
\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
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
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
362 on_place = function(itemstack, placer, pointed_thing)
\r
363 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
391 after_destruct = function(pos, oldnode)
\r
392 minetest.set_node(pos, {name = "xocean:brain_block"})
\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
401 minetest.register_node("xocean:skeleton_brain", {
\r
402 description = "Brain Coral Skeleton",
\r
403 drawtype = "plantlike_rooted",
\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
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
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
424 on_place = function(itemstack, placer, pointed_thing)
\r
425 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
453 after_destruct = function(pos, oldnode)
\r
454 minetest.set_node(pos, {name = "xocean:brain_skeleton"})
\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
464 minetest.override_item("default:coral_cyan", {
\r
465 description = "Tube Coral",
\r
466 drawtype = "plantlike_rooted",
\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
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
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
488 on_place = function(itemstack, placer, pointed_thing)
\r
489 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
517 after_destruct = function(pos, oldnode)
\r
518 minetest.set_node(pos, {name = "xocean:tube_block"})
\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
527 minetest.register_node("xocean:tube_bubble", {
\r
528 description = "Tube Coral Skeleton",
\r
529 drawtype = "plantlike_rooted",
\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
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
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
550 on_place = function(itemstack, placer, pointed_thing)
\r
551 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
579 after_destruct = function(pos, oldnode)
\r
580 minetest.set_node(pos, {name = "xocean:tube_skeleton"})
\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
590 minetest.register_node("xocean:bubble", {
\r
591 description = "Bubble Coral",
\r
592 drawtype = "plantlike_rooted",
\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
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
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
613 on_place = function(itemstack, placer, pointed_thing)
\r
614 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
642 after_destruct = function(pos, oldnode)
\r
643 minetest.set_node(pos, {name = "xocean:bubble_block"})
\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
652 minetest.register_node("xocean:skeleton_bubble", {
\r
653 description = "Bubble Coral Skeleton",
\r
654 drawtype = "plantlike_rooted",
\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
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
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
676 on_place = function(itemstack, placer, pointed_thing)
\r
677 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
705 after_destruct = function(pos, oldnode)
\r
706 minetest.set_node(pos, {name = "xocean:bubble_skeleton"})
\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
716 minetest.register_node("xocean:horn", {
\r
717 description = "Horn Coral",
\r
718 drawtype = "plantlike_rooted",
\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
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
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
739 on_place = function(itemstack, placer, pointed_thing)
\r
740 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
768 after_destruct = function(pos, oldnode)
\r
769 minetest.set_node(pos, {name = "xocean:horn_block"})
\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
778 minetest.register_node("xocean:skeleton_horn", {
\r
779 description = "Horn Coral Skeleton",
\r
780 drawtype = "plantlike_rooted",
\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
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
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
802 on_place = function(itemstack, placer, pointed_thing)
\r
803 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
831 after_destruct = function(pos, oldnode)
\r
832 minetest.set_node(pos, {name = "xocean:horn_skeleton"})
\r
835 minetest.register_node("xocean:fire", {
\r
836 description = "Fire Coral",
\r
837 drawtype = "plantlike_rooted",
\r
839 paramtype = "light",
\r
840 tiles = {"xocean_coral_fire.png"},
\r
841 special_tiles = {{name = "xocean_fire.png", tileable_vertical = true}},
\r
842 inventory_image = "xocean_fire.png",
\r
843 groups = {snappy = 3},
\r
847 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
\r
848 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
\r
851 drop = "xocean:fire_skeleton",
\r
852 node_dig_prediction = "xocean:fire_block",
\r
853 node_placement_prediction = "",
\r
854 sounds = default.node_sound_stone_defaults({
\r
855 dig = {name = "default_dig_snappy", gain = 0.2},
\r
856 dug = {name = "default_grass_footstep", gain = 0.25},
\r
859 on_place = function(itemstack, placer, pointed_thing)
\r
860 if pointed_thing.type ~= "node" or not placer then
\r
864 local player_name = placer:get_player_name()
\r
865 local pos_under = pointed_thing.under
\r
866 local pos_above = pointed_thing.above
\r
868 if minetest.get_node(pos_under).name ~= "xocean:fire_block" or
\r
869 minetest.get_node(pos_above).name ~= "default:water_source" then
\r
873 if minetest.is_protected(pos_under, player_name) or
\r
874 minetest.is_protected(pos_above, player_name) then
\r
875 minetest.chat_send_player(player_name, "Node is protected")
\r
876 minetest.record_protection_violation(pos_under, player_name)
\r
880 minetest.set_node(pos_under, {name = "xocean:fire"})
\r
881 if not (creative and creative.is_enabled_for(player_name)) then
\r
882 itemstack:take_item()
\r
888 after_destruct = function(pos, oldnode)
\r
889 minetest.set_node(pos, {name = "xocean:fire_block"})
\r
892 minetest.override_item("default:coral_orange", {
\r
893 description = "Fire Coral Block",
\r
894 tiles = {"xocean_coral_fire.png"},
\r
895 groups = {cracky = 3},
\r
896 drop = "xocean:fire_skeleton",
\r
897 sounds = default.node_sound_stone_defaults(),
\r
899 minetest.register_node("xocean:skeleton_fire", {
\r
900 description = "Fire Coral Skeleton",
\r
901 drawtype = "plantlike_rooted",
\r
903 paramtype = "light",
\r
904 tiles = {"xocean_coral_fire_skeleton.png"},
\r
905 special_tiles = {{name = "xocean_fire_skeleton.png", tileable_vertical = true}},
\r
906 inventory_image = "xocean_fire_skeleton.png",
\r
907 groups = {snappy = 3},
\r
911 {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
\r
912 {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
\r
915 node_dig_prediction = "xocean:fire_skeleton",
\r
916 node_placement_prediction = "",
\r
917 sounds = default.node_sound_stone_defaults({
\r
918 dig = {name = "default_dig_snappy", gain = 0.2},
\r
919 dug = {name = "default_grass_footstep", gain = 0.25},
\r
922 on_place = function(itemstack, placer, pointed_thing)
\r
923 if pointed_thing.type ~= "node" or not placer then
\r
927 local player_name = placer:get_player_name()
\r
928 local pos_under = pointed_thing.under
\r
929 local pos_above = pointed_thing.above
\r
931 if minetest.get_node(pos_under).name ~= "xocean:fire_skeleton" or
\r
932 minetest.get_node(pos_above).name ~= "default:water_source" then
\r
936 if minetest.is_protected(pos_under, player_name) or
\r
937 minetest.is_protected(pos_above, player_name) then
\r
938 minetest.chat_send_player(player_name, "Node is protected")
\r
939 minetest.record_protection_violation(pos_under, player_name)
\r
943 minetest.set_node(pos_under, {name = "xocean:skeleton_fire"})
\r
944 if not (creative and creative.is_enabled_for(player_name)) then
\r
945 itemstack:take_item()
\r
951 after_destruct = function(pos, oldnode)
\r
952 minetest.set_node(pos, {name = "xocean:fire_skeleton"})
\r
956 minetest.register_decoration({
\r
957 name = "xocean:brain",
\r
958 deco_type = "schematic",
\r
959 place_on = {"default:sand"},
\r
960 place_offset_y = -1,
\r
965 spread = {x = 100000, y = 100000, z = 100000},
\r
972 "snowy_grassland_ocean",
\r
974 "coniferous_forest_ocean",
\r
975 "deciduous_forest_ocean",
\r
976 "sandstone_desert_ocean",
\r
977 "cold_desert_ocean"},
\r
980 flags = "force_placement",
\r
981 schematic = "/schems/brain.mts",
\r
985 minetest.register_decoration({
\r
986 name = "xocean:horn",
\r
987 deco_type = "schematic",
\r
988 place_on = {"default:sand"},
\r
989 place_offset_y = -1,
\r
994 spread = {x = 100000, y = 100000, z = 100000},
\r
1001 "snowy_grassland_ocean",
\r
1002 "grassland_ocean",
\r
1003 "coniferous_forest_ocean",
\r
1004 "deciduous_forest_ocean",
\r
1005 "sandstone_desert_ocean",
\r
1006 "cold_desert_ocean"},
\r
1009 flags = "force_placement",
\r
1010 schematic = "/schems/horn.mts",
\r
1014 minetest.register_decoration({
\r
1015 name = "xocean:bubble",
\r
1016 deco_type = "schematic",
\r
1017 place_on = {"default:sand"},
\r
1018 place_offset_y = -1,
\r
1023 spread = {x = 100000, y = 100000, z = 100000},
\r
1030 "snowy_grassland_ocean",
\r
1031 "grassland_ocean",
\r
1032 "coniferous_forest_ocean",
\r
1033 "deciduous_forest_ocean",
\r
1034 "sandstone_desert_ocean",
\r
1035 "cold_desert_ocean"},
\r
1038 flags = "force_placement",
\r
1039 schematic = "/schems/bubble.mts",
\r
1043 minetest.register_decoration({
\r
1044 name = "xocean:tube",
\r
1045 deco_type = "schematic",
\r
1046 place_on = {"default:sand"},
\r
1047 place_offset_y = -1,
\r
1052 spread = {x = 100000, y = 100000, z = 100000},
\r
1059 "snowy_grassland_ocean",
\r
1060 "grassland_ocean",
\r
1061 "coniferous_forest_ocean",
\r
1062 "deciduous_forest_ocean",
\r
1063 "sandstone_desert_ocean",
\r
1064 "cold_desert_ocean"},
\r
1067 flags = "force_placement",
\r
1068 schematic = "/schems/tube.mts",
\r
1072 minetest.register_decoration({
\r
1073 name = "xocean:fire",
\r
1074 deco_type = "schematic",
\r
1075 place_on = {"default:sand"},
\r
1076 place_offset_y = -1,
\r
1081 spread = {x = 100000, y = 100000, z = 100000},
\r
1088 "snowy_grassland_ocean",
\r
1089 "grassland_ocean",
\r
1090 "coniferous_forest_ocean",
\r
1091 "deciduous_forest_ocean",
\r
1092 "sandstone_desert_ocean",
\r
1093 "cold_desert_ocean"},
\r
1096 flags = "force_placement",
\r
1097 schematic = "/schems/fire.mts",
\r
1101 minetest.register_decoration({
\r
1102 name = "xocean:brain2",
\r
1103 deco_type = "schematic",
\r
1104 place_on = {"default:sand"},
\r
1105 place_offset_y = -1,
\r
1110 spread = {x = 100000, y = 100000, z = 100000},
\r
1117 "snowy_grassland_ocean",
\r
1118 "grassland_ocean",
\r
1119 "coniferous_forest_ocean",
\r
1120 "deciduous_forest_ocean",
\r
1121 "sandstone_desert_ocean",
\r
1122 "cold_desert_ocean"},
\r
1125 flags = "force_placement",
\r
1126 schematic = "/schems/brain2.mts",
\r
1130 minetest.register_decoration({
\r
1131 name = "xocean:horn2",
\r
1132 deco_type = "schematic",
\r
1133 place_on = {"default:sand"},
\r
1134 place_offset_y = -1,
\r
1139 spread = {x = 100000, y = 100000, z = 100000},
\r
1146 "snowy_grassland_ocean",
\r
1147 "grassland_ocean",
\r
1148 "coniferous_forest_ocean",
\r
1149 "deciduous_forest_ocean",
\r
1150 "sandstone_desert_ocean",
\r
1151 "cold_desert_ocean"},
\r
1154 flags = "force_placement",
\r
1155 schematic = "/schems/horn2.mts",
\r
1159 minetest.register_decoration({
\r
1160 name = "xocean:bubble2",
\r
1161 deco_type = "schematic",
\r
1162 place_on = {"default:sand"},
\r
1163 place_offset_y = -1,
\r
1168 spread = {x = 100000, y = 100000, z = 100000},
\r
1175 "snowy_grassland_ocean",
\r
1176 "grassland_ocean",
\r
1177 "coniferous_forest_ocean",
\r
1178 "deciduous_forest_ocean",
\r
1179 "sandstone_desert_ocean",
\r
1180 "cold_desert_ocean"},
\r
1183 flags = "force_placement",
\r
1184 schematic = "/schems/bubble2.mts",
\r
1188 minetest.register_decoration({
\r
1189 name = "xocean:tube2",
\r
1190 deco_type = "schematic",
\r
1191 place_on = {"default:sand"},
\r
1192 place_offset_y = -1,
\r
1197 spread = {x = 100000, y = 100000, z = 100000},
\r
1204 "snowy_grassland_ocean",
\r
1205 "grassland_ocean",
\r
1206 "coniferous_forest_ocean",
\r
1207 "deciduous_forest_ocean",
\r
1208 "sandstone_desert_ocean",
\r
1209 "cold_desert_ocean"},
\r
1212 flags = "force_placement",
\r
1213 schematic = "/schems/tube2.mts",
\r
1217 minetest.register_decoration({
\r
1218 name = "xocean:fire2",
\r
1219 deco_type = "schematic",
\r
1220 place_on = {"default:sand"},
\r
1221 place_offset_y = -1,
\r
1226 spread = {x = 100000, y = 100000, z = 100000},
\r
1233 "snowy_grassland_ocean",
\r
1234 "grassland_ocean",
\r
1235 "coniferous_forest_ocean",
\r
1236 "deciduous_forest_ocean",
\r
1237 "sandstone_desert_ocean",
\r
1238 "cold_desert_ocean"},
\r
1241 flags = "force_placement",
\r
1242 schematic = "/schems/fire2.mts",
\r
1246 minetest.register_decoration({
\r
1247 name = "xocean:tube3",
\r
1248 deco_type = "schematic",
\r
1249 place_on = {"default:sand"},
\r
1250 place_offset_y = -1,
\r
1255 spread = {x = 100000, y = 100000, z = 100000},
\r
1262 "snowy_grassland_ocean",
\r
1263 "grassland_ocean",
\r
1264 "coniferous_forest_ocean",
\r
1265 "deciduous_forest_ocean",
\r
1266 "sandstone_desert_ocean",
\r
1267 "cold_desert_ocean"},
\r
1270 flags = "force_placement",
\r
1271 schematic = "/schems/tube3.mts",
\r
1275 minetest.register_decoration({
\r
1276 name = "xocean:brain3",
\r
1277 deco_type = "schematic",
\r
1278 place_on = {"default:sand"},
\r
1279 place_offset_y = -1,
\r
1284 spread = {x = 100000, y = 100000, z = 100000},
\r
1291 "snowy_grassland_ocean",
\r
1292 "grassland_ocean",
\r
1293 "coniferous_forest_ocean",
\r
1294 "deciduous_forest_ocean",
\r
1295 "sandstone_desert_ocean",
\r
1296 "cold_desert_ocean"},
\r
1299 flags = "force_placement",
\r
1300 schematic = "/schems/brain3.mts",
\r
1304 minetest.register_decoration({
\r
1305 name = "xocean:brain4",
\r
1306 deco_type = "schematic",
\r
1307 place_on = {"default:sand"},
\r
1308 place_offset_y = -1,
\r
1312 scale = 0.0000001,
\r
1313 spread = {x = 100000, y = 100000, z = 100000},
\r
1320 "snowy_grassland_ocean",
\r
1321 "grassland_ocean",
\r
1322 "coniferous_forest_ocean",
\r
1323 "deciduous_forest_ocean",
\r
1324 "sandstone_desert_ocean",
\r
1325 "cold_desert_ocean"},
\r
1328 flags = "force_placement",
\r
1329 schematic = "/schems/brain4.mts",
\r
1333 minetest.register_decoration({
\r
1334 name = "xocean:seagrass",
\r
1335 deco_type = "simple",
\r
1336 place_on = {"default:sand"},
\r
1337 place_offset_y = -1,
\r
1342 spread = {x = 200, y = 200, z = 200},
\r
1349 "snowy_grassland_ocean",
\r
1350 "grassland_ocean",
\r
1351 "coniferous_forest_ocean",
\r
1352 "deciduous_forest_ocean",
\r
1353 "sandstone_desert_ocean",
\r
1354 "cold_desert_ocean"},
\r
1357 flags = "force_placement",
\r
1358 decoration = "xocean:seagrass",
\r
1362 minetest.register_decoration({
\r
1363 name = "xocean:fire_plant_dead",
\r
1364 deco_type = "simple",
\r
1365 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1366 place_offset_y = -1,
\r
1371 spread = {x = 20, y = 20, z = 20},
\r
1378 "snowy_grassland_ocean",
\r
1379 "grassland_ocean",
\r
1380 "coniferous_forest_ocean",
\r
1381 "deciduous_forest_ocean",
\r
1382 "sandstone_desert_ocean",
\r
1383 "cold_desert_ocean"},
\r
1386 flags = "force_placement",
\r
1387 decoration = "xocean:skeleton_fire",
\r
1391 minetest.register_decoration({
\r
1392 name = "xocean:horn_plant_dead",
\r
1393 deco_type = "simple",
\r
1394 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1395 place_offset_y = -1,
\r
1400 spread = {x = 20, y = 20, z = 20},
\r
1407 "snowy_grassland_ocean",
\r
1408 "grassland_ocean",
\r
1409 "coniferous_forest_ocean",
\r
1410 "deciduous_forest_ocean",
\r
1411 "sandstone_desert_ocean",
\r
1412 "cold_desert_ocean"},
\r
1415 flags = "force_placement",
\r
1416 decoration = "xocean:skeleton_horn",
\r
1420 minetest.register_decoration({
\r
1421 name = "xocean:bubble_plant_skeleton",
\r
1422 deco_type = "simple",
\r
1423 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1424 place_offset_y = -1,
\r
1429 spread = {x = 20, y = 20, z = 20},
\r
1436 "snowy_grassland_ocean",
\r
1437 "grassland_ocean",
\r
1438 "coniferous_forest_ocean",
\r
1439 "deciduous_forest_ocean",
\r
1440 "sandstone_desert_ocean",
\r
1441 "cold_desert_ocean"},
\r
1444 flags = "force_placement",
\r
1445 decoration = "xocean:skeleton_bubble",
\r
1449 minetest.register_decoration({
\r
1450 name = "xocean:brain_plant_skeleton",
\r
1451 deco_type = "simple",
\r
1452 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1453 place_offset_y = -1,
\r
1458 spread = {x = 20, y = 20, z = 20},
\r
1465 "snowy_grassland_ocean",
\r
1466 "grassland_ocean",
\r
1467 "coniferous_forest_ocean",
\r
1468 "deciduous_forest_ocean",
\r
1469 "sandstone_desert_ocean",
\r
1470 "cold_desert_ocean"},
\r
1473 flags = "force_placement",
\r
1474 decoration = "xocean:skeleton_brain",
\r
1478 minetest.register_decoration({
\r
1479 name = "xocean:tube_plant",
\r
1480 deco_type = "simple",
\r
1481 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1482 place_offset_y = -1,
\r
1487 spread = {x = 20, y = 20, z = 20},
\r
1494 "snowy_grassland_ocean",
\r
1495 "grassland_ocean",
\r
1496 "coniferous_forest_ocean",
\r
1497 "deciduous_forest_ocean",
\r
1498 "sandstone_desert_ocean",
\r
1499 "cold_desert_ocean"},
\r
1502 flags = "force_placement",
\r
1503 decoration = "xocean:skeleton_tube",
\r
1507 minetest.register_decoration({
\r
1508 name = "xocean:fire_plant",
\r
1509 deco_type = "simple",
\r
1510 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1511 place_offset_y = -1,
\r
1516 spread = {x = 20, y = 20, z = 20},
\r
1523 "snowy_grassland_ocean",
\r
1524 "grassland_ocean",
\r
1525 "coniferous_forest_ocean",
\r
1526 "deciduous_forest_ocean",
\r
1527 "sandstone_desert_ocean",
\r
1528 "cold_desert_ocean"},
\r
1531 flags = "force_placement",
\r
1532 decoration = "xocean:fire",
\r
1536 minetest.register_decoration({
\r
1537 name = "xocean:horn_plant",
\r
1538 deco_type = "simple",
\r
1539 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1540 place_offset_y = -1,
\r
1545 spread = {x = 20, y = 20, z = 20},
\r
1552 "snowy_grassland_ocean",
\r
1553 "grassland_ocean",
\r
1554 "coniferous_forest_ocean",
\r
1555 "deciduous_forest_ocean",
\r
1556 "sandstone_desert_ocean",
\r
1557 "cold_desert_ocean"},
\r
1560 flags = "force_placement",
\r
1561 decoration = "xocean:horn",
\r
1565 minetest.register_decoration({
\r
1566 name = "xocean:bubble_plant",
\r
1567 deco_type = "simple",
\r
1568 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1569 place_offset_y = -1,
\r
1574 spread = {x = 20, y = 20, z = 20},
\r
1581 "snowy_grassland_ocean",
\r
1582 "grassland_ocean",
\r
1583 "coniferous_forest_ocean",
\r
1584 "deciduous_forest_ocean",
\r
1585 "sandstone_desert_ocean",
\r
1586 "cold_desert_ocean"},
\r
1589 flags = "force_placement",
\r
1590 decoration = "xocean:bubble",
\r
1594 minetest.register_decoration({
\r
1595 name = "xocean:brain_plant",
\r
1596 deco_type = "simple",
\r
1597 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1598 place_offset_y = -1,
\r
1603 spread = {x = 20, y = 20, z = 20},
\r
1610 "snowy_grassland_ocean",
\r
1611 "grassland_ocean",
\r
1612 "coniferous_forest_ocean",
\r
1613 "deciduous_forest_ocean",
\r
1614 "sandstone_desert_ocean",
\r
1615 "cold_desert_ocean"},
\r
1618 flags = "force_placement",
\r
1619 decoration = "default:coral_pink",
\r
1623 minetest.register_decoration({
\r
1624 name = "xocean:tube_plant",
\r
1625 deco_type = "simple",
\r
1626 place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"},
\r
1627 place_offset_y = -1,
\r
1632 spread = {x = 20, y = 20, z = 20},
\r
1639 "snowy_grassland_ocean",
\r
1640 "grassland_ocean",
\r
1641 "coniferous_forest_ocean",
\r
1642 "deciduous_forest_ocean",
\r
1643 "sandstone_desert_ocean",
\r
1644 "cold_desert_ocean"},
\r
1647 flags = "force_placement",
\r
1648 decoration = "default:coral_cyan",
\r
1652 minetest.register_decoration({
\r
1653 name = "xocean:pickle",
\r
1654 deco_type = "simple",
\r
1655 place_on = {"default:sand"},
\r
1656 place_offset_y = -1,
\r
1661 spread = {x = 200, y = 200, z = 200},
\r
1668 "snowy_grassland_ocean",
\r
1669 "grassland_ocean",
\r
1670 "coniferous_forest_ocean",
\r
1671 "deciduous_forest_ocean",
\r
1672 "sandstone_desert_ocean",
\r
1673 "cold_desert_ocean"},
\r
1676 flags = "force_placement",
\r
1677 decoration = "xocean:pickle",
\r
1682 if minetest.get_modpath("mobs") then
\r
1683 local l_water_level = minetest.setting_get("water_level") - 2
\r
1684 mobs:register_mob("xocean:dolphin", {
\r
1686 attack_type = "dogfight",
\r
1688 visual_size = {x = 15, y = 15, z= 15},
\r
1693 collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75},
\r
1695 mesh = "dolphin.b3d",
\r
1697 {"mobs_dolphin.png"}
\r
1700 {name = "mobs:meat_raw", chance = 1, min = 2, max = 4},
\r
1702 makes_footstep_sound = false,
\r
1703 walk_velocity = 4,
\r
1706 fly_in = "default:water_source",
\r
1714 speed_normal = 15,
\r
1724 mobs:spawn_specific("xocean:dolphin", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 5, 20, 30, 10000, 2, -31000, l_water_level)
\r
1725 mobs:register_egg("xocean:dolphin", "Dolphin", "xocean_stone.png", 1)
\r
1727 mobs:register_mob("xocean:fish", {
\r
1732 visual_size = {x = 2, y = 2, z= 2},
\r
1733 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},
\r
1735 mesh = "fishy.b3d",
\r
1737 {"mobs_fishy.png"},
\r
1738 {"mobs_fishy1.png"},
\r
1739 {"mobs_fishy2.png"},
\r
1740 {"mobs_fishy3.png"}
\r
1743 {name = "xocean:fish_edible", chance = 1, min = 1, max = 1},
\r
1745 makes_footstep_sound = false,
\r
1746 walk_velocity = 2,
\r
1749 fly_in = "default:water_source",
\r
1756 speed_normal = 15,
\r
1766 mobs:spawn_specific("xocean:fish", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level)
\r
1767 mobs:register_egg("xocean:fish", "Tropical Fish (Kob)", "xocean_fish.png", 0)
\r
1768 mobs:register_mob("xocean:fish2", {
\r
1773 visual_size = {x = 2, y = 2, z= 2},
\r
1774 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},
\r
1776 mesh = "fishy.b3d",
\r
1778 {"mobs_fishy4.png"},
\r
1779 {"mobs_fishy5.png"},
\r
1780 {"mobs_fishy6.png"}
\r
1783 {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},
\r
1785 makes_footstep_sound = false,
\r
1786 walk_velocity = 2,
\r
1789 fly_in = "default:water_source",
\r
1796 speed_normal = 15,
\r
1806 mobs:spawn_specific("xocean:fish2", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level)
\r
1807 mobs:register_egg("xocean:fish2", "Tropical Fish (SunStreak)", "xocean_fish2.png", 0)
\r
1808 mobs:register_mob("xocean:fish3", {
\r
1813 visual_size = {x = 2, y = 2, z= 2},
\r
1814 collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25},
\r
1816 mesh = "fishy.b3d",
\r
1818 {"mobs_fishy7.png"},
\r
1819 {"mobs_fishy8.png"},
\r
1820 {"mobs_fishy9.png"}
\r
1823 {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},
\r
1825 makes_footstep_sound = false,
\r
1826 walk_velocity = 2,
\r
1829 fly_in = "default:water_source",
\r
1836 speed_normal = 15,
\r
1846 mobs:spawn_specific("xocean:fish3", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level)
\r
1847 mobs:register_egg("xocean:fish3", "Tropical Fish (Dasher)", "xocean_fish3.png", 0)
\r