12345678910111213141516171819 |
- -- Modify core.get_mod_storage to return the storage for the current mod.
- local get_current_modname = core.get_current_modname
- local old_get_mod_storage = core.get_mod_storage
- local storages = setmetatable({}, {
- __mode = "v", -- values are weak references (can be garbage-collected)
- __index = function(self, modname)
- local storage = old_get_mod_storage(modname)
- self[modname] = storage
- return storage
- end,
- })
- function core.get_mod_storage()
- local modname = get_current_modname()
- return modname and storages[modname]
- end
|