diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/data/init.lua | 112 |
1 files changed, 60 insertions, 52 deletions
diff --git a/plugins/data/init.lua b/plugins/data/init.lua index 5ec08cbec3c..f58742e8d34 100644 --- a/plugins/data/init.lua +++ b/plugins/data/init.lua @@ -13,8 +13,10 @@ exports.author = { name = "Carl" } local data = exports +local plugindir + function data.set_folder(path) - data.path = path + plugindir = path end function data.startplugin() @@ -22,60 +24,66 @@ function data.startplugin() local valid_lst = {} local cur_set local cur_list - emu.register_start(function() - data_scr = {} - for file in lfs.dir(data.path) do - local name = string.match(file, "^(data_.*).lua$") - if name then - local script = require("data/" .. name) - if script then - data_scr[#data_scr + 1] = script + + emu.register_start( + function() + data_scr = {} + for file in lfs.dir(plugindir) do + local name = string.match(file, '^(data_.*).lua$') + if name then + local script = require('data/' .. name) + if script then + table.insert(data_scr, script) + end + end + end + end) + + emu.register_callback( + function(set) + local ret = {} + if set == '' then + set = emu.romname() end - end - end - end) - emu.register_callback(function(set) - local ret = {} - if set == "" then - set = emu.romname() - end - if set == cur_set then - return cur_list - end - cur_set = set - if not set then - return nil - end - valid_lst = {} - for num, scr in ipairs(data_scr) do - local setname, softname = set:match("^([^,]+),?(.*)$") - if softname == "" then - softname = nil - end - local name = scr.check(setname, softname) - if name then - ret[#ret + 1] = name - valid_lst[#valid_lst + 1] = scr - end - end - cur_list = ret - return ret - end, "data_list") + if set == cur_set then + return cur_list + end + cur_set = set + if not set then + return nil + end + valid_lst = {} + for num, scr in ipairs(data_scr) do + local setname, softname = set:match('^([^,]+),?(.*)$') + if softname == '' then + softname = nil + end + local name = scr.check(setname, softname) + if name then + table.insert(ret, name) + table.insert(valid_lst, scr) + end + end + cur_list = ret + return ret + end, + 'data_list') - emu.register_callback(function(num) - return valid_lst[num + 1].get() - end, "data") + emu.register_callback( + function(num) + return valid_lst[num + 1].get() + end, + 'data') - emu.register_callback(function(num) - local ver - if valid_lst[num + 1].ver then - ver = valid_lst[num + 1].ver() - end - if ver then - return ver - end - return "" - end, "data_version") + emu.register_callback( + function(num) + local ver + if valid_lst[num + 1].ver then + ver = valid_lst[num + 1].ver() + end + return ver or '' + end, + 'data_version') end return exports |
