summaryrefslogtreecommitdiff
path: root/worldedit_gui/init.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-14 00:04:17 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-14 00:04:17 -0400
commit6885943d0491db83268f8bb4743bfd82ed725ea2 (patch)
tree4be2bba618fe67d1b99a99f9aedf1a0f397a9c9c /worldedit_gui/init.lua
parenta46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0 (diff)
downloaddreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.gz
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.bz2
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.xz
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.zip
update coloredwood, digilines, technic, gloopblocks, homedecor, mesecons,
pipeworks, player_textures, signs_lib, unifieddyes, and worldedit
Diffstat (limited to 'worldedit_gui/init.lua')
-rw-r--r--worldedit_gui/init.lua30
1 files changed, 30 insertions, 0 deletions
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)