mirror of
https://github.com/minetest-mods/carpets.git
synced 2024-12-20 20:35:42 +01:00
Merge remote-tracking branch 'remotes/Rui/p'
This commit is contained in:
commit
33ee91939b
22
init.lua
22
init.lua
@ -5,28 +5,12 @@ local modpath = minetest.get_modpath(modname)
|
|||||||
|
|
||||||
dofile(modpath .. "/api.lua")
|
dofile(modpath .. "/api.lua")
|
||||||
|
|
||||||
local depends = (function()
|
local modutils = dofile(modpath .. "/modutils.lua")
|
||||||
local file = io.open(modpath .. "/depends.txt")
|
local depmod = modutils.get_depend_checker(modname)
|
||||||
if not file then
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local depends = {}
|
|
||||||
for line in file:lines() do
|
|
||||||
if line:sub(-1) == "?" then
|
|
||||||
line = line:sub(1, -2)
|
|
||||||
end
|
|
||||||
depends[line] = true
|
|
||||||
end
|
|
||||||
|
|
||||||
file:close()
|
|
||||||
|
|
||||||
return depends
|
|
||||||
end)()
|
|
||||||
|
|
||||||
local function filter(name, def)
|
local function filter(name, def)
|
||||||
-- disable carpets from loaded modules but not defined in dependency
|
-- disable carpets from loaded modules but not defined in dependency
|
||||||
if not depends[def.mod_origin] then
|
if not depmod:check_depend(def.mod_origin) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
42
modutils.lua
Normal file
42
modutils.lua
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
local modutils = {}
|
||||||
|
|
||||||
|
local function check_depend(this, modname)
|
||||||
|
local depends = this.depends
|
||||||
|
if depends[modname] then
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function modutils.get_depend_checker(modname)
|
||||||
|
-- Definition of returning object attributes
|
||||||
|
local this = { }
|
||||||
|
this.modname = modname
|
||||||
|
this.depends = {} -- depends.txt parsed
|
||||||
|
this.check_depend = check_depend -- method
|
||||||
|
|
||||||
|
-- get module path
|
||||||
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
if not modpath then
|
||||||
|
return nil -- module not found
|
||||||
|
end
|
||||||
|
|
||||||
|
-- read the depends file
|
||||||
|
local dependsfile = io.open(modpath .. "/depends.txt")
|
||||||
|
if not dependsfile then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- parse the depends file
|
||||||
|
for line in dependsfile:lines() do
|
||||||
|
if line:sub(-1) == "?" then
|
||||||
|
line = line:sub(1, -2)
|
||||||
|
end
|
||||||
|
this.depends[line] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
return this
|
||||||
|
end
|
||||||
|
|
||||||
|
return modutils
|
Loading…
Reference in New Issue
Block a user