From 61ffe1eac4565bbb74b79677a618e7f4dd894d3c Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 25 Nov 2011 21:32:12 +0200 Subject: [PATCH] builtin.lua --- data/mods/default/init.lua | 78 ++------------------------------------ src/server.cpp | 13 ++++++- 2 files changed, 16 insertions(+), 75 deletions(-) diff --git a/data/mods/default/init.lua b/data/mods/default/init.lua index 11fac245d..3e451b649 100644 --- a/data/mods/default/init.lua +++ b/data/mods/default/init.lua @@ -1,77 +1,7 @@ -function basic_dump2(o) - if type(o) == "number" then - return tostring(o) - elseif type(o) == "string" then - return string.format("%q", o) - elseif type(o) == "boolean" then - return tostring(o) - elseif type(o) == "function" then - return "" - elseif type(o) == "userdata" then - return "" - elseif type(o) == "nil" then - return "nil" - else - error("cannot dump a " .. type(o)) - return nil - end -end - -function dump2(o, name, dumped) - name = name or "_" - dumped = dumped or {} - io.write(name, " = ") - if type(o) == "number" or type(o) == "string" or type(o) == "boolean" - or type(o) == "function" or type(o) == "nil" - or type(o) == "userdata" then - io.write(basic_dump2(o), "\n") - elseif type(o) == "table" then - if dumped[o] then - io.write(dumped[o], "\n") - else - dumped[o] = name - io.write("{}\n") -- new table - for k,v in pairs(o) do - local fieldname = string.format("%s[%s]", name, basic_dump2(k)) - dump2(v, fieldname, dumped) - end - end - else - error("cannot dump a " .. type(o)) - return nil - end -end - -function dump(o, dumped) - dumped = dumped or {} - if type(o) == "number" then - return tostring(o) - elseif type(o) == "string" then - return string.format("%q", o) - elseif type(o) == "table" then - if dumped[o] then - return "" - end - dumped[o] = true - local t = {} - for k,v in pairs(o) do - t[#t+1] = "" .. k .. " = " .. dump(v, dumped) - end - return "{" .. table.concat(t, ", ") .. "}" - elseif type(o) == "boolean" then - return tostring(o) - elseif type(o) == "function" then - return "" - elseif type(o) == "userdata" then - return "" - elseif type(o) == "nil" then - return "nil" - else - error("cannot dump a " .. type(o)) - return nil - end -end - +-- Helper functions defined by builtin.lua: +-- dump2(obj, name="_", dumped={}) +-- dump(obj, dumped={}) +-- -- Textures: -- Mods should prefix their textures with modname_, eg. given the mod -- name "foomod", a texture could be called "foomod_superfurnace.png" diff --git a/src/server.cpp b/src/server.cpp index fea103e1c..6d34a0fac 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1024,6 +1024,8 @@ Server::Server( // Initialize default node definitions content_mapnode_init(m_nodedef); + // Path to builtin.lua + std::string builtinpath = porting::path_data + DIR_DELIM + "builtin.lua"; // Add default global mod path m_modspaths.push_back(porting::path_data + DIR_DELIM + "mods"); @@ -1034,7 +1036,16 @@ Server::Server( assert(m_lua); // Export API scriptapi_export(m_lua, this); - // Load and run scripts + // Load and run builtin.lua + infostream<<"Server: Loading builtin Lua stuff from \""< mods = getMods(m_modspaths); for(core::list::Iterator i = mods.begin(); i != mods.end(); i++){