Files
coa-weakauras/WeakAurasOptions/WeakAurasOptions.toc
T
NoM0Re 7c7869494e 5.19.3
Add methods to the states/allstates table that helps with creating,
updating or remove states in an optimized way

## Advantage of using this function instead of doing a states[key] = {
... }

- If already created, update existing state, and return true if any
value was changed, this can help reduce amount of resources an aura use

- Automatically `return true` when using these functions and any change
was made

## Examples

```Lua
function(states, event, ...)
    if event == "PLAYER_TARGET_CHANGED" then
        if UnitExists("target") then
            -- if state exists it's updated, not replaced
            -- show & changed fields can be skipped
            states:Update("", {
                    name = UnitName("target"),
                    duration = 5,
                    expirationTime = GetTime() + 5,
                    progressType = "timed",
                    autoHide = true
            })
        else
            -- wipe
            states:RemoveAll()
        end
    end
    -- no need to return true
end
```

with clones

```Lua
function(states, event, ...)
    local currentEssence = UnitPower("player", Enum.PowerType.Essence)
    local maxEssence = UnitPowerMax("player", Enum.PowerType.Essence)
    for i = 1, 6 do
        if i > maxEssence then
            states:Remove(i) -- wipe allstates[6]
        else
            local value = currentEssence >= i and 1 or 0
            local newState = {
                progressType = "static",
                value = value,
                total = 1
            }
            states:Update(i, newState)
        end
    end
    -- no need to return true
end
```
2025-02-24 22:10:45 +01:00

111 lines
3.3 KiB
TeX

## Interface: 30300
## Title: WeakAuras Options
## Author: The WeakAuras Team
## Version: 5.19.3
## Notes: Options for WeakAuras
## Notes-esES: Opciones para WeakAuras
## Notes-esMX: Opciones para WeakAuras
## Notes-deDE: Optionen für WeakAuras
## Notes-ruRU: Опции WeakAuras
## Notes-zhTW: WeakAuras的設定
## X-Category: Interface Enhancements
## Globe-Main: WeakAuras
## DefaultState: Enabled
## LoadOnDemand: 1
## Dependencies: WeakAuras
## SavedVariables: WeakAurasOptionsSaved
embeds.xml
locales.xml
VersionCheck.lua
ForAllIndentsAndPurposes.lua
RegionOptions\Empty.lua
RegionOptions\AuraBar.lua
RegionOptions\Texture.lua
RegionOptions\Icon.lua
RegionOptions\Text.lua
RegionOptions\Group.lua
RegionOptions\DynamicGroup.lua
RegionOptions\StopMotion.lua
RegionOptions\Model.lua
RegionOptions\ProgressTexture.lua
SubRegionOptions\SubRegionCommon.lua
SubRegionOptions\Background.lua
SubRegionOptions\SubText.lua
SubRegionOptions\Border.lua
SubRegionOptions\Glow.lua
SubRegionOptions\Tick.lua
SubRegionOptions\Model.lua
SubRegionOptions\StopMotion.lua
SubRegionOptions\Texture.lua
Cache.lua
CommonOptions.lua
GroupOptions.lua
DisplayOptions.lua
TriggerOptions.lua
LoadOptions.lua
ActionOptions.lua
AnimationOptions.lua
InformationOptions.lua
BuffTrigger2.lua
GenericTrigger.lua
WeakAurasOptions.lua
ConditionOptions.lua
AuthorOptions.lua
Changelog.lua
OptionsFrames\OptionsFrame.lua
# Groups
OptionsFrames\CodeReview.lua
OptionsFrames\IconPicker.lua
OptionsFrames\ImportExport.lua
OptionsFrames\ModelPicker.lua
OptionsFrames\TextEditor.lua
OptionsFrames\TexturePicker.lua
OptionsFrames\Update.lua
OptionsFrames\DebugLogFrame.lua
# Misc frames
OptionsFrames\MoverSizer.lua
OptionsFrames\FrameChooser.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasExpand.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasExpandSmall.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasIcon.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasNewHeaderButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasLoadedHeaderButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasDisplayButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasDropDownItemCurrency.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasPendingInstallButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasPendingUpdateButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasTextureButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasIconButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasMultiLineEditBox.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasMultiLineEditBoxWithEnter.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasNewButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasImportButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasToolbarButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasTwoColumnDropDown.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasSnippetButton.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasAnchorButtons.lua
AceGUI-Widgets\AceGUIContainer-WeakAurasTreeGroup.lua
AceGUI-Widgets\AceGUIContainer-WeakAurasInlineGroup.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasExpandAnchor.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasSpacer.lua
AceGUI-Widgets\AceGuiWidget-WeakAurasProgressBar.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasSpinBox.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasMiniTalent_Wrath.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasInput.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasInputFocus.lua
AceGUI-Widgets\AceGUIWidget-WeakAurasMediaSound.lua
AceGUI-Widgets\WeakAurasStatusbarAtlasWidget.lua