write something there
This commit is contained in:
commit
b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions
415
mods/marinara/plants.lua
Normal file
415
mods/marinara/plants.lua
Normal file
|
@ -0,0 +1,415 @@
|
|||
local S = minetest.get_translator("marinara")
|
||||
|
||||
minetest.register_node("marinara:reed_root", {
|
||||
description = S("Reed Root"),
|
||||
drawtype = "plantlike_rooted",
|
||||
visual_scale = 3.5,
|
||||
waving = 1,
|
||||
paramtype = "light",
|
||||
tiles = {"default_dirt.png"},
|
||||
special_tiles = {{name = "marinara_reed_root.png", tileable_vertical = true}},
|
||||
inventory_image = "marinara_reed_root.png",
|
||||
wield_image = "marinara_reed_root.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:dirt",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:dirt"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:reed", {
|
||||
description = S("Reed"),
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
visual_scale = 3.5,
|
||||
tiles = {"marinara_reed.png"},
|
||||
inventory_image = "marinara_reed.png",
|
||||
wield_image = "marinara_reed.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
|
||||
},
|
||||
groups = {snappy = 3, flammable = 2},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
after_dig_node = function(pos, node, metadata, digger)
|
||||
default.dig_up(pos, node, digger)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:sand_with_kelp", {
|
||||
description = ("Kelp"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "marinara_kelp.png", tileable_vertical = true, waving = 1, animation = {type="vertical_frames", length = 2}}},
|
||||
inventory_image = "marinara_kelp_inv.png",
|
||||
visual_scale = 2.0,
|
||||
wield_image = "marinara_kelp_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 3.5, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(4, 12)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "marinara:sand_with_kelp",
|
||||
param2 = height * 8})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:sand_with_seagrass2", {
|
||||
description = S("Long Seagrass"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "marinara_seagrass.png", tileable_vertical = true, waving = 1, animation = {type="vertical_frames", length = 2}}},
|
||||
inventory_image = "marinara_seagrass_inv.png",
|
||||
visual_scale = 2.0,
|
||||
wield_image = "marinara_seagrass_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 1, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(2, 2)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "marinara:sand_with_seagrass2",
|
||||
param2 = height * 8})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:sand_with_seagrass", {
|
||||
description = S("Seagrass"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "marinara_seagrass.png", tileable_vertical = true, waving = 1, animation = {type="vertical_frames", length = 2}}},
|
||||
inventory_image = "marinara_seagrass_inv.png",
|
||||
visual_scale = 2.0,
|
||||
wield_image = "marinara_seagrass_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 1, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(1, 1)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "marinara:sand_with_seagrass",
|
||||
param2 = height * 8})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:sand_with_alage", {
|
||||
description = S("Algae"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "marinara_alage.png", tileable_vertical = true, waving = 1, animation = {type="vertical_frames", length = 2}}},
|
||||
inventory_image = "marinara_alage_inv.png",
|
||||
visual_scale = 1.0,
|
||||
wield_image = "marinara_alage_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 1, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(1, 1)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "marinara:sand_with_alage",
|
||||
param2 = height * 16})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("marinara:coastrock_with_brownalage", {
|
||||
description = S("Brown Algae"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"marinara_coastrock.png"},
|
||||
special_tiles = {{name = "marinara_brownalage.png", tileable_vertical = true, waving = 1, animation = {type="vertical_frames", length = 2}}},
|
||||
inventory_image = "marinara_brownalage_inv.png",
|
||||
visual_scale = 2.0,
|
||||
wield_image = "marinara_brownalage_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 1, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "marinara:coastrock",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(2, 2)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "marinara:coastrock_with_brownalage",
|
||||
param2 = height * 8})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "marinara:coastrock"})
|
||||
end
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue