--local t = os.clock()
+
xdecor = {}
local modpath = minetest.get_modpath("xdecor")
--- Handlers.
-dofile(modpath.."/handlers/animations.lua")
-dofile(modpath.."/handlers/helpers.lua")
-dofile(modpath.."/handlers/nodeboxes.lua")
-dofile(modpath.."/handlers/registration.lua")
+dofile(modpath .. "/handlers/animations.lua")
+dofile(modpath .. "/handlers/helpers.lua")
+dofile(modpath .. "/handlers/nodeboxes.lua")
+dofile(modpath .. "/handlers/registration.lua")
+
+dofile(modpath .. "/src/nodes.lua")
+dofile(modpath .. "/src/recipes.lua")
+
+local subpart = {
+ "chess",
+ "cooking",
+ "enchanting",
+ "hive",
+ "itemframe",
+ "mailbox",
+ "mechanisms",
+ "rope",
+ "workbench",
+}
+
+for _, name in ipairs(subpart) do
+ local enable = minetest.settings:get_bool("enable_xdecor_" .. name)
+ if enable or enable == nil then
+ dofile(modpath .. "/src/" .. name .. ".lua")
+ end
+end
--- Item files.
-dofile(modpath.."/src/chess.lua")
-dofile(modpath.."/src/cooking.lua")
-dofile(modpath.."/src/craftitems.lua")
-dofile(modpath.."/src/enchanting.lua")
-dofile(modpath.."/src/hive.lua")
-dofile(modpath.."/src/itemframe.lua")
-dofile(modpath.."/src/mailbox.lua")
-dofile(modpath.."/src/mechanisms.lua")
-dofile(modpath.."/src/nodes.lua")
-dofile(modpath.."/src/recipes.lua")
-dofile(modpath.."/src/rope.lua")
-dofile(modpath.."/src/workbench.lua")
--print(string.format("[xdecor] loaded in %.2f ms", (os.clock()-t)*1000))