关于模块的开关设置
someblu opened this issue · 14 comments
curseforge上的一名用户Cather520
指出:
I have use ElvUI Enhanced Again (BfA) but I have closed windstools minibutton.
should I close it in lua? THX.
我有使用同樣是ELV的額外插件 ElvUI Enhanced Again (BfA)
不過我有關閉WINDSTOOL的迷你按鈕功能 還是會跳錯誤
相关报错:
8x ...ElvUI_WindTools\Modules\MinimapButtons.lua:10: Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - Module 'MinimapButtons' already exists.
[C]: ?
ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0-12.lua:270: in function `NewModule'
...ElvUI_WindTools\Modules\MinimapButtons.lua:10: in main chunk
Locals:
(*temporary) = "Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - Module 'MinimapButtons' already exists."
这其实是windtools所有模块存在的问题,即使在设置面板中关闭了相应模块,windtools依然会新建和载入相应模块,只是不启用相关功能而已。
新的dev分支将用于此次重构,我push了一个新的commit。
本次重构的规则如下:
- 各模块目录下新增一个
config.lua
用以载入和保存模块内各功能的配置。 - 载入设定的代码中凡是涉及到的本地变量均会将其改为存储在elvui模块class中的一个attribute。
- 重写insert_option函数和WT.ToolConfigs数组,改为读取一个具有特定规范的字典并于core.lua中循环载入设定而不是直接以函数存储再调用函数。该字典支持自定义函数,且交由一个函数管理并调整各项的type和guiInline值。
ElvUI Enhanced Again (BfA) 这个以前我也有在写代码的,只是那个作者其实不太活跃我就自己弄了,我反正除了工具箱以外都不用其他增强所以也懒得搞这块。
工具箱本来就是一个小项目,现在这样确实有这个问题,但是管理起来方便,改代码的时候也能快速管理配置。
你要是有空彻底搞好当然是最好。
我记得有个E.db.windtools.[module]的报错,是首次安装更新后产生的,源于core.lua中
-- 转换旧的数据, 经过一两个小版本迭代后可以考虑删除
if E.db.WindTools[feature_name] then
E.db.WindTools[module_name][feature_name] = E.db.WindTools[feature_name]
E.db.WindTools[feature_name] = nil
end
首次加载不生效,但是重载就可以了。。。
把类似iShadow:SetShadowLevel(value)改成E:GetModule("Wind_iShadow"):SetShadowLevel(value)就好了
新的commit中应该已经修复了这类问题。