ElvUI WindTools

ElvUI WindTools

3M Downloads

关于模块的开关设置

someblu opened this issue · 14 comments

commented

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依然会新建和载入相应模块,只是不启用相关功能而已。

commented

如果要修复,不仅仅需要在newmodule前加入对enabled的判断,可能还需要将模块的设置项、数据项与模块功能代码分离。

commented

还有一种方案,就是把模块名全都加上windtools标签,例如windtools_MinimapButtons。

commented

新的dev分支将用于此次重构,我push了一个新的commit。
本次重构的规则如下:

  • 各模块目录下新增一个config.lua用以载入和保存模块内各功能的配置。
  • 载入设定的代码中凡是涉及到的本地变量均会将其改为存储在elvui模块class中的一个attribute。
  • 重写insert_option函数和WT.ToolConfigs数组,改为读取一个具有特定规范的字典并于core.lua中循环载入设定而不是直接以函数存储再调用函数。该字典支持自定义函数,且交由一个函数管理并调整各项的type和guiInline值。
commented

反正这几天放假,团本也没开,世界任务懒得做,就没事找事干干了。。。估计明天国服维护完成前能完成代码的重构,聊天模块的重构已经完成了。

commented

ElvUI Enhanced Again (BfA) 这个以前我也有在写代码的,只是那个作者其实不太活跃我就自己弄了,我反正除了工具箱以外都不用其他增强所以也懒得搞这块。
工具箱本来就是一个小项目,现在这样确实有这个问题,但是管理起来方便,改代码的时候也能快速管理配置。
你要是有空彻底搞好当然是最好。

commented

有个很大的问题啊,config 先于模块载入,但是 config 中本来有些选项就是调用模块的函数来即时反映,现在全部都失效了

commented

举个例子。。

commented

我记得有个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

首次加载不生效,但是重载就可以了。。。

commented

阿对对对,这边我忘了改了。。。

commented

之前注意到了,代码改的太多给疏忽了。。。

commented

比如iShadow功能。

commented

把类似iShadow:SetShadowLevel(value)改成E:GetModule("Wind_iShadow"):SetShadowLevel(value)就好了

commented

新的commit中应该已经修复了这类问题。

commented

嗯 我等下再去试一下 现在切master分支在伐木5M