aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Yves Rollo <dev@pyrollo.com>2018-12-11 11:52:55 +0100
committerPierre-Yves Rollo <dev@pyrollo.com>2018-12-11 11:52:55 +0100
commit4005b99c0583431beedb9dcdce3b1f3df9a57e1d (patch)
tree230da1fb0e2d94dd59639c318bcf6705c093d462
parent4c8eee06b2443e4758cd9595d1991393584b76b0 (diff)
downloaddisplay_modpack_no_craft-4005b99c0583431beedb9dcdce3b1f3df9a57e1d.tar.gz
display_modpack_no_craft-4005b99c0583431beedb9dcdce3b1f3df9a57e1d.zip
Added font_lib deprecation and corresponding notices in READMEs
-rw-r--r--README.md10
-rw-r--r--deprecation.lua54
-rw-r--r--init.lua4
3 files changed, 64 insertions, 4 deletions
diff --git a/README.md b/README.md
index 33af92b..13d287f 100644
--- a/README.md
+++ b/README.md
@@ -16,8 +16,16 @@ For more information, see the [forum topic](https://forum.minetest.net/viewtopic
You can add fonts by installing fonts mod. Be aware that each font comes with numerous textures. This can result in slowing media downloading and/or client display.
-Font mods can be found here:
+Font mods can be found here:
* [Metro](https://github.com/pyrollo/display_modpack/tree/master/font_metro): A multipurpose font with many chars (uppercase, lowercase and accentuated latin letters, usual signs, cyrillic and greek letters).
* [OldWizard](https://github.com/pyrollo/font_oldwizard): An old style gothic font.
* [Botic](https://github.com/pyrollo/font_botic): A scifi style font.
+
+ ## Deprecation notice (for modders)
+
+ ### December 2018
+ Following object is deprecate, shows a warning in log when used:
+ * `font_lib` global table (use `font_api` global table instead);
+
+ This object will be removed in the future.
diff --git a/deprecation.lua b/deprecation.lua
new file mode 100644
index 0000000..5c0bed6
--- /dev/null
+++ b/deprecation.lua
@@ -0,0 +1,54 @@
+--[[
+ font_api mod for Minetest - Library to create textures with fonts and text
+ (c) Pierre-Yves Rollo
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+--]]
+
+-- Deprecation
+
+function deprecated_global_table(deprecated_global_name, replacement_global_name)
+ assert(type(deprecated_global_name) == 'string', "deprecated_global_name should be a string.")
+ assert(type(replacement_global_name) == 'string', "replacement_global_name should be a string.")
+ assert(deprecated_global_name ~= '', "deprecated_global_name should not be empty.")
+ assert(replacement_global_name ~= '', "replacement_global_name should not be empty.")
+ assert(rawget(_G, deprecated_global_name) == nil, "replacement global already exists.")
+ if _G[replacement_global_name] == nil then
+ print('warn_deprecated_functions: Warning, replacement global "'..replacement_global_name..'" does not exists.')
+ return
+ end
+ local meta = {
+ deprecated = deprecated_global_name,
+ replacement = replacement_global_name,
+ __index = function(table, key)
+ local meta = getmetatable(table)
+ local dbg = debug.getinfo(2, "lS")
+ minetest.log("warning", string.format('Warning: Accessing deprecated "%s" table, "%s" should be used instead (%s:%d).',
+ meta.deprecated, meta.replacement, (dbg.short_src or 'unknown'), (dbg.currentline or 0)))
+ return _G[meta.replacement][key]
+ end,
+ __newindex = function(table, key, value)
+ local meta = getmetatable(table)
+ local dbg = debug.getinfo(2, "lS")
+ minetest.log("warning", string.format('Warning: Accessing deprecated "%s" table, "%s" should be used instead (%s:%d).',
+ meta.deprecated, meta.replacement, (dbg.short_src or 'unknown'), (dbg.currentline or 0)))
+ _G[meta.replacement][key]=value
+ end,
+ }
+ rawset(_G, deprecated_global_name, {})
+ setmetatable(_G[deprecated_global_name], meta)
+end
+
+-- deprecated(2) -- December 2018 - Deprecation of font_lib
+deprecated_global_table('font_lib', 'font_api')
diff --git a/init.lua b/init.lua
index 7fbedf9..80fc98a 100644
--- a/init.lua
+++ b/init.lua
@@ -33,6 +33,4 @@ dofile(font_api.path.."/fontform.lua")
if minetest.get_modpath("display_api") then
dofile(font_api.path.."/display_api.lua")
end
-
--- Compatibility
-font_lib = font_api
+dofile(font_api.path.."/deprecation.lua")