|
@@ -1910,6 +1910,159 @@ minetest.register_node("default:sand_with_kelp", {
|
|
|
-- Corals
|
|
|
--
|
|
|
|
|
|
+minetest.register_node("default:coral_green", {
|
|
|
+ description = "Green Coral",
|
|
|
+ drawtype = "plantlike_rooted",
|
|
|
+ waving = 1,
|
|
|
+ paramtype = "light",
|
|
|
+ tiles = {"default_coral_skeleton.png"},
|
|
|
+ special_tiles = {{name = "default_coral_green.png", tileable_vertical = true}},
|
|
|
+ inventory_image = "default_coral_green.png",
|
|
|
+ groups = {snappy = 3},
|
|
|
+ selection_box = {
|
|
|
+ type = "fixed",
|
|
|
+ fixed = {
|
|
|
+ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
|
+ {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ node_dig_prediction = "default:coral_skeleton",
|
|
|
+ node_placement_prediction = "",
|
|
|
+ on_place = function(itemstack, placer, pointed_thing)
|
|
|
+ if pointed_thing.type ~= "node" or not placer then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ local player_name = placer:get_player_name()
|
|
|
+ local pos_under = pointed_thing.under
|
|
|
+ local pos_above = pointed_thing.above
|
|
|
+
|
|
|
+ if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or
|
|
|
+ minetest.get_node(pos_above).name ~= "default:water_source" then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ if minetest.is_protected(pos_under, player_name) or
|
|
|
+ minetest.is_protected(pos_above, player_name) then
|
|
|
+ minetest.chat_send_player(player_name, "Node is protected")
|
|
|
+ minetest.record_protection_violation(pos_under, player_name)
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ minetest.set_node(pos_under, {name = "default:coral_green"})
|
|
|
+ if not (creative and creative.is_enabled_for(player_name)) then
|
|
|
+ itemstack:take_item()
|
|
|
+ end
|
|
|
+
|
|
|
+ return itemstack
|
|
|
+ end,
|
|
|
+ after_destruct = function(pos, oldnode)
|
|
|
+ minetest.set_node(pos, {name = "default:coral_skeleton"})
|
|
|
+ end,
|
|
|
+})
|
|
|
+
|
|
|
+minetest.register_node("default:coral_pink", {
|
|
|
+ description = "Pink Coral",
|
|
|
+ drawtype = "plantlike_rooted",
|
|
|
+ waving = 1,
|
|
|
+ paramtype = "light",
|
|
|
+ tiles = {"default_coral_skeleton.png"},
|
|
|
+ special_tiles = {{name = "default_coral_pink.png", tileable_vertical = true}},
|
|
|
+ inventory_image = "default_coral_pink.png",
|
|
|
+ groups = {snappy = 3},
|
|
|
+ selection_box = {
|
|
|
+ type = "fixed",
|
|
|
+ fixed = {
|
|
|
+ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
|
+ {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ node_dig_prediction = "default:coral_skeleton",
|
|
|
+ node_placement_prediction = "",
|
|
|
+ on_place = function(itemstack, placer, pointed_thing)
|
|
|
+ if pointed_thing.type ~= "node" or not placer then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ local player_name = placer:get_player_name()
|
|
|
+ local pos_under = pointed_thing.under
|
|
|
+ local pos_above = pointed_thing.above
|
|
|
+
|
|
|
+ if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or
|
|
|
+ minetest.get_node(pos_above).name ~= "default:water_source" then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ if minetest.is_protected(pos_under, player_name) or
|
|
|
+ minetest.is_protected(pos_above, player_name) then
|
|
|
+ minetest.chat_send_player(player_name, "Node is protected")
|
|
|
+ minetest.record_protection_violation(pos_under, player_name)
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ minetest.set_node(pos_under, {name = "default:coral_pink"})
|
|
|
+ if not (creative and creative.is_enabled_for(player_name)) then
|
|
|
+ itemstack:take_item()
|
|
|
+ end
|
|
|
+
|
|
|
+ return itemstack
|
|
|
+ end,
|
|
|
+ after_destruct = function(pos, oldnode)
|
|
|
+ minetest.set_node(pos, {name = "default:coral_skeleton"})
|
|
|
+ end,
|
|
|
+})
|
|
|
+
|
|
|
+minetest.register_node("default:coral_cyan", {
|
|
|
+ description = "Cyan Coral",
|
|
|
+ drawtype = "plantlike_rooted",
|
|
|
+ waving = 1,
|
|
|
+ paramtype = "light",
|
|
|
+ tiles = {"default_coral_skeleton.png"},
|
|
|
+ special_tiles = {{name = "default_coral_cyan.png", tileable_vertical = true}},
|
|
|
+ inventory_image = "default_coral_cyan.png",
|
|
|
+ groups = {snappy = 3},
|
|
|
+ selection_box = {
|
|
|
+ type = "fixed",
|
|
|
+ fixed = {
|
|
|
+ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
|
|
+ {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ node_dig_prediction = "default:coral_skeleton",
|
|
|
+ node_placement_prediction = "",
|
|
|
+ on_place = function(itemstack, placer, pointed_thing)
|
|
|
+ if pointed_thing.type ~= "node" or not placer then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ local player_name = placer:get_player_name()
|
|
|
+ local pos_under = pointed_thing.under
|
|
|
+ local pos_above = pointed_thing.above
|
|
|
+
|
|
|
+ if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or
|
|
|
+ minetest.get_node(pos_above).name ~= "default:water_source" then
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ if minetest.is_protected(pos_under, player_name) or
|
|
|
+ minetest.is_protected(pos_above, player_name) then
|
|
|
+ minetest.chat_send_player(player_name, "Node is protected")
|
|
|
+ minetest.record_protection_violation(pos_under, player_name)
|
|
|
+ return itemstack
|
|
|
+ end
|
|
|
+
|
|
|
+ minetest.set_node(pos_under, {name = "default:coral_cyan"})
|
|
|
+ if not (creative and creative.is_enabled_for(player_name)) then
|
|
|
+ itemstack:take_item()
|
|
|
+ end
|
|
|
+
|
|
|
+ return itemstack
|
|
|
+ end,
|
|
|
+ after_destruct = function(pos, oldnode)
|
|
|
+ minetest.set_node(pos, {name = "default:coral_skeleton"})
|
|
|
+ end,
|
|
|
+})
|
|
|
+
|
|
|
minetest.register_node("default:coral_brown", {
|
|
|
description = "Brown Coral",
|
|
|
tiles = {"default_coral_brown.png"},
|