Back to Home

ESO Lua File v101041

ingame/retrait/zo_retraitstation_retrait_base.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
ZO_RetraitStation_Retrait_Base = ZO_InitializingObject:Subclass()
function ZO_RetraitStation_Retrait_Base:Initialize(control)
    self.control = control
    CALLBACK_MANAGER:RegisterCallback("CraftingAnimationsStarted", function(...) self:OnRetraitAnimationsStarted(...) end)
    CALLBACK_MANAGER:RegisterCallback("CraftingAnimationsStopped", function(...) self:OnRetraitAnimationsStopped(...) end)
    ZO_RETRAIT_STATION_MANAGER:RegisterCallback("OnRetraitDirtyEvent", function(...) self:HandleDirtyEvent(...) end)
end
function ZO_RetraitStation_Retrait_Base:InitializeInventory()
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:InitializeKeybindStripDescriptors()
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:IsShowing()
    return not self.control:IsHidden()
end
function ZO_RetraitStation_Retrait_Base:ShowRetraitDialog(bagId, slotIndex, selectedTrait)
        return
    end
    local isItemLocked = IsItemPlayerLocked(bagId, slotIndex)
    local dialogName = "CONFIRM_RETRAIT_ITEM"
    if isItemLocked then
        if IsInGamepadPreferredMode() then
            dialogName = "GAMEPAD_CONFIRM_RETRAIT_LOCKED_ITEM"
        else
            dialogName = "CONFIRM_RETRAIT_LOCKED_ITEM"
        end
    end
    local itemDisplayQuality = GetItemDisplayQuality(bagId, slotIndex)
    local itemDisplayQualityColor = GetItemQualityColor(itemDisplayQuality)
    local itemName = itemDisplayQualityColor:Colorize(GetItemName(bagId, slotIndex))
    local traitName = ZO_SELECTED_TEXT:Colorize(GetString("SI_ITEMTRAITTYPE", selectedTrait))
    local retraitCost, retraitCurrency = GetItemRetraitCost()
    local formattedRetraitCost = ZO_Currency_FormatPlatform(retraitCurrency, retraitCost, ZO_CURRENCY_FORMAT_WHITE_AMOUNT_ICON)
    local formattedRetraitCostNarration = ZO_Currency_FormatPlatform(retraitCurrency, retraitCost, ZO_CURRENCY_FORMAT_AMOUNT_NAME)
    local mainTextParams =
    {
        itemName,
        traitName,
        formattedRetraitCost,
        GetString(SI_PERFORM_ACTION_CONFIRMATION)
    }
    local mainTextNarrationParams =
    {
        itemName,
        traitName,
        formattedRetraitCostNarration,
        GetString(SI_PERFORM_ACTION_CONFIRMATION)
    }
    local function ShowRetraitDialog()
        ZO_Dialogs_ShowPlatformDialog(dialogName, { bagId = bagId, slotIndex = slotIndex, trait = selectedTrait, }, { mainTextParams = mainTextParams, mainTextNarrationParams = mainTextNarrationParams })
    end
    if IsItemBoPAndTradeable(bagId, slotIndex) then
        ZO_Dialogs_ShowPlatformDialog("CONFIRM_MODIFY_TRADE_BOP", { onAcceptCallback = ShowRetraitDialog }, { mainTextParams = { itemName } })
    else
        ShowRetraitDialog()
    end
end
function ZO_RetraitStation_Retrait_Base:UpdateRequireResearchTooltipString(bagId, slotIndex)
    local tradeskillType = GetRearchLineInfoFromRetraitItem(bagId, slotIndex)
    local tradeskillName = GetCraftingSkillName(tradeskillType)
    self.requiredResearchTooltipString = zo_strformat(SI_RETRAIT_STATION_MUST_RESEARCH_TRAIT, tradeskillName)
end
function ZO_RetraitStation_Retrait_Base:HandleDirtyEvent()
    if self:IsShowing() then
        self:Refresh()
        self.dirty = false
    else
        self.dirty = true
    end
end
function ZO_RetraitStation_Retrait_Base:Refresh()
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:OnRetraitResult(result)
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:OnRetraitAnimationsStarted()
    -- Optional override
end
function ZO_RetraitStation_Retrait_Base:OnRetraitAnimationsStopped()
    -- Optional override
end
function ZO_RetraitStation_Retrait_Base:IsItemAlreadySlottedToCraft(bagId, slotIndex)
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:CanItemBeAddedToCraft(bagId, slotIndex)
    return CanItemBeRetraited(bagId, slotIndex)
end
function ZO_RetraitStation_Retrait_Base:AddItemToCraft(bagId, slotIndex)
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:RemoveItemFromCraft(bagId, slotIndex)
    -- To be overridden
end
-----
-- Global functions
-----
function ZO_RetraitStation_DoesItemPassFilter(bagId, slotIndex, filterType)
    return ZO_CraftingUtils_GetSmithingFilterFromItem(bagId, slotIndex) == filterType
end
    return CanItemBeRetraited(itemData.bagId, itemData.slotIndex)
end