From b0e55c52c827c44770bd2575a8293544e02d5e48 Mon Sep 17 00:00:00 2001
From: Andrew Ward <rw@rubenwardy.com>
Date: Wed, 28 Mar 2018 18:28:26 +0100
Subject: [PATCH] Add formspec theming, remove sfinv's dependency on default

---
 game_api.txt           |  9 ++++++---
 mods/default/init.lua  | 13 ++++++++++---
 mods/sfinv/README.md   |  2 ++
 mods/sfinv/api.lua     |  6 +-----
 mods/sfinv/depends.txt |  1 -
 5 files changed, 19 insertions(+), 12 deletions(-)
 delete mode 100644 mods/sfinv/depends.txt

diff --git a/game_api.txt b/game_api.txt
index 1ef2679..86938f2 100644
--- a/game_api.txt
+++ b/game_api.txt
@@ -548,6 +548,9 @@ set a players home position and teleport a player to home position.
 Sfinv API
 ---------
 
+It is recommended that you read this link for a good introduction to the
+sfinv API by its author: https://rubenwardy.com/minetest_modding_book/en/chapters/sfinv.html
+
 ### sfinv Methods
 
 **Pages**
@@ -752,15 +755,15 @@ GUI and formspecs
 
 `default.gui_bg`
 
- * Background color formspec element
+ * Deprecated, remove from mods.
 
 `default.gui_bg_img`
 
- * Image overlay formspec element for the background to use in formspecs
+ * Deprecated, remove from mods.
 
 `default.gui_slots`
 
- * `listcolors` formspec element that is used to format the slots in formspecs
+ * Deprecated, remove from mods.
 
 `default.gui_survival_form`
 
diff --git a/mods/default/init.lua b/mods/default/init.lua
index 2d5a9bd..5fef4be 100644
--- a/mods/default/init.lua
+++ b/mods/default/init.lua
@@ -9,9 +9,16 @@ default = {}
 default.LIGHT_MAX = 14
 
 -- GUI related stuff
-default.gui_bg = "bgcolor[#080808BB;true]"
-default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]"
-default.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
+default.gui_bg     = ""
+default.gui_bg_img = ""
+default.gui_slots  = ""
+
+minetest.register_on_joinplayer(function(player)
+	player:set_formspec_prepend([[
+			bgcolor[#080808BB;true]
+			background[5,5;1,1;gui_formbg.png;true]
+			listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] ]])
+end)
 
 function default.get_hotbar_bg(x,y)
 	local out = ""
diff --git a/mods/sfinv/README.md b/mods/sfinv/README.md
index 6ff3392..0b152a0 100644
--- a/mods/sfinv/README.md
+++ b/mods/sfinv/README.md
@@ -5,6 +5,8 @@ Simple Fast Inventory
 
 A cleaner, simpler, solution to having an advanced inventory in Minetest.
 
+Available for use outside of MTG here: <https://forum.minetest.net/viewtopic.php?t=19765>
+
 Written by rubenwardy.  
 License: MIT
 
diff --git a/mods/sfinv/api.lua b/mods/sfinv/api.lua
index fdb652b..b9ddb39 100644
--- a/mods/sfinv/api.lua
+++ b/mods/sfinv/api.lua
@@ -36,10 +36,7 @@ function sfinv.get_nav_fs(player, context, nav, current_idx)
 	end
 end
 
-local theme_main = "bgcolor[#080808BB;true]" .. default.gui_bg ..
-		default.gui_bg_img
-
-local theme_inv = default.gui_slots .. [[
+local theme_inv = [[
 		list[current_player;main;0,4.7;8,1;]
 		list[current_player;main;0,5.85;8,3;8]
 	]]
@@ -47,7 +44,6 @@ local theme_inv = default.gui_slots .. [[
 function sfinv.make_formspec(player, context, content, show_inv, size)
 	local tmp = {
 		size or "size[8,8.6]",
-		theme_main,
 		sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx),
 		content
 	}
diff --git a/mods/sfinv/depends.txt b/mods/sfinv/depends.txt
deleted file mode 100644
index 4ad96d5..0000000
--- a/mods/sfinv/depends.txt
+++ /dev/null
@@ -1 +0,0 @@
-default