Remove all unused MTG features - Part 2
Including - Saplings and corresponding growth functions and node-timers - Features using node meta (e.g. bookshelves formspec) - Signs (they're nothing without their meta)
This commit is contained in:
parent
703a3bbc50
commit
a1f32d8fcf
1 changed files with 0 additions and 556 deletions
|
@ -662,42 +662,6 @@ minetest.register_node("default:wood", {
|
|||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("default:sapling", {
|
||||
description = "Apple Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_sapling.png"},
|
||||
inventory_image = "default_sapling.png",
|
||||
wield_image = "default_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -3, y = 1, z = -3},
|
||||
{x = 3, y = 6, z = 3},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:leaves", {
|
||||
description = "Apple Tree Leaves",
|
||||
drawtype = "allfaces_optional",
|
||||
|
@ -771,77 +735,6 @@ minetest.register_node("default:jungleleaves", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:junglesapling", {
|
||||
description = "Jungle Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_junglesapling.png"},
|
||||
inventory_image = "default_junglesapling.png",
|
||||
wield_image = "default_junglesapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:junglesapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 15, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:emergent_jungle_sapling", {
|
||||
description = "Emergent Jungle Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_emergent_jungle_sapling.png"},
|
||||
inventory_image = "default_emergent_jungle_sapling.png",
|
||||
wield_image = "default_emergent_jungle_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:emergent_jungle_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
{x = -3, y = -5, z = -3},
|
||||
{x = 3, y = 31, z = 3},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("default:pine_tree", {
|
||||
description = "Pine Tree",
|
||||
|
@ -885,42 +778,6 @@ minetest.register_node("default:pine_needles",{
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:pine_sapling", {
|
||||
description = "Pine Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_pine_sapling.png"},
|
||||
inventory_image = "default_pine_sapling.png",
|
||||
wield_image = "default_pine_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:pine_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 14, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("default:acacia_tree", {
|
||||
description = "Acacia Tree",
|
||||
|
@ -965,42 +822,6 @@ minetest.register_node("default:acacia_leaves", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:acacia_sapling", {
|
||||
description = "Acacia Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_acacia_sapling.png"},
|
||||
inventory_image = "default_acacia_sapling.png",
|
||||
wield_image = "default_acacia_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:acacia_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -4, y = 1, z = -4},
|
||||
{x = 4, y = 7, z = 4},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:aspen_tree", {
|
||||
description = "Aspen Tree",
|
||||
tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png",
|
||||
|
@ -1043,42 +864,6 @@ minetest.register_node("default:aspen_leaves", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:aspen_sapling", {
|
||||
description = "Aspen Tree Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_aspen_sapling.png"},
|
||||
inventory_image = "default_aspen_sapling.png",
|
||||
wield_image = "default_aspen_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:aspen_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -2, y = 1, z = -2},
|
||||
{x = 2, y = 12, z = 2},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
--
|
||||
-- Ores
|
||||
--
|
||||
|
@ -1243,57 +1028,6 @@ minetest.register_node("default:large_cactus_seedling", {
|
|||
},
|
||||
groups = {choppy = 3, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:large_cactus_seedling",
|
||||
{x = -2, y = -1, z = -2},
|
||||
{x = 2, y = 5, z = 2},
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_construct = function(pos)
|
||||
-- Normal cactus farming adds 1 cactus node by ABM,
|
||||
-- interval 12s, chance 83.
|
||||
-- Consider starting with 5 cactus nodes. We make sure that growing a
|
||||
-- large cactus is not a faster way to produce new cactus nodes.
|
||||
-- Confirmed by experiment, when farming 5 cacti, on average 1 new
|
||||
-- cactus node is added on average every
|
||||
-- 83 / 5 = 16.6 intervals = 16.6 * 12 = 199.2s.
|
||||
-- Large cactus contains on average 14 cactus nodes.
|
||||
-- 14 * 199.2 = 2788.8s.
|
||||
-- Set random range to average to 2789s.
|
||||
minetest.get_node_timer(pos):start(math.random(1859, 3719))
|
||||
end,
|
||||
|
||||
on_timer = function(pos)
|
||||
local node_under = minetest.get_node_or_nil(
|
||||
{x = pos.x, y = pos.y - 1, z = pos.z})
|
||||
if not node_under then
|
||||
-- Node under not yet loaded, try later
|
||||
minetest.get_node_timer(pos):start(300)
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.get_item_group(node_under.name, "sand") == 0 then
|
||||
-- Seedling dies
|
||||
minetest.remove_node(pos)
|
||||
return
|
||||
end
|
||||
|
||||
local light_level = minetest.get_node_light(pos)
|
||||
if not light_level or light_level < 13 then
|
||||
-- Too dark for growth, try later in case it's night
|
||||
minetest.get_node_timer(pos):start(300)
|
||||
return
|
||||
end
|
||||
|
||||
minetest.log("action", "A large cactus seedling grows into a large" ..
|
||||
"cactus at ".. minetest.pos_to_string(pos))
|
||||
default.grow_large_cactus(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:papyrus", {
|
||||
|
@ -1602,41 +1336,6 @@ minetest.register_node("default:bush_leaves", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:bush_sapling", {
|
||||
description = "Bush Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_bush_sapling.png"},
|
||||
inventory_image = "default_bush_sapling.png",
|
||||
wield_image = "default_bush_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:bush_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
{x = -1, y = 0, z = -1},
|
||||
{x = 1, y = 1, z = 1},
|
||||
-- maximum interval of interior volume check
|
||||
2)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:blueberry_bush_leaves_with_berries", {
|
||||
description = "Blueberry Bush Leaves with Berries",
|
||||
drawtype = "allfaces_optional",
|
||||
|
@ -1650,7 +1349,6 @@ minetest.register_node("default:blueberry_bush_leaves_with_berries", {
|
|||
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
minetest.set_node(pos, {name = "default:blueberry_bush_leaves"})
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
})
|
||||
|
||||
|
@ -1669,51 +1367,6 @@ minetest.register_node("default:blueberry_bush_leaves", {
|
|||
}
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_timer = function(pos, elapsed)
|
||||
if minetest.get_node_light(pos) < 11 then
|
||||
minetest.get_node_timer(pos):start(200)
|
||||
else
|
||||
minetest.set_node(pos, {name = "default:blueberry_bush_leaves_with_berries"})
|
||||
end
|
||||
end,
|
||||
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:blueberry_bush_sapling", {
|
||||
description = "Blueberry Bush Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_blueberry_bush_sapling.png"},
|
||||
inventory_image = "default_blueberry_bush_sapling.png",
|
||||
wield_image = "default_blueberry_bush_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:blueberry_bush_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
{x = -1, y = 0, z = -1},
|
||||
{x = 1, y = 1, z = 1},
|
||||
-- maximum interval of interior volume check
|
||||
2)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:acacia_bush_stem", {
|
||||
|
@ -1752,41 +1405,6 @@ minetest.register_node("default:acacia_bush_leaves", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:acacia_bush_sapling", {
|
||||
description = "Acacia Bush Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_acacia_bush_sapling.png"},
|
||||
inventory_image = "default_acacia_bush_sapling.png",
|
||||
wield_image = "default_acacia_bush_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 2 / 16, 3 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:acacia_bush_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
{x = -1, y = 0, z = -1},
|
||||
{x = 1, y = 1, z = 1},
|
||||
-- maximum interval of interior volume check
|
||||
2)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:pine_bush_stem", {
|
||||
description = "Pine Bush Stem",
|
||||
drawtype = "plantlike",
|
||||
|
@ -1823,41 +1441,6 @@ minetest.register_node("default:pine_bush_needles", {
|
|||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("default:pine_bush_sapling", {
|
||||
description = "Pine Bush Sapling",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"default_pine_bush_sapling.png"},
|
||||
inventory_image = "default_pine_bush_sapling.png",
|
||||
wield_image = "default_pine_bush_sapling.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
on_timer = default.grow_sapling,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end,
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"default:pine_bush_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
{x = -1, y = 0, z = -1},
|
||||
{x = 1, y = 1, z = 1},
|
||||
-- maximum interval of interior volume check
|
||||
2)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:sand_with_kelp", {
|
||||
description = "Kelp",
|
||||
drawtype = "plantlike_rooted",
|
||||
|
@ -2394,52 +1977,6 @@ minetest.register_node("default:lava_flowing", {
|
|||
-- Tools / "Advanced" crafting / Non-"natural"
|
||||
--
|
||||
|
||||
local bookshelf_formspec =
|
||||
"size[8,7;]" ..
|
||||
"list[context;books;0,0.3;8,2;]" ..
|
||||
"list[current_player;main;0,2.85;8,1;]" ..
|
||||
"list[current_player;main;0,4.08;8,3;8]" ..
|
||||
"listring[context;books]" ..
|
||||
"listring[current_player;main]" ..
|
||||
default.get_hotbar_bg(0,2.85)
|
||||
|
||||
local function update_bookshelf(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local invlist = inv:get_list("books")
|
||||
|
||||
local formspec = bookshelf_formspec
|
||||
-- Inventory slots overlay
|
||||
local bx, by = 0, 0.3
|
||||
local n_written, n_empty = 0, 0
|
||||
for i = 1, 16 do
|
||||
if i == 9 then
|
||||
bx = 0
|
||||
by = by + 1
|
||||
end
|
||||
local stack = invlist[i]
|
||||
if stack:is_empty() then
|
||||
formspec = formspec ..
|
||||
"image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]"
|
||||
else
|
||||
local metatable = stack:get_meta():to_table() or {}
|
||||
if metatable.fields and metatable.fields.text then
|
||||
n_written = n_written + stack:get_count()
|
||||
else
|
||||
n_empty = n_empty + stack:get_count()
|
||||
end
|
||||
end
|
||||
bx = bx + 1
|
||||
end
|
||||
meta:set_string("formspec", formspec)
|
||||
if n_written + n_empty == 0 then
|
||||
meta:set_string("infotext", "Empty Bookshelf")
|
||||
else
|
||||
meta:set_string("infotext", "Bookshelf (" .. n_written ..
|
||||
" written, " .. n_empty .. " empty books)")
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("default:bookshelf", {
|
||||
description = "Bookshelf",
|
||||
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
|
||||
|
@ -2448,99 +1985,6 @@ minetest.register_node("default:bookshelf", {
|
|||
is_ground_content = false,
|
||||
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("books", 8 * 2)
|
||||
update_bookshelf(pos)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
return inv:is_empty("books")
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack)
|
||||
if minetest.get_item_group(stack:get_name(), "book") ~= 0 then
|
||||
return stack:get_count()
|
||||
end
|
||||
return 0
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
minetest.log("action", player:get_player_name() ..
|
||||
" moves stuff in bookshelf at " .. minetest.pos_to_string(pos))
|
||||
update_bookshelf(pos)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name() ..
|
||||
" puts stuff to bookshelf at " .. minetest.pos_to_string(pos))
|
||||
update_bookshelf(pos)
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name() ..
|
||||
" takes stuff from bookshelf at " .. minetest.pos_to_string(pos))
|
||||
update_bookshelf(pos)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
default.get_inventory_drops(pos, "books", drops)
|
||||
drops[#drops+1] = "default:bookshelf"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
})
|
||||
|
||||
local function register_sign(material, desc, def)
|
||||
minetest.register_node("default:sign_wall_" .. material, {
|
||||
description = desc .. " Sign",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"default_sign_wall_" .. material .. ".png"},
|
||||
inventory_image = "default_sign_" .. material .. ".png",
|
||||
wield_image = "default_sign_" .. material .. ".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
node_box = {
|
||||
type = "wallmounted",
|
||||
wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
|
||||
wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
|
||||
wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375},
|
||||
},
|
||||
groups = def.groups,
|
||||
legacy_wallmounted = true,
|
||||
sounds = def.sounds,
|
||||
|
||||
on_construct = function(pos)
|
||||
--local n = minetest.get_node(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", "field[text;;${text}]")
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
--print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields))
|
||||
local player_name = sender:get_player_name()
|
||||
if minetest.is_protected(pos, player_name) then
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
return
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not fields.text then return end
|
||||
minetest.log("action", (player_name or "") .. " wrote \"" ..
|
||||
fields.text .. "\" to sign at " .. minetest.pos_to_string(pos))
|
||||
meta:set_string("text", fields.text)
|
||||
meta:set_string("infotext", '"' .. fields.text .. '"')
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
register_sign("wood", "Wooden", {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3}
|
||||
})
|
||||
|
||||
register_sign("steel", "Steel", {
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
groups = {cracky = 2, attached_node = 1}
|
||||
})
|
||||
|
||||
minetest.register_node("default:ladder_wood", {
|
||||
|
|
Loading…
Reference in a new issue