Back to Home

ESO Lua File v100033

ingame/map/gamepad/worldmaphouses_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
ZO_MapHouses_Gamepad = ZO_MapHouses_Shared:Subclass()
function ZO_MapHouses_Gamepad:New(...)
    return ZO_MapHouses_Shared.New(self,...)
end
function ZO_MapHouses_Gamepad:Initialize(control)
    ZO_MapHouses_Shared.Initialize(self, control, ZO_SimpleSceneFragment)
end
function ZO_MapHouses_Gamepad:InitializeList(control)
    self.list = ZO_GamepadVerticalParametricScrollList:New(control:GetNamedChild("Main"):GetNamedChild("List"))
    self.list:AddDataTemplateWithHeader("ZO_GamepadMenuEntryTemplateLowercase42", ZO_SharedGamepadEntry_OnSetup, ZO_GamepadMenuEntryTemplateParametricListFunction, nil, "ZO_GamepadMenuEntryHeaderTemplate")
end
function ZO_MapHouses_Gamepad:SetListEnabled(enabled)
    ZO_MapHouses_Shared.SetListEnabled(self, enabled)
    if enabled then
        if self:GetFragment():IsShowing() then
            self.list:Activate()
        end
        self.list:RefreshVisible()
    else
        self.list:Deactivate()
    end
end
function ZO_MapHouses_Gamepad:RefreshHouseList()
    ZO_MapHouses_Shared.RefreshHouseList(self)
    self.list:Clear()
    local houseList = WORLD_MAP_HOUSES_DATA:GetHouseList()
    local firstUnlocked = true
    local firstLocked = true
    for i, houseEntry in ipairs(houseList) do
        local headerText = nil
        if houseEntry.unlocked and firstUnlocked then
            headerText = GetString("SI_COLLECTIBLEUNLOCKSTATE", COLLECTIBLE_UNLOCK_STATE_UNLOCKED_OWNED)
            firstUnlocked = false
        elseif not houseEntry.unlocked and firstLocked then
            headerText = GetString("SI_COLLECTIBLEUNLOCKSTATE", COLLECTIBLE_UNLOCK_STATE_LOCKED)
            firstLocked = false
        end
        local entryData = ZO_GamepadEntryData:New(houseEntry.houseName)
        entryData:SetDataSource(houseEntry)
        entryData:AddSubLabel(houseEntry.foundInZoneName)
        if headerText then
            entryData:SetHeader(headerText)
            self.list:AddEntry("ZO_GamepadMenuEntryTemplateLowercase42WithHeader", entryData)
        else
            self.list:AddEntry("ZO_GamepadMenuEntryTemplateLowercase42", entryData)
        end
    end
    self.list:Commit()
end
function ZO_MapHouses_Gamepad:RefreshKeybind()
    if self.keybindStripDescriptor then
        KEYBIND_STRIP:UpdateKeybindButtonGroup(self.keybindStripDescriptor)
    end
end
function ZO_MapHouses_Gamepad:InitializeKeybindDescriptor()
    self.keybindStripDescriptor =
    {
        alignment = KEYBIND_STRIP_ALIGN_LEFT,
        {
            keybind = "UI_SHORTCUT_PRIMARY",
            name = GetString(SI_GAMEPAD_SELECT_OPTION),
            callback = function()
                local targetData = self.list:GetTargetData()
                ZO_WorldMap_SetMapByIndex(targetData.mapIndex)
                ZO_WorldMap_PanToWayshrine(targetData.nodeIndex)
                PlaySound(SOUNDS.MAP_LOCATION_CLICKED)
            end,
            visible = function()
                local targetData = self.list:GetTargetData()
                return targetData ~= nil
            end
        },
    }
    ZO_Gamepad_AddBackNavigationKeybindDescriptors(self.keybindStripDescriptor, GAME_NAVIGATION_TYPE_BUTTON, ZO_WorldMapInfo_OnBackPressed)
    ZO_Gamepad_AddListTriggerKeybindDescriptors(self.keybindStripDescriptor, self.list)
end
function ZO_MapHouses_Gamepad:OnShowing()
    ZO_MapHouses_Shared.OnShowing(self)
    if self:IsListEnabled() then
        self.list:Activate()
    end
    KEYBIND_STRIP:AddKeybindButtonGroup(self.keybindStripDescriptor)
end
function ZO_MapHouses_Gamepad:OnHidden()
    ZO_MapHouses_Shared.OnHidden(self)
    KEYBIND_STRIP:RemoveKeybindButtonGroup(self.keybindStripDescriptor)
    self.list:Deactivate()
end
--Global XML
    GAMEPAD_WORLD_MAP_HOUSES = ZO_MapHouses_Gamepad:New(self)
end