From 6885943d0491db83268f8bb4743bfd82ed725ea2 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 14 Mar 2017 00:04:17 -0400 Subject: update coloredwood, digilines, technic, gloopblocks, homedecor, mesecons, pipeworks, player_textures, signs_lib, unifieddyes, and worldedit --- worldedit_gui/init.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'worldedit_gui/init.lua') diff --git a/worldedit_gui/init.lua b/worldedit_gui/init.lua index 57fd9a8..0a770c6 100644 --- a/worldedit_gui/init.lua +++ b/worldedit_gui/init.lua @@ -131,7 +131,37 @@ elseif rawget(_G, "inventory_plus") then --inventory++ installed inventory_plus.set_inventory_formspec(player, get_formspec(name, page)) end end +elseif rawget(_G, "sfinv") then --sfinv installed (part of minetest_game since 0.4.15) + assert(sfinv.enabled) + local orig_get = sfinv.pages["sfinv:crafting"].get + sfinv.override_page("sfinv:crafting", { + get = function(self, player, context) + local can_worldedit = minetest.check_player_privs(player, {worldedit=true}) + local fs = orig_get(self, player, context) + return fs .. (can_worldedit and "image_button[0,0;1,1;inventory_plus_worldedit_gui.png;worldedit_gui;]" or "") + end + }) + + --show the form when the button is pressed and hide it when done + minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.worldedit_gui then --main page + worldedit.show_page(player:get_player_name(), "worldedit_gui") + return true + elseif fields.worldedit_gui_exit then --return to original page + sfinv.set_page(player, "sfinv:crafting") + return true + end + return false + end) + + worldedit.show_page = function(name, page) + local player = minetest.get_player_by_name(name) + if player then + player:set_inventory_formspec(get_formspec(name, page)) + end + end else --fallback button + -- FIXME: this is a huge clusterfuck and the back button is broken local player_formspecs = {} local update_main_formspec = function(name) -- cgit v1.2.3