Back to Home

ESO Lua File v100021

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
136
137
138
139
140
141
142
143
144
ZO_RETRAIT_FILTER_TYPE_ARMOR = 1
ZO_RETRAIT_FILTER_TYPE_WEAPONS = 2
ZO_RetraitStation_Retrait_Base = ZO_Object:Subclass()
function ZO_RetraitStation_Retrait_Base:New(...)
    local obj = ZO_Object.New(self)
    obj:Initialize(...)
    return obj
end
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)
end
function ZO_RetraitStation_Retrait_Base:ShowRetraitDialog(bagId, slotIndex, selectedTrait)
    if IsPerformingCraftProcess() then
        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 itemQuality = GetItemQuality(bagId, slotIndex)
    local itemQualityColor = GetItemQualityColor(itemQuality)
    local itemName = itemQualityColor:Colorize(GetItemName(bagId, slotIndex))
    local traitName = ZO_SELECTED_TEXT:Colorize(GetString("SI_ITEMTRAITTYPE", selectedTrait))
    local retraitCost, retraitCurrency, retraitCurrencyLocation = GetItemRetraitCost()
    local formattedRetraitCost = ZO_Currency_FormatPlatform(retraitCurrency, retraitCost, ZO_CURRENCY_FORMAT_WHITE_AMOUNT_ICON)
    local function ShowRetraitDialog()
        ZO_Dialogs_ShowPlatformDialog(dialogName, { bagId = bagId, slotIndex = slotIndex, trait = selectedTrait, }, { mainTextParams = { itemName, traitName, formattedRetraitCost, GetString(SI_PERFORM_ACTION_CONFIRMATION) } })
    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, researchLineName = GetRearchLineInfoFromRetraitItem(bagId, slotIndex)
    local tradeskillName = GetCraftingSkillName(tradeskillType)
    self.requiredResearchTooltipString = zo_strformat(SI_RETRAIT_STATION_MUST_RESEARCH_TRAIT, tradeskillName)
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:HandleDirtyEvent()
    if self.control:IsHidden() then
        self.dirty = true
    else
        self:Refresh()
    end
end
function ZO_RetraitStation_Retrait_Base:Refresh()
    self.dirty = false
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:OnRetraitResult(result)
    -- To be overridden
end
function ZO_RetraitStation_Retrait_Base:IsShowing()
    return not self.control:IsHidden()
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
-----
    for i = 1, select("#", ...) do
        local filterType = select(i, ...)
        if filterType == ITEMFILTERTYPE_WEAPONS then
            return ZO_RETRAIT_FILTER_TYPE_WEAPONS
        elseif filterType == ITEMFILTERTYPE_ARMOR then
            return ZO_RETRAIT_FILTER_TYPE_ARMOR
        end
    end
    return nil
end
function ZO_RetraitStation_DoesItemPassFilter(bagId, slotIndex, filterType)
    local itemFilterType = ZO_RetraitStation_GetPrimaryFilterType(GetItemFilterTypeInfo(bagId, slotIndex))
    if itemFilterType then
        return itemFilterType == filterType
    else
        return false
    end
end
    return CanItemBeRetraited(itemData.bagId, itemData.slotIndex)
end