From 4a005972dfad6f97c9cf1d48d14040d35cd1aed9 Mon Sep 17 00:00:00 2001 From: Panquesito7 Date: Mon, 4 May 2020 22:30:26 -0500 Subject: [PATCH] Add SFINV support --- mod.conf | 4 ++-- mod_integrations/mod_integrations.lua | 5 ++++- mod_integrations/sfinv.lua | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 mod_integrations/sfinv.lua diff --git a/mod.conf b/mod.conf index 9cbfd1f..78258b4 100644 --- a/mod.conf +++ b/mod.conf @@ -1,3 +1,3 @@ name = quests -optional_depends = intllib, unified_inventory, inventory_plus, central_message -description = Quest framework for Minetest. \ No newline at end of file +optional_depends = intllib, unified_inventory, inventory_plus, central_message, sfinv +description = Quest framework for Minetest. diff --git a/mod_integrations/mod_integrations.lua b/mod_integrations/mod_integrations.lua index d737a2a..4b5092a 100644 --- a/mod_integrations/mod_integrations.lua +++ b/mod_integrations/mod_integrations.lua @@ -7,8 +7,11 @@ if minetest.get_modpath("inventory_plus") then dofile(minetest.get_modpath("quests") .. "/mod_integrations/inventory_plus.lua") end +if minetest.global_exists("sfinv") then + dofile(minetest.get_modpath("quests") .. "/mod_integrations/sfinv.lua") +end ---mod that displays notifications in the screen's center +-- mod that displays notifications in the screen's center if minetest.get_modpath("central_message") then dofile(minetest.get_modpath("quests") .. "/mod_integrations/central_message.lua") diff --git a/mod_integrations/sfinv.lua b/mod_integrations/sfinv.lua new file mode 100644 index 0000000..1feba78 --- /dev/null +++ b/mod_integrations/sfinv.lua @@ -0,0 +1,19 @@ +assert(sfinv.enabled, "Please enable sfinv in order to use it.") +local old_func = sfinv.pages["sfinv:crafting"].get +sfinv.override_page("sfinv:crafting", { + get = function(self, player, context) + local fs = old_func(self, player, context) + return fs .. "image_button[0,0;1,1;inventory_plus_quests.png;quests;]" + end +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.quests then + quests.show_formspec(player:get_player_name()) + return true + elseif fields.quests_exit then + sfinv.set_page(player, "sfinv:crafting") + return true + end + return false +end)