1
0
mirror of https://github.com/minetest/minetest_game.git synced 2025-06-29 13:20:25 +02:00

Add plantlike_rooted coral

This commit is contained in:
Ezhh
2018-11-15 00:49:16 +00:00
committed by GitHub
parent 5f61379757
commit 21f5eaade0
8 changed files with 171 additions and 46 deletions

View File

@ -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"},