Back to Home

ESO Lua File v101032

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
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)
    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, 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: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