перевод интерфейса на базовый dragon ui
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
# DragonUI: replacement addons
|
||||
|
||||
MoonWell ships DragonUI as the default interface. Players can replace an
|
||||
individual DragonUI module without copying or editing the bundled addon.
|
||||
|
||||
## Replacement addon structure
|
||||
|
||||
The replacement must use its own folder and addon name. Do not create another
|
||||
folder named `DragonUI`; files inside an MPQ and loose files with the same
|
||||
virtual path do not form a supported update mechanism.
|
||||
|
||||
```text
|
||||
MyDragonUIMinimap/
|
||||
|-- MyDragonUIMinimap.toc
|
||||
`-- MyDragonUIMinimap.lua
|
||||
```
|
||||
|
||||
`MyDragonUIMinimap.toc`:
|
||||
|
||||
```toc
|
||||
## Interface: 30300
|
||||
## Title: My DragonUI Minimap
|
||||
## Dependencies: DragonUI
|
||||
## X-DragonUI-Overrides: minimap
|
||||
## X-DragonUI-Override-Priority: 100
|
||||
|
||||
MyDragonUIMinimap.lua
|
||||
```
|
||||
|
||||
The `X-DragonUI-Overrides` declaration is required. DragonUI reads it before
|
||||
dependent addons execute and does not apply the bundled implementation. A list
|
||||
may contain several comma-separated module identifiers.
|
||||
|
||||
`MyDragonUIMinimap.lua`:
|
||||
|
||||
```lua
|
||||
local provider = {}
|
||||
|
||||
function provider:Activate(dragonUI, moduleName)
|
||||
-- Create or show the replacement here.
|
||||
end
|
||||
|
||||
function provider:Deactivate(dragonUI, moduleName)
|
||||
-- Hide frames and unregister events created by this provider.
|
||||
end
|
||||
|
||||
local ok, reason = DragonUI:RegisterModuleOverride(
|
||||
"minimap",
|
||||
"MyDragonUIMinimap",
|
||||
provider,
|
||||
{ priority = 100 }
|
||||
)
|
||||
|
||||
if not ok then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("MyDragonUIMinimap: " .. tostring(reason))
|
||||
end
|
||||
```
|
||||
|
||||
The owner passed to `RegisterModuleOverride` must match the addon folder/TOC
|
||||
name. Supported provider activation names are `Activate`, `Apply`, `Enable`, or
|
||||
`OnEnable`; cleanup names are `Deactivate`, `Restore`, `Disable`, or
|
||||
`OnDisable`.
|
||||
|
||||
## Public API (version 1)
|
||||
|
||||
```lua
|
||||
DragonUI.PUBLIC_API_VERSION
|
||||
DragonUI:RegisterModuleOverride(moduleName, owner, provider[, options])
|
||||
DragonUI:UnregisterModuleOverride(moduleName, owner)
|
||||
DragonUI:IsModuleOverridden(moduleName)
|
||||
DragonUI:GetModuleOverride(moduleName) -- owner, provider
|
||||
```
|
||||
|
||||
DragonUI also sends the Ace message `DRAGONUI_OVERRIDE_CHANGED` with
|
||||
`moduleName, owner`. `owner` is nil after the final provider is removed.
|
||||
|
||||
Registering a replacement at runtime without TOC metadata is supported only
|
||||
for a module that can be restored safely. For a load-once module the call
|
||||
returns `true, "RELOAD_REQUIRED"`; add the metadata and reload the UI.
|
||||
|
||||
## Bundled module identifiers
|
||||
|
||||
The registry currently exposes these identifiers:
|
||||
|
||||
```text
|
||||
bagsort, boss, buffs, buttons, castbar, chatmods, combuctor, cooldowns,
|
||||
darkmode, itemquality, keybinding, mainbars, micromenu, minimap, multicast,
|
||||
noop, petbar, player, questtracker, rage_indicator, stance, tooltip,
|
||||
unitframe_layers, vehicle
|
||||
```
|
||||
|
||||
Target/focus/party frames still contain legacy startup code and will be added
|
||||
to the public registry before they are advertised as independently replaceable.
|
||||
|
||||
## Conflict resolution
|
||||
|
||||
When multiple enabled addons claim the same module, the highest numeric
|
||||
`X-DragonUI-Override-Priority` wins. Equal priorities are resolved by addon
|
||||
name to make the result deterministic. A declaration that never registers a
|
||||
provider is rejected at `PLAYER_LOGIN`, and DragonUI restores its bundled
|
||||
module so the player is not left without that UI element.
|
||||
|
||||
Module suppression is session-only. DragonUI restores the player's saved
|
||||
enabled/disabled choice during `PLAYER_LOGOUT`, so removing a replacement addon
|
||||
automatically brings back the previous DragonUI configuration.
|
||||
Reference in New Issue
Block a user