inventory_admin/src/formspecs.lua

95 lines
4.3 KiB
Lua

local S = minetest.get_translator("mcl_chests")
local F = minetest.formspec_escape
local C = minetest.colorize
-- Get the formspec for the inventory based on the game
function inventory_admin.get_player_inventory_formspec(target_player_name, admin_name)
if inventory_admin.utils.is_mineclone2() then
-- MineClone2 formspec
local formspec = {
"formspec_version[4]",
"size[11.75,13]", -- Adjust the height to accommodate the spacing
-- Title for the target player's inventory
"label[0.375,0.375;", minetest.formspec_escape(target_player_name .. "'s Inventory"), "]",
-- Slot backgrounds for the target player's main inventory excluding the hotbar
mcl_formspec.get_itemslot_bg_v4(0.375, 1, 9, 3),
-- Slot list for the target player's main inventory excluding the hotbar
"list[detached:" .. target_player_name .. "_inventory;main;0.375,1;9,3;9]",
-- Slot background for the target player's hotbar, placed at the bottom
mcl_formspec.get_itemslot_bg_v4(0.375, 5, 9, 1),
-- Slot list for the target player's hotbar
"list[detached:" .. target_player_name .. "_inventory;main;0.375,5;9,1;0]",
-- Title for the admin's inventory, moved further down to create space
"label[0.375,6.5;Your Inventory]",
-- Slot backgrounds for the admin player's main inventory excluding the hotbar
mcl_formspec.get_itemslot_bg_v4(0.375, 7, 9, 3),
-- Slot list for the admin player's main inventory excluding the hotbar
"list[current_player;main;0.375,7;9,3;9]",
-- Slot background for the admin player's hotbar, placed further down with spacing similar to the singleplayer's hotbar
mcl_formspec.get_itemslot_bg_v4(0.375, 11, 9, 1),
-- Slot list for the admin player's hotbar, with adjusted Y-coordinate for correct spacing
"list[current_player;main;0.375,11;9,1;0]",
-- Listrings to allow moving items between the target's and admin's inventories
"listring[detached:" .. target_player_name .. "_inventory;main]",
"listring[current_player;main]",
}
return table.concat(formspec)
else
-- minetest_game formspec
local formspec = {
"size[9,11]", -- Width of 8 slots, and enough height to accommodate all slots and labels
-- Title for the target player's inventory
"label[0.5,0;", minetest.formspec_escape(target_player_name .. "s Inventar"), "]",
-- Singleplayer's complete inventory, including the hotbar in one block
"list[detached:" .. target_player_name .. "_inventory;main;0,0.5;9,4;]", -- hotbar, 9 slots per row, 1 rows
-- Title for the admin's inventory
"label[0.5,5.5;Dein Inventar]",
-- Admin's hotbar visually separated
"list[current_player;main;0,6;9,1;0]", -- The hotbar with 9 slots
-- Admin's main inventory excluding the hotbar
"list[current_player;main;0,7;9,3;9]", -- 3 rows of 9 slots each, starting after the hotbar
-- Listrings for item movement between the inventories
"listring[detached:" .. target_player_name .. "_inventory;main]",
"listring[current_player;main]",
}
return table.concat(formspec)
end
end
function inventory_admin.get_enderchest_inventory_formspec(target_player_name)
local formspec_ender_chest = {
"formspec_version[4]",
"size[11.75,10.425]",
"label[0.375,0.375;", F(C(mcl_formspec.label_color, target_player_name.."'s "..S("Ender Chest"))) .. "]",
mcl_formspec.get_itemslot_bg_v4(0.375, 0.75, 9, 3),
"list[player:" .. target_player_name .. ";enderchest;0.375,0.75;9,3;]", -- Access the target player's enderchest
"label[0.375,4.7;", F(C(mcl_formspec.label_color, S("Inventar"))) .. "]",
mcl_formspec.get_itemslot_bg_v4(0.375, 5.1, 9, 3),
"list[current_player;main;0.375,5.1;9,3;9]",
mcl_formspec.get_itemslot_bg_v4(0.375, 9.05, 9, 1),
"list[current_player;main;0.375,9.05;9,1;]",
"listring[player:" .. target_player_name .. ";enderchest]",
"listring[current_player;main]",
}
return table.concat(formspec_ender_chest)
end