2017-02-09 07:08:29 +01:00
|
|
|
-- microexpansion/init.lua
|
2017-07-25 19:47:25 +02:00
|
|
|
microexpansion = {}
|
|
|
|
microexpansion.data = {}
|
|
|
|
microexpansion.modpath = minetest.get_modpath("microexpansion") -- Get modpath
|
|
|
|
microexpansion.worldpath = minetest.get_worldpath() -- Get worldpath
|
|
|
|
|
|
|
|
local modpath = microexpansion.modpath -- Modpath pointer
|
2017-02-09 07:08:29 +01:00
|
|
|
|
2017-02-23 02:25:43 +01:00
|
|
|
-- Formspec GUI related stuff
|
|
|
|
microexpansion.gui_bg = "bgcolor[#080808BB;true]background[5,5;1,1;gui_formbg.png;true]"
|
|
|
|
microexpansion.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
|
|
|
|
|
2019-05-07 17:49:26 +02:00
|
|
|
microexpansion.settings = {
|
|
|
|
huge_stacks = minetest.settings:get_bool("microexpansion_huge_stacks")
|
|
|
|
}
|
|
|
|
|
2017-02-09 07:08:29 +01:00
|
|
|
-- logger
|
|
|
|
function microexpansion.log(content, log_type)
|
2017-07-25 19:47:25 +02:00
|
|
|
assert(content, "microexpansion.log: missing content")
|
|
|
|
if not content then return false end
|
|
|
|
if log_type == nil then log_type = "action" end
|
|
|
|
minetest.log(log_type, "[MicroExpansion] "..content)
|
2017-02-09 07:08:29 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Load API
|
|
|
|
dofile(modpath.."/api.lua")
|
2020-06-17 09:30:47 +02:00
|
|
|
-- Machine Registration
|
|
|
|
dofile(modpath.."/register.lua")
|
2017-02-09 07:29:04 +01:00
|
|
|
|
2017-02-15 04:35:06 +01:00
|
|
|
-------------------
|
|
|
|
----- MODULES -----
|
|
|
|
-------------------
|
2017-02-09 16:37:14 +01:00
|
|
|
|
2017-02-15 04:35:06 +01:00
|
|
|
local loaded_modules = {}
|
|
|
|
|
|
|
|
local settings = Settings(modpath.."/modules.conf"):to_table()
|
|
|
|
|
|
|
|
-- [function] Get module path
|
|
|
|
function microexpansion.get_module_path(name)
|
2017-07-25 19:47:25 +02:00
|
|
|
local module_path = modpath.."/modules/"..name
|
2017-02-15 04:35:06 +01:00
|
|
|
|
2019-05-01 13:20:09 +02:00
|
|
|
local handle = io.open(module_path.."/init.lua")
|
|
|
|
if handle then
|
|
|
|
io.close(handle)
|
2017-07-25 19:47:25 +02:00
|
|
|
return module_path
|
|
|
|
end
|
2017-02-15 04:35:06 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
-- [function] Load module (overrides modules.conf)
|
|
|
|
function microexpansion.load_module(name)
|
2020-03-01 08:23:39 +01:00
|
|
|
if not loaded_modules[name] then
|
2019-05-01 13:20:09 +02:00
|
|
|
local module_path = microexpansion.get_module_path(name)
|
2017-07-25 19:47:25 +02:00
|
|
|
|
2019-05-01 13:20:09 +02:00
|
|
|
if module_path then
|
|
|
|
dofile(module_path.."/init.lua")
|
2017-07-25 19:47:25 +02:00
|
|
|
loaded_modules[name] = true
|
|
|
|
return true
|
|
|
|
else
|
|
|
|
microexpansion.log("Invalid module \""..name.."\". The module either does not exist "..
|
|
|
|
"or is missing an init.lua file.", "error")
|
|
|
|
end
|
|
|
|
else
|
|
|
|
return true
|
|
|
|
end
|
2017-02-15 04:35:06 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
-- [function] Require module (does not override modules.conf)
|
|
|
|
function microexpansion.require_module(name)
|
2019-05-01 13:20:09 +02:00
|
|
|
if settings[name] then
|
2020-06-15 18:21:46 +02:00
|
|
|
microexpansion.log("loading module " .. name)
|
2017-07-25 19:47:25 +02:00
|
|
|
return microexpansion.load_module(name)
|
2020-06-15 09:39:02 +02:00
|
|
|
else
|
2020-06-15 18:21:46 +02:00
|
|
|
microexpansion.log("not loading module " .. name)
|
2017-07-25 19:47:25 +02:00
|
|
|
end
|
2017-02-15 04:35:06 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
for name,enabled in pairs(settings) do
|
2017-07-25 19:47:25 +02:00
|
|
|
if enabled ~= false then
|
|
|
|
microexpansion.load_module(name)
|
|
|
|
end
|
2017-02-15 04:35:06 +01:00
|
|
|
end
|