Difference between revisions of "Module:Arguments"

From Minetest Wiki
Jump to navigation Jump to search
m (Added makeInvokeFunc)
m (Fixed makeInvokeFunc)
Line 17: Line 17:
 
function p.makeInvokeFunc(func, options)
 
function p.makeInvokeFunc(func, options)
 
     return function(frame)
 
     return function(frame)
         local args = getArgs(frame, options)
+
         local args = p.getArgs(frame, options)
 
         return func(args)
 
         return func(args)
 
     end
 
     end

Revision as of 18:03, 7 May 2017

local p = {}

function p.getArgs(frame, options)

   options = options or {}
   local metatable = {}
   function metatable:__index(key)
       local arg = frame.args[key]
       if arg == nil and options.inherited then
           local parent = frame:getParent()
           arg = parent and parent.args[key] or nil
       end
       return arg
   end
   return setmetatable({}, metatable)

end

function p.makeInvokeFunc(func, options)

   return function(frame)
       local args = p.getArgs(frame, options)
       return func(args)
   end

end

return p