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.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
842 minetest.register_node("xocean:fire", {
\r
843 description = "Fire Coral",
\r
844 drawtype = "plantlike_rooted",
\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
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
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
866 on_place = function(itemstack, placer, pointed_thing)
\r
867 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
895 after_destruct = function(pos, oldnode)
\r
896 minetest.set_node(pos, {name = "default:coral_orange"})
\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
905 minetest.register_node("xocean:skeleton_fire", {
\r
906 description = "Fire Coral Skeleton",
\r
907 drawtype = "plantlike_rooted",
\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
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
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
928 on_place = function(itemstack, placer, pointed_thing)
\r
929 if pointed_thing.type ~= "node" or not placer then
\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
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
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
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
957 after_destruct = function(pos, oldnode)
\r
958 minetest.set_node(pos, {name = "xocean:fire_skeleton"})
\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
971 spread = {x = 100000, y = 100000, z = 100000},
\r
978 "snowy_grassland_ocean",
\r
980 "coniferous_forest_ocean",
\r
981 "deciduous_forest_ocean",
\r
982 "sandstone_desert_ocean",
\r
983 "cold_desert_ocean"},
\r
986 flags = "force_placement",
\r
987 schematic = "/schems/brain.mts",
\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
1000 spread = {x = 100000, y = 100000, z = 100000},
\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
1015 flags = "force_placement",
\r
1016 schematic = "/schems/horn.mts",
\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
1029 spread = {x = 100000, y = 100000, z = 100000},
\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
1044 flags = "force_placement",
\r
1045 schematic = "/schems/bubble.mts",
\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
1058 spread = {x = 100000, y = 100000, z = 100000},
\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
1073 flags = "force_placement",
\r
1074 schematic = "/schems/tube.mts",
\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
1087 spread = {x = 100000, y = 100000, z = 100000},
\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
1102 flags = "force_placement",
\r
1103 schematic = "/schems/fire.mts",
\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
1116 spread = {x = 100000, y = 100000, z = 100000},
\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
1131 flags = "force_placement",
\r
1132 schematic = "/schems/brain2.mts",
\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
1145 spread = {x = 100000, y = 100000, z = 100000},
\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
1160 flags = "force_placement",
\r
1161 schematic = "/schems/horn2.mts",
\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
1174 spread = {x = 100000, y = 100000, z = 100000},
\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
1189 flags = "force_placement",
\r
1190 schematic = "/schems/bubble2.mts",
\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
1203 spread = {x = 100000, y = 100000, z = 100000},
\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
1218 flags = "force_placement",
\r
1219 schematic = "/schems/tube2.mts",
\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
1232 spread = {x = 100000, y = 100000, z = 100000},
\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
1247 flags = "force_placement",
\r
1248 schematic = "/schems/fire2.mts",
\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
1261 spread = {x = 100000, y = 100000, z = 100000},
\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
1276 flags = "force_placement",
\r
1277 schematic = "/schems/tube3.mts",
\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
1290 spread = {x = 100000, y = 100000, z = 100000},
\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
1305 flags = "force_placement",
\r
1306 schematic = "/schems/brain3.mts",
\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
1318 scale = 0.0000001,
\r
1319 spread = {x = 100000, y = 100000, z = 100000},
\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
1334 flags = "force_placement",
\r
1335 schematic = "/schems/brain4.mts",
\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
1348 spread = {x = 200, y = 200, z = 200},
\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
1363 flags = "force_placement",
\r
1364 decoration = "xocean:seagrass",
\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
1377 spread = {x = 20, y = 20, z = 20},
\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
1392 flags = "force_placement",
\r
1393 decoration = "xocean:skeleton_fire",
\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
1406 spread = {x = 20, y = 20, z = 20},
\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
1421 flags = "force_placement",
\r
1422 decoration = "xocean:skeleton_horn",
\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
1435 spread = {x = 20, y = 20, z = 20},
\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
1450 flags = "force_placement",
\r
1451 decoration = "xocean:skeleton_bubble",
\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
1464 spread = {x = 20, y = 20, z = 20},
\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
1479 flags = "force_placement",
\r
1480 decoration = "xocean:skeleton_brain",
\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
1493 spread = {x = 20, y = 20, z = 20},
\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
1508 flags = "force_placement",
\r
1509 decoration = "xocean:skeleton_tube",
\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
1522 spread = {x = 20, y = 20, z = 20},
\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
1537 flags = "force_placement",
\r
1538 decoration = "xocean:fire",
\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
1551 spread = {x = 20, y = 20, z = 20},
\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
1566 flags = "force_placement",
\r
1567 decoration = "xocean:horn",
\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
1580 spread = {x = 20, y = 20, z = 20},
\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
1595 flags = "force_placement",
\r
1596 decoration = "xocean:bubble",
\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
1609 spread = {x = 20, y = 20, z = 20},
\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
1624 flags = "force_placement",
\r
1625 decoration = "default:coral_pink",
\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
1638 spread = {x = 20, y = 20, z = 20},
\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
1653 flags = "force_placement",
\r
1654 decoration = "default:coral_cyan",
\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
1667 spread = {x = 200, y = 200, z = 200},
\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
1682 flags = "force_placement",
\r
1683 decoration = "xocean:pickle",
\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
1692 attack_type = "dogfight",
\r
1694 visual_size = {x = 15, y = 15, z= 15},
\r
1699 collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75},
\r
1701 mesh = "dolphin.b3d",
\r
1703 {"mobs_dolphin.png"}
\r
1706 {name = "mobs:meat_raw", chance = 1, min = 2, max = 4},
\r
1708 makes_footstep_sound = false,
\r
1709 walk_velocity = 4,
\r
1712 fly_in = "default:water_source",
\r
1720 speed_normal = 15,
\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
1733 mobs:register_mob("xocean:fish", {
\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
1741 mesh = "fishy.b3d",
\r
1743 {"mobs_fishy.png"},
\r
1744 {"mobs_fishy1.png"},
\r
1745 {"mobs_fishy2.png"},
\r
1746 {"mobs_fishy3.png"}
\r
1749 {name = "xocean:fish_edible", chance = 1, min = 1, max = 1},
\r
1751 makes_footstep_sound = false,
\r
1752 walk_velocity = 2,
\r
1755 fly_in = "default:water_source",
\r
1762 speed_normal = 15,
\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
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
1782 mesh = "fishy.b3d",
\r
1784 {"mobs_fishy4.png"},
\r
1785 {"mobs_fishy5.png"},
\r
1786 {"mobs_fishy6.png"}
\r
1789 {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},
\r
1791 makes_footstep_sound = false,
\r
1792 walk_velocity = 2,
\r
1795 fly_in = "default:water_source",
\r
1802 speed_normal = 15,
\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
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
1822 mesh = "fishy.b3d",
\r
1824 {"mobs_fishy7.png"},
\r
1825 {"mobs_fishy8.png"},
\r
1826 {"mobs_fishy9.png"}
\r
1829 {name = "xocean:fish_edible", chance = 2, min = 1, max = 2},
\r
1831 makes_footstep_sound = false,
\r
1832 walk_velocity = 2,
\r
1835 fly_in = "default:water_source",
\r
1842 speed_normal = 15,
\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