webmcp

annotate framework/env/slot/reset_all.lua @ 257:78a2ae40c88e

Code optimization in slot.reset_all{...}
author jbe
date Sun Mar 15 01:06:04 2015 +0100 (2015-03-15)
parents 09f749330d13
children f491011ebe16
rev   line source
jbe/bsw@0 1 --[[--
poelzi@34 2 slot.reset_all{
jbe@47 3 except = except -- Reset all slots, except slots named in this list
poelzi@34 4 }
jbe/bsw@0 5
jbe@47 6 Calling this function resets all slots to be empty. An exclusion list may be passed to the function as named argument.
jbe/bsw@0 7
jbe/bsw@0 8 --]]--
jbe/bsw@0 9
poelzi@34 10 function slot.reset_all(args)
jbe@257 11 local saved
poelzi@34 12 if args and args.except then
jbe@257 13 saved = {}
jbe@47 14 for i, key in ipairs(args.except) do
poelzi@34 15 saved[key] = slot._data[key]
poelzi@34 16 end
poelzi@34 17 end
jbe/bsw@0 18 slot._data = setmetatable({}, slot._data_metatable)
poelzi@34 19 if saved then
jbe@47 20 for key, value in pairs(saved) do
poelzi@34 21 slot._data[key] = value
poelzi@34 22 end
poelzi@34 23 end
jbe/bsw@0 24 end

Impressum / About Us