Back to Home

ESO Lua File v100018

ingame/housingeditor/keyboard/housingfurnitureretrieval_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
ZO_HousingFurnitureRetrieval_Keyboard = ZO_HousingFurnitureList:Subclass()
function ZO_HousingFurnitureRetrieval_Keyboard:New(...)
    return ZO_HousingFurnitureList.New(self, ...)
end
function ZO_HousingFurnitureRetrieval_Keyboard:Initialize(...)
    ZO_HousingFurnitureList.Initialize(self, ...)
    self.CompareRetrievableEntriesFunction = function(a, b)
        return a.data:CompareTo(b.data)
    end
end
function ZO_HousingFurnitureRetrieval_Keyboard:InitializeKeybindStrip()
    self.keybindStripDescriptor =
    {
        alignment = KEYBIND_STRIP_ALIGN_CENTER,
        {
            name = GetString(SI_HOUSING_EDITOR_MODIFY),
            keybind = "UI_SHORTCUT_PRIMARY",
            callback = function()
                local mostRecentlySelectedData = self:GetMostRecentlySelectedData()
                self:Retrieve(mostRecentlySelectedData)
            end,
            enabled = function()
                local hasMostRecentlySelectedData = self:GetMostRecentlySelectedData() ~= nil
                if not hasMostRecentlySelectedData then
                    return false, GetString(SI_HOUSING_BROWSER_MUST_CHOOSE_TO_MODIFY)
                end
                return true
            end,
        },
        {
            name = GetString(SI_HOUSING_EDITOR_PUT_AWAY),
            keybind = "UI_SHORTCUT_SECONDARY",
            callback = function()
                local mostRecentlySelectedData = self:GetMostRecentlySelectedData()
                ZO_HousingFurnitureBrowser_Base.PutAwayFurniture(mostRecentlySelectedData)
            end,
            enabled = function()
                local hasMostRecentlySelectedData = self:GetMostRecentlySelectedData() ~= nil
                if not hasMostRecentlySelectedData then
                    return false, GetString(SI_HOUSING_BROWSER_MUST_CHOOSE_TO_PUT_AWAY)
                end
                return true
            end,
        },
        {
            name = GetString(SI_WORLD_MAP_ACTION_SET_PLAYER_WAYPOINT),
            keybind = "UI_SHORTCUT_TERTIARY",
            callback = function()
                local mostRecentlySelectedData = self:GetMostRecentlySelectedData()
                SHARED_FURNITURE:SetPlayerWaypointTo(mostRecentlySelectedData)
            end,
            enabled = function()
                local hasMostRecentlySelectedData = self:GetMostRecentlySelectedData() ~= nil
                if not hasMostRecentlySelectedData then
                    return false, GetString(SI_HOUSING_BROWSER_MUST_CHOOSE_TO_SET_PLAYER_WAYPOINT)
                end
                return true
            end
        },
        {
            name = GetString(SI_CRAFTING_EXIT_PREVIEW_MODE),
            keybind = "UI_SHORTCUT_NEGATIVE",
            callback = function()
                self:ClearSelection()
            end,
            visible = function()
                local hasSelection = self:GetMostRecentlySelectedData() ~= nil
                return hasSelection
            end,
        },
    }
end
function ZO_HousingFurnitureRetrieval_Keyboard:OnSearchTextChanged(editBox)
    ZO_HousingFurnitureList.OnSearchTextChanged(self, editBox)
    SHARED_FURNITURE:SetRetrievableTextFilter(editBox:GetText())
end
function ZO_HousingFurnitureRetrieval_Keyboard:AddListDataTypes()
    self.RetrievableFurnitureOnMouseClick = function(control, buttonIndex, upInside)
        if buttonIndex == MOUSE_BUTTON_INDEX_LEFT and upInside then
            ZO_ScrollList_MouseClick(self:GetList(), control)
        end
    end
    self.RetrievableFurnitureOnMouseDoubleClick = function(control, buttonIndex)
        if buttonIndex == MOUSE_BUTTON_INDEX_LEFT then
        local data = ZO_ScrollList_GetData(control)
            self:Retrieve(data)
        end
    end
    self:AddDataType(ZO_RECALLABLE_HOUSING_DATA_TYPE, "ZO_RetrievableFurnitureSlot", ZO_HOUSING_FURNITURE_LIST_ENTRY_HEIGHT, function(...) self:SetupRetrievableFurnitureRow(...) end, ZO_HousingFurnitureBrowser_Keyboard.OnHideFurnitureRow)
end
function ZO_HousingFurnitureRetrieval_Keyboard:Retrieve(data)
    ZO_HousingFurnitureBrowser_Base.SelectFurnitureForReplacement(data)
    SCENE_MANAGER:HideCurrentScene()
end
function ZO_HousingFurnitureRetrieval_Keyboard:SetupRetrievableFurnitureRow(control, data)
    local distanceLabel = control:GetNamedChild("Distance")
    distanceLabel:SetText(zo_strformat(SI_HOUSING_BROWSER_DISTANCE_AWAY_FORMAT, data:GetDistanceFromPlayerM()))
    local directionTexture = control:GetNamedChild("Direction")
end
--Overridden from ZO_HousingFurnitureList
function ZO_HousingFurnitureRetrieval_Keyboard:GetCategoryTreeData()
    return SHARED_FURNITURE:GetRetrievableFurnitureCategoryTreeData()
end
--Overridden from ZO_HousingFurnitureList
function ZO_HousingFurnitureRetrieval_Keyboard:GetNoItemText()
    if SHARED_FURNITURE:DoesPlayerHaveRetrievableFurniture() then
        return GetString(SI_HOUSING_FURNITURE_NO_SEARCH_RESULTS)
    else
        return GetString(SI_HOUSING_FURNITURE_NO_RETRIEVABLE_FURNITURE)
    end
end
--Overridden from ZO_HousingFurnitureList
function ZO_HousingFurnitureRetrieval_Keyboard:CompareFurnitureEntries(a, b)
    return a:CompareTo(b)
end