Merge branch 'master' into buckets
@ -1,4 +1,4 @@
|
||||
RealTest
|
||||
========
|
||||
|
||||
Realistic game for Minetest 0.4.4-dev and over
|
||||
Realistic game for Minetest 0.4.4
|
@ -149,18 +149,6 @@ minetest.register_craft({
|
||||
burntime = 20,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:chest",
|
||||
burntime = 40,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:chest_locked",
|
||||
burntime = 40,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:coal_lump",
|
||||
@ -639,125 +627,6 @@ minetest.register_node("default:sign_wall", {
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:chest", {
|
||||
description = "Chest",
|
||||
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
|
||||
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
"list[current_player;main;0,5;8,4;]")
|
||||
meta:set_string("infotext", "Chest")
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
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 chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
||||
local function has_locked_chest_privilege(meta, player)
|
||||
if player:get_player_name() ~= meta:get_string("owner") then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_node("default:chest_locked", {
|
||||
description = "Locked Chest",
|
||||
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
|
||||
"default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
after_place_node = function(pos, placer)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name() or "")
|
||||
meta:set_string("infotext", "Locked Chest (owned by "..
|
||||
meta:get_string("owner")..")")
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
"list[current_player;main;0,5;8,4;]")
|
||||
meta:set_string("infotext", "Locked Chest")
|
||||
meta:set_string("owner", "")
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return count
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
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 locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("default:cobbleblock", {
|
||||
description = "Block of Cobble",
|
||||
tiles = {"default_cobbleblock.png"},
|
||||
|
@ -293,6 +293,114 @@ function realtest.register_tree(name, TreeDef)
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node(tree.name.."_chest", {
|
||||
description = tree.description.." Chest",
|
||||
tiles = tree.textures.chest,
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
"list[current_player;main;0,5;8,4;]")
|
||||
meta:set_string("infotext", tree.description.." Chest")
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
})
|
||||
|
||||
local function has_locked_chest_privilege(meta, player)
|
||||
if player:get_player_name() ~= meta:get_string("owner") then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_node(tree.name.."_chest_locked", {
|
||||
description = tree.description.." Locked Chest",
|
||||
tiles = tree.textures.locked_chest,
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
after_place_node = function(pos, placer)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name() or "")
|
||||
meta:set_string("infotext", tree.description.." Locked Chest (owned by "..
|
||||
meta:get_string("owner")..")")
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
"list[current_player;main;0,5;8,4;]")
|
||||
meta:set_string("infotext", tree.description.." Locked Chest")
|
||||
meta:set_string("owner", "")
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return count
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
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 locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from locked chest at "..minetest.pos_to_string(pos))
|
||||
end,
|
||||
})
|
||||
minetest.register_alias("default:chest", tree.name.."_chest")
|
||||
minetest.register_alias("default:chest_locked", tree.name.."_chest_locked")
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = tree.name.."_ladder",
|
||||
recipe = {
|
||||
@ -302,6 +410,20 @@ function realtest.register_tree(name, TreeDef)
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = tree.name.."_chest",
|
||||
recipe = {
|
||||
{tree.name.."_plank", tree.name.."_plank", tree.name.."_plank"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = tree.name.."_slab",
|
||||
recipe = {
|
||||
{tree.name.."_plank", tree.name.."_plank", tree.name.."_plank"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = tree.name.."_slab",
|
||||
recipe = {
|
||||
@ -385,6 +507,18 @@ function realtest.register_tree(name, TreeDef)
|
||||
recipe = {{tree.name.."_planks"}}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:chest",
|
||||
burntime = 40,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:chest_locked",
|
||||
burntime = 40,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = tree.name.."_stair",
|
||||
@ -474,7 +608,11 @@ realtest.register_tree("trees:ash", {
|
||||
ladder = "trees_ash_ladder.png",
|
||||
door_inventory = "trees_ash_door_inventory.png",
|
||||
door_top = "trees_ash_door_top.png",
|
||||
door_bottom = "trees_ash_door_bottom.png"
|
||||
door_bottom = "trees_ash_door_bottom.png",
|
||||
chest = {"trees_ash_chest_top.png", "trees_ash_chest_top.png", "trees_ash_chest_side.png",
|
||||
"trees_ash_chest_side.png", "trees_ash_chest_side.png", "trees_ash_chest_front.png"},
|
||||
locked_chest = {"trees_ash_chest_top.png", "trees_ash_chest_top.png", "trees_ash_chest_side.png",
|
||||
"trees_ash_chest_side.png", "trees_ash_chest_side.png", "trees_ash_chest_lock.png"},
|
||||
}
|
||||
})
|
||||
realtest.register_tree("trees:aspen", {
|
||||
@ -494,7 +632,11 @@ realtest.register_tree("trees:aspen", {
|
||||
ladder = "trees_aspen_ladder.png",
|
||||
door_inventory = "trees_aspen_door_inventory.png",
|
||||
door_top = "trees_aspen_door_top.png",
|
||||
door_bottom = "trees_aspen_door_bottom.png"
|
||||
door_bottom = "trees_aspen_door_bottom.png",
|
||||
chest = {"trees_aspen_chest_top.png", "trees_aspen_chest_top.png", "trees_aspen_chest_side.png",
|
||||
"trees_aspen_chest_side.png", "trees_aspen_chest_side.png", "trees_aspen_chest_front.png"},
|
||||
locked_chest = {"trees_aspen_chest_top.png", "trees_aspen_chest_top.png", "trees_aspen_chest_side.png",
|
||||
"trees_aspen_chest_side.png", "trees_aspen_chest_side.png", "trees_aspen_chest_lock.png"},
|
||||
}
|
||||
})
|
||||
realtest.register_tree("trees:birch", {
|
||||
@ -514,7 +656,11 @@ realtest.register_tree("trees:birch", {
|
||||
ladder = "trees_birch_ladder.png",
|
||||
door_inventory = "trees_birch_door_inventory.png",
|
||||
door_top = "trees_birch_door_top.png",
|
||||
door_bottom = "trees_birch_door_bottom.png"
|
||||
door_bottom = "trees_birch_door_bottom.png",
|
||||
chest = {"trees_birch_chest_top.png", "trees_birch_chest_top.png", "trees_birch_chest_side.png",
|
||||
"trees_birch_chest_side.png", "trees_birch_chest_side.png", "trees_birch_chest_front.png"},
|
||||
locked_chest = {"trees_birch_chest_top.png", "trees_birch_chest_top.png", "trees_birch_chest_side.png",
|
||||
"trees_birch_chest_side.png", "trees_birch_chest_side.png", "trees_birch_chest_lock.png"},
|
||||
}
|
||||
})
|
||||
realtest.register_tree("trees:mapple", {
|
||||
@ -534,7 +680,11 @@ realtest.register_tree("trees:mapple", {
|
||||
ladder = "trees_mapple_ladder.png",
|
||||
door_inventory = "trees_mapple_door_inventory.png",
|
||||
door_top = "trees_mapple_door_top.png",
|
||||
door_bottom = "trees_mapple_door_bottom.png"
|
||||
door_bottom = "trees_mapple_door_bottom.png",
|
||||
chest = {"trees_mapple_chest_top.png", "trees_mapple_chest_top.png", "trees_mapple_chest_side.png",
|
||||
"trees_mapple_chest_side.png", "trees_mapple_chest_side.png", "trees_mapple_chest_front.png"},
|
||||
locked_chest = {"trees_mapple_chest_top.png", "trees_mapple_chest_top.png", "trees_mapple_chest_side.png",
|
||||
"trees_mapple_chest_side.png", "trees_mapple_chest_side.png", "trees_mapple_chest_lock.png"},
|
||||
}
|
||||
})
|
||||
realtest.register_tree("trees:chestnut", {
|
||||
@ -555,7 +705,11 @@ realtest.register_tree("trees:chestnut", {
|
||||
ladder = "trees_chestnut_ladder.png",
|
||||
door_inventory = "trees_chestnut_door_inventory.png",
|
||||
door_top = "trees_chestnut_door_top.png",
|
||||
door_bottom = "trees_chestnut_door_bottom.png"
|
||||
door_bottom = "trees_chestnut_door_bottom.png",
|
||||
chest = {"trees_chestnut_chest_top.png", "trees_chestnut_chest_top.png", "trees_chestnut_chest_side.png",
|
||||
"trees_chestnut_chest_side.png", "trees_chestnut_chest_side.png", "trees_chestnut_chest_front.png"},
|
||||
locked_chest = {"trees_chestnut_chest_top.png", "trees_chestnut_chest_top.png", "trees_chestnut_chest_side.png",
|
||||
"trees_chestnut_chest_side.png", "trees_chestnut_chest_side.png", "trees_chestnut_chest_lock.png"},
|
||||
}
|
||||
})
|
||||
realtest.register_tree("trees:pine", {
|
||||
@ -576,6 +730,10 @@ realtest.register_tree("trees:pine", {
|
||||
ladder = "trees_pine_ladder.png",
|
||||
door_inventory = "trees_pine_door_inventory.png",
|
||||
door_top = "trees_pine_door_top.png",
|
||||
door_bottom = "trees_pine_door_bottom.png"
|
||||
door_bottom = "trees_pine_door_bottom.png",
|
||||
chest = {"trees_pine_chest_top.png", "trees_pine_chest_top.png", "trees_pine_chest_side.png",
|
||||
"trees_pine_chest_side.png", "trees_pine_chest_side.png", "trees_pine_chest_front.png"},
|
||||
locked_chest = {"trees_pine_chest_top.png", "trees_pine_chest_top.png", "trees_pine_chest_side.png",
|
||||
"trees_pine_chest_side.png", "trees_pine_chest_side.png", "trees_pine_chest_lock.png"},
|
||||
}
|
||||
})
|
BIN
mods/trees/textures/trees_ash_chest_front.png
Normal file
After Width: | Height: | Size: 715 B |
BIN
mods/trees/textures/trees_ash_chest_lock.png
Normal file
After Width: | Height: | Size: 820 B |
BIN
mods/trees/textures/trees_ash_chest_side.png
Normal file
After Width: | Height: | Size: 709 B |
BIN
mods/trees/textures/trees_ash_chest_top.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
mods/trees/textures/trees_aspen_chest_front.png
Normal file
After Width: | Height: | Size: 698 B |
BIN
mods/trees/textures/trees_aspen_chest_lock.png
Normal file
After Width: | Height: | Size: 765 B |
BIN
mods/trees/textures/trees_aspen_chest_side.png
Normal file
After Width: | Height: | Size: 633 B |
BIN
mods/trees/textures/trees_aspen_chest_top.png
Normal file
After Width: | Height: | Size: 603 B |
BIN
mods/trees/textures/trees_birch_chest_front.png
Normal file
After Width: | Height: | Size: 717 B |
BIN
mods/trees/textures/trees_birch_chest_lock.png
Normal file
After Width: | Height: | Size: 796 B |
BIN
mods/trees/textures/trees_birch_chest_side.png
Normal file
After Width: | Height: | Size: 667 B |
BIN
mods/trees/textures/trees_birch_chest_top.png
Normal file
After Width: | Height: | Size: 652 B |
BIN
mods/trees/textures/trees_chestnut_chest_front.png
Normal file
After Width: | Height: | Size: 649 B |
BIN
mods/trees/textures/trees_chestnut_chest_lock.png
Normal file
After Width: | Height: | Size: 767 B |
BIN
mods/trees/textures/trees_chestnut_chest_side.png
Normal file
After Width: | Height: | Size: 642 B |
BIN
mods/trees/textures/trees_chestnut_chest_top.png
Normal file
After Width: | Height: | Size: 617 B |
BIN
mods/trees/textures/trees_mapple_chest_front.png
Normal file
After Width: | Height: | Size: 779 B |
BIN
mods/trees/textures/trees_mapple_chest_lock.png
Normal file
After Width: | Height: | Size: 828 B |
BIN
mods/trees/textures/trees_mapple_chest_side.png
Normal file
After Width: | Height: | Size: 675 B |
BIN
mods/trees/textures/trees_mapple_chest_top.png
Normal file
After Width: | Height: | Size: 655 B |
BIN
mods/trees/textures/trees_pine_chest_front.png
Normal file
After Width: | Height: | Size: 745 B |
BIN
mods/trees/textures/trees_pine_chest_lock.png
Normal file
After Width: | Height: | Size: 773 B |
BIN
mods/trees/textures/trees_pine_chest_side.png
Normal file
After Width: | Height: | Size: 687 B |
BIN
mods/trees/textures/trees_pine_chest_top.png
Normal file
After Width: | Height: | Size: 638 B |
BIN
mods/trees/textures/trees_sequoia_chest_front.png
Normal file
After Width: | Height: | Size: 679 B |
BIN
mods/trees/textures/trees_sequoia_chest_lock.png
Normal file
After Width: | Height: | Size: 773 B |
BIN
mods/trees/textures/trees_sequoia_chest_side.png
Normal file
After Width: | Height: | Size: 620 B |
BIN
mods/trees/textures/trees_sequoia_chest_top.png
Normal file
After Width: | Height: | Size: 584 B |