summaryrefslogtreecommitdiff
path: root/homedecor/handlers/inventory.lua
diff options
context:
space:
mode:
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2019-04-24 18:59:36 -0400
committerVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2019-04-24 18:59:36 -0400
commita5eef1c5de77fa7770877802e66c3e1c53f9a0da (patch)
tree0f36e64a58e5f5bb7d95be6ae692f58f2ebfe483 /homedecor/handlers/inventory.lua
parentdda854cf06f90a04a03844e19c4d4ad220e38fe4 (diff)
downloaddreambuilder_modpack-a5eef1c5de77fa7770877802e66c3e1c53f9a0da.tar
dreambuilder_modpack-a5eef1c5de77fa7770877802e66c3e1c53f9a0da.tar.gz
dreambuilder_modpack-a5eef1c5de77fa7770877802e66c3e1c53f9a0da.tar.bz2
dreambuilder_modpack-a5eef1c5de77fa7770877802e66c3e1c53f9a0da.tar.xz
dreambuilder_modpack-a5eef1c5de77fa7770877802e66c3e1c53f9a0da.zip
update castles, areas, homedecor, plantlife,
gloopblocks, hotbar, inspector, maptools, mesecons, moreblocks, moreores, technic, teleport_request, and worldedit switched to caverealms_lite (with minor fixes by me) switched to CWz's fork of player_textures The homedecor update brings in the big split, and will require you to re-enable all modpack components in order to avoid loss of content.
Diffstat (limited to 'homedecor/handlers/inventory.lua')
-rw-r--r--homedecor/handlers/inventory.lua189
1 files changed, 0 insertions, 189 deletions
diff --git a/homedecor/handlers/inventory.lua b/homedecor/handlers/inventory.lua
deleted file mode 100644
index dd09133..0000000
--- a/homedecor/handlers/inventory.lua
+++ /dev/null
@@ -1,189 +0,0 @@
-
-local S = homedecor_i18n.gettext
-
-local default_can_dig = function(pos,player)
- local meta = minetest.get_meta(pos)
- return meta:get_inventory():is_empty("main")
-end
-
-local background = default.gui_bg .. default.gui_bg_img .. default.gui_slots
-local default_inventory_formspecs = {
- ["4"]="size[8,6]".. background ..
- "list[context;main;2,0;4,1;]" ..
- "list[current_player;main;0,2;8,4;]" ..
- "listring[]",
-
- ["6"]="size[8,6]".. background ..
- "list[context;main;1,0;6,1;]"..
- "list[current_player;main;0,2;8,4;]" ..
- "listring[]",
-
- ["8"]="size[8,6]".. background ..
- "list[context;main;0,0;8,1;]"..
- "list[current_player;main;0,2;8,4;]" ..
- "listring[]",
-
- ["12"]="size[8,7]".. background ..
- "list[context;main;1,0;6,2;]"..
- "list[current_player;main;0,3;8,4;]" ..
- "listring[]",
-
- ["16"]="size[8,7]".. background ..
- "list[context;main;0,0;8,2;]"..
- "list[current_player;main;0,3;8,4;]" ..
- "listring[]",
-
- ["24"]="size[8,8]".. background ..
- "list[context;main;0,0;8,3;]"..
- "list[current_player;main;0,4;8,4;]" ..
- "listring[]",
-
- ["32"]="size[8,9]".. background ..
- "list[context;main;0,0.3;8,4;]"..
- "list[current_player;main;0,4.85;8,1;]"..
- "list[current_player;main;0,6.08;8,3;8]"..
- "listring[context;main]" ..
- "listring[current_player;main]" ..
- default.get_hotbar_bg(0,4.85),
-
- ["50"]="size[10,10]".. background ..
- "list[context;main;0,0;10,5;]"..
- "list[current_player;main;1,6;8,4;]" ..
- "listring[]",
-}
-
-local function get_formspec_by_size(size)
- --TODO heuristic to use the "next best size"
- local formspec = default_inventory_formspecs[tostring(size)]
- return formspec or default_inventory_formspecs
-end
-
-----
--- handle inventory setting
--- inventory = {
--- size = 16,
--- formspec = …,
--- locked = false,
--- lockable = true,
--- }
---
-function homedecor.handle_inventory(name, def, original_def)
- local inventory = def.inventory
- if not inventory then return end
- def.inventory = nil
-
- if inventory.size then
- local on_construct = def.on_construct
- def.on_construct = function(pos)
- local size = inventory.size
- local meta = minetest.get_meta(pos)
- meta:get_inventory():set_size("main", size)
- meta:set_string("formspec", inventory.formspec or get_formspec_by_size(size))
- if on_construct then on_construct(pos) end
- end
- end
-
- def.can_dig = def.can_dig or default_can_dig
- def.on_metadata_inventory_move = def.on_metadata_inventory_move or function(pos, from_list, from_index, to_list, to_index, count, player)
- minetest.log("action", S("@1 moves stuff in @2 at @3",
- player:get_player_name(), name, minetest.pos_to_string(pos)
- ))
- end
- def.on_metadata_inventory_put = def.on_metadata_inventory_put or function(pos, listname, index, stack, player)
- minetest.log("action", S("@1 moves @2 to @3 at @4",
- player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos)
- ))
- end
- def.on_metadata_inventory_take = def.on_metadata_inventory_take or function(pos, listname, index, stack, player)
- minetest.log("action", S("@1 takes @2 from @3 at @4",
- player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos)
- ))
- end
-
- local locked = inventory.locked
- if locked then
- local after_place_node = def.after_place_node
- def.after_place_node = function(pos, placer)
- local meta = minetest.get_meta(pos)
- local owner = placer:get_player_name() or ""
-
- meta:set_string("owner", owner)
- meta:set_string("infotext", S("@1 (owned by @2)", def.infotext or def.description, owner))
- return after_place_node and after_place_node(pos, placer)
- end
-
- local allow_move = def.allow_metadata_inventory_move
- def.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- local meta = minetest.get_meta(pos)
- local owner = meta:get_string("owner")
- local playername = player:get_player_name()
-
- if playername == owner or
- minetest.check_player_privs(playername, "protection_bypass") then
- return allow_move and
- allow_move(pos, from_list, from_index, to_list, to_index, count, player) or
- count
- end
-
- minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
- playername, name, owner, minetest.pos_to_string(pos)
- ))
- return 0
- end
-
- local allow_put = def.allow_metadata_inventory_put
- def.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
- local meta = minetest.get_meta(pos)
- local owner = meta:get_string("owner")
- local playername = player:get_player_name()
-
- if playername == owner or
- minetest.check_player_privs(playername, "protection_bypass") then
- return allow_put and allow_put(pos, listname, index, stack, player) or
- stack:get_count()
- end
-
- minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
- playername, name, owner, minetest.pos_to_string(pos)
- ))
- return 0
- end
-
- local allow_take = def.allow_metadata_inventory_take
- def.allow_metadata_inventory_take = function(pos, listname, index, stack, player)
- local meta = minetest.get_meta(pos)
- local owner = meta:get_string("owner")
- local playername = player:get_player_name()
-
- if playername == owner or
- minetest.check_player_privs(playername, "protection_bypass") then
- return allow_take and allow_take(pos, listname, index, stack, player) or
- stack:get_count()
- end
-
- minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4",
- playername, name, owner, minetest.pos_to_string(pos)
- ))
- return 0
- end
- end
-
- local lockable = inventory.lockable
- if lockable then
- local locked_def = table.copy(original_def)
- locked_def.description = S("@1 (Locked)", def.description or name)
-
- local locked_inventory = locked_def.inventory
- locked_inventory.locked = true
- locked_inventory.lockable = nil -- avoid loops of locked locked stuff
-
- local locked_name = name .. "_locked"
- homedecor.register(locked_name, locked_def)
- minetest.register_craft({
- type = "shapeless",
- output = "homedecor:" .. locked_name,
- recipe = { "homedecor:" .. name, "basic_materials:padlock" }
- })
- end
-
-end