Back to Home

ESO Lua File v101044

ingame/giftinventory/gamepad/giftinventory_gamepad.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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
ZO_GiftInventory_Gamepad = ZO_Gamepad_ParametricList_Screen:Subclass()
local ZO_GAMEPAD_GIFT_INVENTORY_TAB = {
    RECEIVED = 1,
    SENT = 2,
    RETURNED = 3,
}
function ZO_GiftInventory_Gamepad:New(...)
    return ZO_Gamepad_ParametricList_Screen.New(self, ...)
end
function ZO_GiftInventory_Gamepad:Initialize(control)
    ZO_GAMEPAD_GIFT_INVENTORY_SCENE = ZO_Scene:New("giftInventoryGamepad", SCENE_MANAGER)
    local DONT_ACTIVATE_ON_SHOW = false
    ZO_Gamepad_ParametricList_Screen.Initialize(self, control, ZO_GAMEPAD_HEADER_TABBAR_CREATE, DONT_ACTIVATE_ON_SHOW, ZO_GAMEPAD_GIFT_INVENTORY_SCENE)
    ZO_GAMEPAD_GIFT_INVENTORY_FRAGMENT = ZO_SimpleSceneFragment:New(control)
    ZO_GAMEPAD_GIFT_INVENTORY_FRAGMENT:SetHideOnSceneHidden(true)
    self.scene:AddFragment(ZO_GAMEPAD_GIFT_INVENTORY_FRAGMENT)
    local CUSTOM_LIST_SETUP = true
    self.receivedList = self:AddList("Received", CUSTOM_LIST_SETUP, ZO_GiftInventoryReceived_Gamepad)
    self.sentList = self:AddList("Sent", CUSTOM_LIST_SETUP, ZO_GiftInventorySent_Gamepad)
    self.returnedList = self:AddList("Returned", CUSTOM_LIST_SETUP, ZO_GiftInventoryReturned_Gamepad)
    GIFT_INVENTORY_MANAGER:RegisterCallback("GiftActionResult", function(...) self:OnGiftActionResult(...) end)
    SYSTEMS:RegisterGamepadRootScene("giftInventory", ZO_GAMEPAD_GIFT_INVENTORY_SCENE)
end
function ZO_GiftInventory_Gamepad:SetupHeader()
    local tabBarEntries =
    {
        {
            text = GetString(SI_GIFT_INVENTORY_RECEIVED_GIFTS_HEADER),
            callback = function()
                self:SwitchActiveList(self.receivedList)
            end,
        },
        {
            text = GetString(SI_GIFT_INVENTORY_SENT_GIFTS_HEADER),
            callback = function()
                self:SwitchActiveList(self.sentList)
            end,
        },
        {
            text = GetString(SI_GIFT_INVENTORY_RETURNED_GIFTS_HEADER),
            callback = function()
                self:SwitchActiveList(self.returnedList)
            end,
        },
    }
    self.headerData =
    {
        tabBarEntries = tabBarEntries,
    }
end
function ZO_GiftInventory_Gamepad:SetSelectedCategoryByGiftState(giftState)
    local listIndex
    if giftState == GIFT_STATE_RECEIVED then 
        listIndex = ZO_GAMEPAD_GIFT_INVENTORY_TAB.RECEIVED
    elseif giftState == GIFT_STATE_THANKED or giftState == GIFT_STATE_SENT then
        listIndex = ZO_GAMEPAD_GIFT_INVENTORY_TAB.SENT
    elseif giftState == GIFT_STATE_RETURNED then
        listIndex = ZO_GAMEPAD_GIFT_INVENTORY_TAB.RETURNED
    end
    if listIndex then
        if self.scene:GetState() == SCENE_SHOWN then
            ZO_GamepadGenericHeader_SetActiveTabIndex(self.header, listIndex)
        else
            self.requestedListIndexSelection = listIndex
        end
    end
end
-- begin ZO_Gamepad_ParametricList_Screen overrides
function ZO_GiftInventory_Gamepad:OnDeferredInitialize()
    self:SetupHeader()
end
function ZO_GiftInventory_Gamepad:InitializeKeybindStripDescriptors()
    self.keybindStripDescriptor =
    {
        alignment = KEYBIND_STRIP_ALIGN_LEFT,
        KEYBIND_STRIP:GetDefaultGamepadBackButtonDescriptor(),
    }
end
function ZO_GiftInventory_Gamepad:PerformUpdate()
    self.dirty = false
end
function ZO_GiftInventory_Gamepad:OnShowing()
    if self.requestedListIndexSelection then
        ZO_GamepadGenericHeader_SetActiveTabIndex(self.header, self.requestedListIndexSelection)
        self.requestedListIndexSelection = nil
    end
    TriggerTutorial(TUTORIAL_TRIGGER_GIFT_INVENTORY_OPENED)
end
function ZO_GiftInventory_Gamepad:OnHiding()
    self.waitingOnResendResult = false
end
function ZO_GiftInventory_Gamepad:OnSelectionChanged(list, selectedData, oldSelectedData)
    -- need to update list keybinds on selection changed since rebuilding the list won't trigger a target change
end
function ZO_GiftInventory_Gamepad:OnTargetChanged(list, targetData, oldTargetData, reachedTarget, targetSelectedIndex)
end
-- end ZO_Gamepad_ParametricList_Screen overrides
function ZO_GiftInventory_Gamepad:SwitchActiveList(list)
    local currentList = self:GetCurrentList()
    if currentList then
        currentList:HideTooltip()
    end
    self.currentListKeybinds = list:GetKeybinds()
    list:ShowTooltip()
end
function ZO_GiftInventory_Gamepad:AddCurrentListKeybinds()
    if self.currentListKeybinds then
        KEYBIND_STRIP:AddKeybindButtonGroup(self.currentListKeybinds)
    end
end
function ZO_GiftInventory_Gamepad:RemoveCurrentListKeybinds()
    if self.currentListKeybinds then
        KEYBIND_STRIP:RemoveKeybindButtonGroup(self.currentListKeybinds)
    end
end
function ZO_GiftInventory_Gamepad:RefreshCurrentListKeybinds()
    if self.currentListKeybinds then
        KEYBIND_STRIP:UpdateKeybindButtonGroup(self.currentListKeybinds)
    end
end
function ZO_GiftInventory_Gamepad:OnRequestResendGift()
    local currentList = self:GetCurrentList()
    if currentList then
        currentList:HideTooltip()
    end
    KEYBIND_STRIP:RemoveKeybindButtonGroup(self.keybindStripDescriptor)
    self.waitingOnResendResult = true
end
function ZO_GiftInventory_Gamepad:OnGiftResendComplete()
    local currentList = self:GetCurrentList()
    if currentList then
        currentList:ShowTooltip()
    end
    KEYBIND_STRIP:AddKeybindButtonGroup(self.keybindStripDescriptor)
    self.waitingOnResendResult = false
end
function ZO_GiftInventory_Gamepad:OnGiftActionResult(giftAction, result, giftId)
    if self.scene:IsShowing() then
        if self.waitingOnResendResult and giftAction == GIFT_ACTION_RESEND and result == GIFT_ACTION_RESULT_FINISHED then
            self:OnGiftResendComplete()
        end
    end
end
-- Global XML functions
    GIFT_INVENTORY_GAMEPAD = ZO_GiftInventory_Gamepad:New(control)
end