Back to Home

ESO Lua File v100034

internalingame/chapterupgrade/keyboard/chapterupgrade_keyboard.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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
ZO_CHAPTER_UPGRADE_KEYBOARD_BACKGROUND_TEXTURE_LEVEL = 2
ZO_CHAPTER_UPGRADE_KEYBOARD_TEXT_CALLOUT_BACKGROUND_TEXTURE_LEVEL = 3
ZO_CHAPTER_UPGRADE_KEYBOARD_REWARD_ENTRY_HEADER_HEIGHT = 35
ZO_CHAPTER_UPGRADE_KEYBOARD_REWARD_ENTRY_HEIGHT = 50
ZO_ChapterUpgradePane_Keyboard = ZO_ChapterUpgradePane_Shared:Subclass()
function ZO_ChapterUpgradePane_Keyboard:New(...)
    return ZO_ChapterUpgradePane_Shared.New(self, ...)
end
function ZO_ChapterUpgradePane_Keyboard:Initialize(control, owner)
    ZO_ChapterUpgradePane_Shared.Initialize(self, control)
    self.owner = owner
    self.descriptionLabel = control:GetNamedChild("Description")
    self.prepurchaseRewardsSection = control:GetNamedChild("PrePurchaseRewards")
    self.prepurchaseRewardsHeader = self.prepurchaseRewardsSection:GetNamedChild("Header")
    self.editionRewardsSection = control:GetNamedChild("EditionRewards")
    self.editionRewardsHeader = self.editionRewardsSection:GetNamedChild("Header")
    self.prepurchaseRewardPool = ZO_ControlPool:New("ZO_ChapterUpgrade_Keyboard_RewardsEntry", self.prepurchaseRewardsSection, "Reward")
    self.editionRewardPool = ZO_ControlPool:New("ZO_ChapterUpgrade_Keyboard_RewardsEntry", self.editionRewardsSection, "Reward")
    local function OnRewardEntryCreated(control)
        control:SetHandler("OnMouseEnter", function(...) self:OnRewardEntryMouseEnter(...) end)
        control:SetHandler("OnMouseExit", function(...) self:OnRewardEntryMouseExit(...) end)
        control:SetHandler("OnMouseUp", function(...) self:OnRewardEntryMouseUp(...) end)
    end
    self.prepurchaseRewardPool:SetCustomFactoryBehavior(OnRewardEntryCreated)
    self.editionRewardPool:SetCustomFactoryBehavior(OnRewardEntryCreated)
end
function ZO_ChapterUpgradePane_Keyboard:OnRewardEntryMouseEnter(control)
    local highlight = control.highlight
    if not highlight.animation then
        highlight.animation = ANIMATION_MANAGER:CreateTimelineFromVirtual("ShowOnMouseOverLabelAnimation", highlight)
    end
    local icon = control.icon
    if not icon.animation then
        icon.animation = ANIMATION_MANAGER:CreateTimelineFromVirtual("ZO_ChapterUpgradeRewardEntry_Keyboard_IconMouseOverAnimation", icon)
    end
    highlight.animation:PlayForward()
    icon.animation:PlayForward()
    local offsetX = -15
    local offsetY = 0
    InitializeTooltip(ItemTooltip, control, RIGHT, offsetX, offsetY, LEFT)
    local SHOW_COLLECTIBLE_PURCHASABLE_HINT = true
    ItemTooltip:SetMarketProduct(control.rewardData.marketProductId, SHOW_COLLECTIBLE_PURCHASABLE_HINT)
    self.selectedRow = control
    self.owner:RefreshActions()
end
function ZO_ChapterUpgradePane_Keyboard:OnRewardEntryMouseExit(control)
    control.highlight.animation:PlayBackward()
    control.icon.animation:PlayBackward()
    ClearTooltip(ItemTooltip)
    self.selectedRow = nil
    self.owner:RefreshActions()
end
function ZO_ChapterUpgradePane_Keyboard:OnRewardEntryMouseUp(control, button)
    if button == MOUSE_BUTTON_INDEX_LEFT and self:IsReadyToPreview() then
        self:PreviewSelection()
    end
end
function ZO_ChapterUpgradePane_Keyboard:IsActivelyPreviewing()
    local productId = self:GetSelectedProductId()
    if productId ~= 0 then
        return IsPreviewingMarketProduct(productId)
    end
    return false
end
function ZO_ChapterUpgradePane_Keyboard:GetPreviewState()
    local isPreviewing = IsCurrentlyPreviewing()
    local canPreview = false
    local isActivePreview = false
    if self.selectedRow ~= nil then
        canPreview = IsCharacterPreviewingAvailable() and self:CanPreviewSelection()
        if isPreviewing and self:IsActivelyPreviewing() then
            isActivePreview = true
        end
    end
    return isPreviewing, canPreview, isActivePreview
end
function ZO_ChapterUpgradePane_Keyboard:IsReadyToPreview()
    local _, canPreview, isActivePreview = self:GetPreviewState()
    return canPreview and not isActivePreview
end
-- Begin ZO_ChapterUpgradePane_Keyboard Overrides --
do
    local function AddRewards(rewards, controlPool, initialAnchorControl)
        local anchorTo = initialAnchorControl
        for _, rewardData in ipairs(rewards) do
            local rewardControl = controlPool:AcquireObject()
            rewardControl.icon:SetTexture(rewardData.icon)
            rewardControl.displayName:SetText(rewardData.displayName)
            rewardControl.standardCheckMark:SetHidden(not rewardData.isStandardReward)
            rewardControl.collectorsCheckMark:SetHidden(not rewardData.isCollectorsReward)
            rewardControl:SetAnchor(TOPLEFT, anchorTo, BOTTOMLEFT)
            rewardControl:SetAnchor(TOPRIGHT, anchorTo, BOTTOMRIGHT)
            rewardControl.rewardData = rewardData
            anchorTo = rewardControl
        end
    end
    function ZO_ChapterUpgradePane_Keyboard:SetChapterUpgradeData(chapterUpgradeData)
        ZO_ChapterUpgradePane_Shared.SetChapterUpgradeData(self, chapterUpgradeData)
    
        self.descriptionLabel:SetText(chapterUpgradeData:GetSummary())
        self.prepurchaseRewardPool:ReleaseAllObjects()
        self.editionRewardPool:ReleaseAllObjects()
        local hidePrePurchaseRewardsHeader = true
        local hideEditionRewardsHeader = true
        if chapterUpgradeData:IsPreRelease() then
            local prePurchaseRewards = chapterUpgradeData:GetPrePurchaseRewards()
            if #prePurchaseRewards > 0 then
                hidePrePurchaseRewardsHeader = false
                AddRewards(prePurchaseRewards, self.prepurchaseRewardPool, self.prepurchaseRewardsHeader)
            end
        end
        
        local editionRewards = chapterUpgradeData:GetEditionRewards()
        if #editionRewards > 0 then
            hideEditionRewardsHeader = false
            AddRewards(editionRewards, self.editionRewardPool, self.editionRewardsHeader)
        end
        self.prepurchaseRewardsHeader:SetHidden(hidePrePurchaseRewardsHeader)
        self.editionRewardsHeader:SetHidden(hideEditionRewardsHeader)
    end
end
function ZO_ChapterUpgradePane_Keyboard:GetSelectedProductId()
    if self.selectedRow then
        return self.selectedRow.rewardData.marketProductId
    end
    return 0
end
function ZO_ChapterUpgradePane_Keyboard:GetItemPreviewListHelper()
    return ITEM_PREVIEW_LIST_HELPER_KEYBOARD
end
-- End ZO_ChapterUpgradePane_Keyboard Overrides --
-- Begin Global XML Functions --
    control.highlight = control:GetNamedChild("Highlight")
end
-- End Global XML Functions --