完成焦点等开发
This commit is contained in:
333
docs/插件功能概览.md
Normal file
333
docs/插件功能概览.md
Normal file
@@ -0,0 +1,333 @@
|
||||
# Nanami-UI 插件功能概览
|
||||
|
||||
本文基于当前仓库代码结构整理,目标是快速回答两个问题:
|
||||
|
||||
1. 这个乌龟服插件当前做了什么。
|
||||
2. 每块功能主要落在哪些代码文件里。
|
||||
|
||||
## 1. 插件定位
|
||||
|
||||
`Nanami-UI` 是一个面向 Turtle WoW 1.12 环境的大型整合型 UI 插件。整体风格以 `SFrames` 为统一命名空间,核心能力主要包括:
|
||||
|
||||
- 自定义单位框体:玩家、宠物、目标、目标的目标、队伍、团队、焦点、天赋树。
|
||||
- 动作条与按键:动作条重排、绑定管理、绑定导入导出。
|
||||
- 地图与导航:小地图/世界地图换肤、地图迷雾揭示、区域等级、队友图标、暗月马戏团辅助。
|
||||
- 聊天与社交:聊天框接管、私聊容器、社交面板重做。
|
||||
- 背包与交易:背包/银行整合、离线库存、商人、交易、邮件、拾取窗口。
|
||||
- 任务与书籍:任务对话、任务日志皮肤、书籍阅读界面。
|
||||
- 职业与养成:角色面板、装备统计、观察面板、法术书、训练师、专业/制造、野兽训练。
|
||||
- 辅助与增强:Tooltip、Tweaks、AFK 屏保、Setup Wizard、配置面板等。
|
||||
|
||||
## 2. 加载主线
|
||||
|
||||
### 2.1 入口文件
|
||||
|
||||
- [Nanami-UI.toc](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Nanami-UI.toc)
|
||||
负责定义加载顺序、依赖和 SavedVariables。
|
||||
- [Core.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Core.lua)
|
||||
定义全局表 `SFrames`、事件分发、初始化总流程、角色配置快照、斜杠命令。
|
||||
- [Config.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Config.lua)
|
||||
提供默认配置、主题预设、颜色与样式生成逻辑。
|
||||
|
||||
### 2.2 初始化方式
|
||||
|
||||
当前插件的模块大致分成两种启动方式:
|
||||
|
||||
- `Core.lua` 集中初始化
|
||||
通过 `SFrames:DoFullInitialize()` 分批启动关键模块与延迟模块,避免登录瞬间内存尖峰。
|
||||
- 模块自举初始化
|
||||
一部分界面文件自己监听 `PLAYER_LOGIN` / `ADDON_LOADED` / 专用事件,在对应窗口可用时初始化。
|
||||
|
||||
### 2.3 Core 直接管理的模块
|
||||
|
||||
`Core.lua` 当前显式初始化的模块包括:
|
||||
|
||||
- 立即加载:`Player`、`Pet`、`Target`、`ToT`、`Party`、`FloatingTooltip`、`ActionBars`
|
||||
- 延迟批量加载:`Raid`、`Bags`、`Focus`、`TalentTree`、`Minimap`、`MinimapBuffs`、`MinimapButton`、`Chat`、`MapReveal`、`WorldMap`、`ZoneLevelRange`、`MapIcons`、`Tweaks`、`AFKScreen`、`LootDisplay`
|
||||
|
||||
### 2.4 自举型模块
|
||||
|
||||
这类文件通常在自身内部注册事件并完成初始化:
|
||||
|
||||
- [QuestUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\QuestUI.lua)
|
||||
- [TrainerUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TrainerUI.lua)
|
||||
- [TradeSkillUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TradeSkillUI.lua)
|
||||
- [BeastTrainingUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\BeastTrainingUI.lua)
|
||||
- [BookUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\BookUI.lua)
|
||||
- [Merchant.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Merchant.lua)
|
||||
- [Mail.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Mail.lua)
|
||||
- [SocialUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SocialUI.lua)
|
||||
- [SpellBookUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SpellBookUI.lua)
|
||||
- [FlightMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\FlightMap.lua)
|
||||
- [QuestLogSkin.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\QuestLogSkin.lua)
|
||||
|
||||
## 3. 核心框架与基础设施
|
||||
|
||||
### 3.1 核心与公共能力
|
||||
|
||||
- [Core.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Core.lua)
|
||||
事件总线、统一初始化、角色配置快照、斜杠命令、若干兼容性保护。
|
||||
- [Config.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Config.lua)
|
||||
默认配置、主题生成、颜色方案、类职业主题映射。
|
||||
- [Media.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Media.lua)
|
||||
字体与状态条材质列表,兼容 LibSharedMedia。
|
||||
- [Factory.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Factory.lua)
|
||||
通用边框、背景、按钮、下拉、输入框等 UI 工厂方法。
|
||||
- [Movers.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Movers.lua)
|
||||
布局模式、拖拽锚点、网格吸附、统一解锁/锁定框体。
|
||||
- [IconMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\IconMap.lua)
|
||||
`img/icon.tga` 的图标坐标表,供多个界面复用。
|
||||
- [Bindings.xml](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bindings.xml)
|
||||
插件按键绑定入口。
|
||||
- [ConfigUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\ConfigUI.lua)
|
||||
综合配置面板,覆盖 UI、背包、动作条、小地图、角色等多页设置。
|
||||
- [SetupWizard.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SetupWizard.lua)
|
||||
首次安装向导,也可作为二次配置入口。
|
||||
- [GameMenu.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\GameMenu.lua)
|
||||
游戏菜单增强,提供 Nanami-UI 相关入口。
|
||||
- [MinimapButton.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\MinimapButton.lua)
|
||||
小地图按钮,用于打开主要面板或功能入口。
|
||||
|
||||
### 3.2 斜杠命令
|
||||
|
||||
[Core.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Core.lua) 中已确认的主命令入口为:
|
||||
|
||||
- `/nanami`
|
||||
- `/nui`
|
||||
|
||||
从当前代码可见,至少包含以下子命令:
|
||||
|
||||
- `unlock` / `move`
|
||||
- `lock`
|
||||
- `chatreset`
|
||||
- `test`
|
||||
- `partyh`
|
||||
- `partyv`
|
||||
- `partylayout`
|
||||
- `focus`
|
||||
- `clearfocus`
|
||||
- `targetfocus`
|
||||
- `fcast`
|
||||
- `focushelp`
|
||||
|
||||
此外还有若干模块自己的调试或快捷命令:
|
||||
|
||||
- [DarkmoonGuide.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\DarkmoonGuide.lua):`/dmf`、`/darkmoon`
|
||||
- [FlightMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\FlightMap.lua):`/ftcdebug`、`/ftcexport`
|
||||
- [GearScore.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\GearScore.lua):`/gsdebug`
|
||||
- [BeastTrainingUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\BeastTrainingUI.lua):`/btdebug`
|
||||
|
||||
## 4. 功能与代码文件对应
|
||||
|
||||
### 4.1 单位框体与战斗信息
|
||||
|
||||
- [Units\Player.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\Player.lua)
|
||||
玩家框体,包含血量/能量、头像、施法条、buff/debuff、移动锚点等。
|
||||
- [Units\Pet.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\Pet.lua)
|
||||
宠物框体。
|
||||
- [Units\Target.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\Target.lua)
|
||||
目标框体,含施法识别与法术图标映射。
|
||||
- [Units\ToT.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\ToT.lua)
|
||||
目标的目标框体。
|
||||
- [Units\Party.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\Party.lua)
|
||||
队伍框体,支持布局切换、拖拽物品到队友等逻辑。
|
||||
- [Units\Raid.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\Raid.lua)
|
||||
团队框体。
|
||||
- [Focus.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Focus.lua)
|
||||
焦点系统,支持设置焦点、目标焦点、对焦点施法。
|
||||
- [Tooltip.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Tooltip.lua)
|
||||
浮动 Tooltip、单位信息扩展。
|
||||
- [MinimapBuffs.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\MinimapBuffs.lua)
|
||||
小地图附近的 buff/debuff 重新排布。
|
||||
- [ActionBars.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\ActionBars.lua)
|
||||
主动作条、姿态条、宠物条、键位显示、范围检测、布局修正。
|
||||
- [KeyBindManager.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\KeyBindManager.lua)
|
||||
按键绑定查看、导入导出、编辑。
|
||||
|
||||
### 4.2 地图与导航
|
||||
|
||||
- [Minimap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Minimap.lua)
|
||||
小地图换肤,支持不同边框样式与职业主题皮肤。
|
||||
- [WorldMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\WorldMap.lua)
|
||||
世界地图整体重绘与窗口化,是地图类功能的主要承载文件。
|
||||
- [MapReveal.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\MapReveal.lua)
|
||||
迷雾揭示与 overlay 数据补丁。
|
||||
- [ZoneLevelRange.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\ZoneLevelRange.lua)
|
||||
世界地图区域等级、阵营归属、副本/团队本信息提示。
|
||||
- [MapIcons.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\MapIcons.lua)
|
||||
世界地图、小地图、战场地图上的队伍/团队职业图标显示。
|
||||
- [DarkmoonGuide.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\DarkmoonGuide.lua)
|
||||
暗月马戏团 Sayge Buff 指引面板。
|
||||
- [DarkmoonMapMarker.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\DarkmoonMapMarker.lua)
|
||||
现在只保留兼容占位,实际标记逻辑已并入 `WorldMap.lua`。
|
||||
- [FlightMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\FlightMap.lua)
|
||||
飞行点目的地列表、飞行进度条与路径可视化。
|
||||
- [FlightData.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\FlightData.lua)
|
||||
飞行路线耗时数据库。
|
||||
|
||||
### 4.3 聊天与社交
|
||||
|
||||
- [Chat.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Chat.lua)
|
||||
聊天框全面换肤与接管,保留原生聊天后端。
|
||||
- [Whisper.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Whisper.lua)
|
||||
私聊联系人和聊天记录容器。
|
||||
- [SocialUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SocialUI.lua)
|
||||
好友、忽略、Who、公会、团队管理界面重做。
|
||||
|
||||
### 4.4 背包、银行、商人、交易、邮件、拾取
|
||||
|
||||
- [Bags\Offline.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Offline.lua)
|
||||
跨角色离线背包/银行数据采集。
|
||||
- [Bags\Core.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Core.lua)
|
||||
背包模块总入口。
|
||||
- [Bags\Container.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Container.lua)
|
||||
背包容器 UI 与交互。
|
||||
- [Bags\Bank.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Bank.lua)
|
||||
银行界面与银行容器管理。
|
||||
- [Bags\Sort.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Sort.lua)
|
||||
背包整理逻辑。
|
||||
- [Bags\Features.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Features.lua)
|
||||
自动卖灰、自动开包等附加功能。
|
||||
- [Merchant.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Merchant.lua)
|
||||
商人面板重做,含回购、批量购买、修理。
|
||||
- [Trade.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Trade.lua)
|
||||
交易窗口重做。
|
||||
- [Mail.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Mail.lua)
|
||||
邮件面板重做,支持收件管理与多物品发送队列。
|
||||
- [LootDisplay.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\LootDisplay.lua)
|
||||
接管原生拾取窗口视觉层,同时尽量保留原生按钮交互。
|
||||
- [SellPriceDB.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SellPriceDB.lua)
|
||||
物品售卖价格数据库,服务于商人/背包场景。
|
||||
|
||||
### 4.5 任务、书籍、日志
|
||||
|
||||
- [QuestUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\QuestUI.lua)
|
||||
NPC 任务对话、详情、进度、奖励等流程界面。
|
||||
- [QuestLogSkin.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\QuestLogSkin.lua)
|
||||
任务日志窗口换肤。
|
||||
- [BookUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\BookUI.lua)
|
||||
书籍/卷轴阅读窗口重做。
|
||||
|
||||
### 4.6 角色、法术、训练、专业
|
||||
|
||||
- [CharacterPanel.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\CharacterPanel.lua)
|
||||
角色面板核心文件,体量很大,集成装备、属性、模型、称号、套装等内容。
|
||||
- [StatSummary.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\StatSummary.lua)
|
||||
装备统计摘要与独立统计面板。
|
||||
- [InspectPanel.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\InspectPanel.lua)
|
||||
观察面板与目标装备信息展示。
|
||||
- [SpellBookUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\SpellBookUI.lua)
|
||||
法术书重做。
|
||||
- [TrainerUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TrainerUI.lua)
|
||||
职业训练师界面重做。
|
||||
- [TradeSkillUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TradeSkillUI.lua)
|
||||
专业制造/制作界面重做。
|
||||
- [BeastTrainingUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\BeastTrainingUI.lua)
|
||||
猎人宠物训练界面重做。
|
||||
- [PetStableSkin.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\PetStableSkin.lua)
|
||||
宠物管理员/兽栏界面皮肤化。
|
||||
- [Units\TalentTree.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Units\TalentTree.lua)
|
||||
天赋树显示模块。
|
||||
- [TalentDefaultDB.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TalentDefaultDB.lua)
|
||||
默认天赋数据库。
|
||||
- [TradeSkillDB.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\TradeSkillDB.lua)
|
||||
专业/配方静态数据库。
|
||||
- [ClassSkillData.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\ClassSkillData.lua)
|
||||
职业训练技能数据。
|
||||
- [GearScore.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\GearScore.lua)
|
||||
装等/装备评分能力。
|
||||
|
||||
### 4.7 其他增强
|
||||
|
||||
- [Tweaks.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Tweaks.lua)
|
||||
各种杂项增强,当前能看到包括自动下马/取消变形、冷却文本、世界地图 Tooltip 处理、战斗提示等。
|
||||
- [AFKScreen.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\AFKScreen.lua)
|
||||
AFK 全屏界面,显示模型、时间、世界 Buff 等信息。
|
||||
- [Roll.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Roll.lua)
|
||||
与掷骰/需求贪婪相关的界面或逻辑扩展。
|
||||
|
||||
## 5. 数据、资源与文档文件
|
||||
|
||||
### 5.1 图片与材质资源
|
||||
|
||||
- `img/`
|
||||
存放小地图底图、职业风格贴图、动作条材质、图标图集等资源。
|
||||
- [IconMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\IconMap.lua)
|
||||
对 `img/icon.tga` 提供图标索引。
|
||||
|
||||
### 5.2 现有文档
|
||||
|
||||
- [docs\LootDisplay-技术要点.md](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\docs\LootDisplay-技术要点.md)
|
||||
记录接管拾取窗口时的关键实现思路。
|
||||
- [docs\AutoDismount-技术总结.md](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\docs\AutoDismount-技术总结.md)
|
||||
记录自动下马/取消变形的实现方案。
|
||||
|
||||
### 5.3 辅助脚本与研究资料
|
||||
|
||||
- `agent-tools/`
|
||||
看起来用于生成或整理职业训练相关数据。
|
||||
- `*.pdf`
|
||||
当前仓库中包含乌龟服属性收益研究资料,更偏设计/数值参考,不属于插件运行时代码。
|
||||
|
||||
## 6. SavedVariables 与依赖
|
||||
|
||||
### 6.1 SavedVariables
|
||||
|
||||
根据 [Nanami-UI.toc](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Nanami-UI.toc):
|
||||
|
||||
- `SFramesDB`
|
||||
角色级配置。
|
||||
- `SFramesGlobalDB`
|
||||
全局配置和跨角色数据。
|
||||
|
||||
### 6.2 可选依赖
|
||||
|
||||
`toc` 中声明的可选依赖包括:
|
||||
|
||||
- `ShaguTweaks`
|
||||
- `Blizzard_CombatLog`
|
||||
- `HealComm-1.0`
|
||||
- `DruidManaLib-1.0`
|
||||
- `!Libs`
|
||||
- `pfQuest`
|
||||
- `RDbItems`
|
||||
|
||||
从代码上看,这些依赖主要用于:
|
||||
|
||||
- 治疗预测、Debuff/Overlay 数据读取。
|
||||
- 地图尺寸与覆盖层补全。
|
||||
- 额外物品/任务数据支持。
|
||||
|
||||
## 7. 维护视角下的重点文件
|
||||
|
||||
如果后续要继续分析或改功能,优先关注下面这些“枢纽文件”:
|
||||
|
||||
- [Core.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Core.lua)
|
||||
初始化顺序、模块开关、斜杠命令、配置快照。
|
||||
- [Config.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Config.lua)
|
||||
默认值和主题系统。
|
||||
- [ConfigUI.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\ConfigUI.lua)
|
||||
用户可见设置入口。
|
||||
- [CharacterPanel.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\CharacterPanel.lua)
|
||||
当前仓库里体量最大、耦合也较高的角色面板核心。
|
||||
- [Chat.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Chat.lua)
|
||||
体量大、接管深,聊天相关问题通常会从这里开始查。
|
||||
- [WorldMap.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\WorldMap.lua)
|
||||
地图增强的主要承载点。
|
||||
- [Bags\Container.lua](e:\Game\trutle wow\Interface\AddOns\Nanami-UI\Bags\Container.lua)
|
||||
背包显示与交互核心。
|
||||
|
||||
## 8. 当前文档的边界
|
||||
|
||||
这份文档是“基础概览版”,目前更偏结构和职责映射,尚未逐项展开:
|
||||
|
||||
- 每个模块的详细事件流。
|
||||
- 每个配置项对应的具体字段。
|
||||
- 模块之间的调用关系图。
|
||||
- Turtle WoW 私有 API 或兼容处理的逐点说明。
|
||||
|
||||
如果继续往下做,比较自然的下一步是:
|
||||
|
||||
1. 补一份“初始化时序图”。
|
||||
2. 补一份“配置字段与模块对应表”。
|
||||
3. 针对地图、角色面板、聊天三个大模块分别拆详细设计文档。
|
||||
Reference in New Issue
Block a user