-- "I'll stop calling it Minetest when it stops being one." minetest = core artifact = { debug = true } -- For brevity. function include(file) dofile(minetest.get_modpath(minetest.get_current_modname()).."/"..file) end function enum(cases) local out = {} local i = 0 for _, x in ipairs(cases) do out[x] = i i = i +1 end return out end say = minetest.chat_send_all function extend(dst, src) for k, v in pairs(src) do dst[k] = v end return dst end -- Some kind of promise API. (Forget about async-await, though.) function Promise(fn) local p = {resolved = false} p.resolve = function(...) if p.resolved then return end p.resolved = true if p.after then p.after(...) end end fn(p.resolve) return { after = function(fn) p.after = fn end } end minetest.register_lbm{ name = ":artifact:on_load", nodenames = {"group:call_on_load"}, action = function(pos, node) minetest.registered_nodes[node.name].on_load(pos) end } if artifact.debug then minetest.register_chatcommand("chest", { func = function(name, args) minetest.registered_chatcommands.giveme.func(name, "chest_with_everything:chest") end }) end