Back to Home

ESO Lua File v100016

ingame/tradinghouse/gamepad/armorfilter_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
local DATA_CALLBACK_INDEX = 1
local SUB_TYPE_INDEX = 2
local GamepadArmorFilter = ZO_Object.MultiSubclass(ZO_CategorySubtypeFilter, ZO_ArmorFilter_Shared)
function GamepadArmorFilter:New()
    return ZO_CategorySubtypeFilter.New(self, "Armor", "armor", ITEMTYPE_GLYPH_ARMOR)
end
function GamepadArmorFilter:Initialize(name, traitType, enchantmentType)
    ZO_CategorySubtypeFilter.Initialize(self, name, nil, traitType, enchantmentType)
    self.filterData = ZO_TradingHouseFilter_GenerateArmorTypeData(function(...) self:SetGenericArmorSearch(...) end)
end
function GamepadArmorFilter:ApplyToSearch(search)
    self:ApplyCategoryFilterToSearch(search, self.m_FilterSubType)
    ZO_GamepadTradingHouse_Filter.ApplyToSearch(self, search)
end
function GamepadArmorFilter:PopulateSubTypes(comboBox, entryName, entry)
    local currentFilterCategoryIndex = comboBox:GetHighlightedIndex()
    local selectionChanged = self.lastFilterCategoryName ~= entryName
    local forceRepopulate = true
    local filterData = self.filterData[currentFilterCategoryIndex]
    local EQUIP_TYPE_INDEX = 2
    local filterEquipTypeData = filterData[EQUIP_TYPE_INDEX]
    if (not filterEquipTypeData) and self.filterComboBoxData[SUB_TYPE_INDEX].visible then
        self.filterComboBoxData[SUB_TYPE_INDEX].visible = false
    elseif filterEquipTypeData and not self.filterComboBoxData[SUB_TYPE_INDEX].visible then
        self.filterComboBoxData[SUB_TYPE_INDEX].visible = true
    else
        forceRepopulate = false
    end
    if forceRepopulate then
        -- reset list to remove or add sub category combo box as needed
        self.lastFilterCategoryName = entryName
        self.lastFilterCategoryIndex = currentFilterCategoryIndex
        self.lastFilterSubTypeName = nil
        self.lastFilterSubTypeIndex = 1
        self:SetCategoryTypeAndSubData(entry)
        ZO_GamepadTradingHouse_Filter.SetComboBoxes(self, self:GetComboBoxData())
        ZO_TradingHouse_SearchCriteriaChanged(selectionChanged)
    else
        ZO_CategorySubtypeFilter.PopulateSubTypes(self, comboBox, entryName, entry, selectionChanged)
    end
end
function GamepadArmorFilter:SetGenericArmorSearch(mode, traitType, enchantmentType, armorType)
    self.m_mode = mode
    self:SetTraitType(traitType)
    self:SetEnchantmentType(enchantmentType)
    self.m_armorType = armorType
end
function GamepadArmorFilter:UpdateFilterData()
    local currentData = self.filterData[self.lastFilterCategoryIndex]
    currentData[DATA_CALLBACK_INDEX]() -- Invoke callback in data container which will in turn call SetGenericArmorSearch
end
function GamepadArmorFilter:SetHidden(hidden)
    if not hidden then
        self:UpdateFilterData()
    end
    ZO_CategorySubtypeFilter.SetHidden(self, hidden)
end
TRADING_HOUSE_GAMEPAD:RegisterSearchFilter(GamepadArmorFilter, SI_TRADING_HOUSE_BROWSE_ITEM_TYPE_APPAREL)