-- 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