Back to Home

ESO Lua File v100018

ingame/collections/keyboard/housingbook_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
--Layout constants--
local BACKGROUND_IMAGE_FILE_WIDTH = 1024
local BACKGROUND_IMAGE_FILE_HEIGHT = 512
local BACKGROUND_IMAGE_CONTENT_WIDTH = 700
local BACKGROUND_IMAGE_CONTENT_HEIGHT = 350
local INFO_PANEL_WIDTH = 614
ZO_HOUSING_BOOK_IMAGE_TEXTURE_COORD_RIGHT = BACKGROUND_IMAGE_CONTENT_WIDTH / BACKGROUND_IMAGE_FILE_WIDTH
ZO_HOUSING_BOOK_IMAGE_TEXTURE_COORD_BOTTOM = BACKGROUND_IMAGE_CONTENT_HEIGHT / BACKGROUND_IMAGE_FILE_HEIGHT
ZO_HOUSING_BOOK_IMAGE_HEIGHT = (INFO_PANEL_WIDTH / BACKGROUND_IMAGE_CONTENT_WIDTH) * BACKGROUND_IMAGE_CONTENT_HEIGHT
local NOTIFICATIONS_PROVIDER = NOTIFICATIONS:GetCollectionsProvider()
--Housing Book
local HousingBook_Keyboard = ZO_SpecializedCollectionsBook_Keyboard:Subclass()
function HousingBook_Keyboard:New(...)
    return ZO_SpecializedCollectionsBook_Keyboard.New(self, ...)
end
function HousingBook_Keyboard:InitializeControls()
    ZO_SpecializedCollectionsBook_Keyboard.InitializeControls(self)
    
    local contents = self.control:GetNamedChild("Contents")
    self.nicknameLabel = contents:GetNamedChild("Nickname")
    local scrollSection = contents:GetNamedChild("ScrollContainer"):GetNamedChild("ScrollChild")
    self.locationLabel = scrollSection:GetNamedChild("LocationLabel")
    self.houseTypeLabel = scrollSection:GetNamedChild("HouseTypeLabel")
    self.primaryResidenceLabel = scrollSection:GetNamedChild("PrimaryResidenceLabel")
    self.hintLabel = scrollSection:GetNamedChild("HintLabel")
    local buttons = contents:GetNamedChild("HousingInteractButtons")
    self.travelToHouseButton = buttons:GetNamedChild("TravelToHouse")
    self.changeNicknameButton = buttons:GetNamedChild("ChangeNickname")
    self.previewHouseButton = contents:GetNamedChild("PreviewHouseButton")
end
function HousingBook_Keyboard:InitializeEvents()
    ZO_SpecializedCollectionsBook_Keyboard.InitializeEvents(self)
    self.control:RegisterForEvent(EVENT_HOUSING_PRIMARY_RESIDENCE_SET, function(_, ...) self:OnPrimaryResidenceSet(...) end)
end
function HousingBook_Keyboard:DoesCollectibleHaveAlert(data)
    return IsCollectibleNew(data.collectibleId)
end
function HousingBook_Keyboard:OnPrimaryResidenceSet(houseId)
    self:RefreshList()
end
function HousingBook_Keyboard:SortCollectibleData(collectibleData)
    local primaryHouseId = GetHousingPrimaryHouse()
    table.sort(collectibleData, function(a, b)
        if primaryHouseId ~= 0 then
            local houseIdA = GetCollectibleReferenceId(a.collectibleId)
            local houseIdB = GetCollectibleReferenceId(b.collectibleId)
            if primaryHouseId == houseIdA then
                return true
            elseif primaryHouseId == houseIdB then
                return false
            end
        end
        return a.name < b.name
    end)
end
function HousingBook_Keyboard:SetupAdditionalCollectibleData(data, collectibleId)
    local houseFoundInZoneId = GetHouseFoundInZoneId(data.referenceId)
    data.location = GetZoneNameById(houseFoundInZoneId)
    data.houseCategoryType = GetHouseCategoryType(data.referenceId)
    data.isPrimaryResidence = IsPrimaryHouse(data.referenceId)
    if data.hint == "" then
        data.hint = GetString(SI_HOUSING_BOOK_AVAILABLE_FOR_PURCHASE)
    end
end
function HousingBook_Keyboard:RefreshDetails()
    ZO_SpecializedCollectionsBook_Keyboard.RefreshDetails(self)
    local data = self.navigationTree:GetSelectedData()
    if data then
        local hasNickname = data.nickname ~= ""
        if hasNickname then
            self.nicknameLabel:SetText(ZO_CachedStrFormat(SI_TOOLTIP_COLLECTIBLE_NICKNAME, data.nickname))
        end
        self.nicknameLabel:SetHidden(not hasNickname)
        
        self.locationLabel:SetText(zo_strformat(SI_HOUSING_BOOK_LOCATION_FORMATTER, data.location))
        self.houseTypeLabel:SetText(zo_strformat(SI_HOUSING_BOOK_HOUSE_TYPE_FORMATTER, GetString("SI_HOUSECATEGORYTYPE", data.houseCategoryType)))
        if data.unlocked then
            local isPrimaryResidence = data.isPrimaryResidence and GetString(SI_YES) or GetString(SI_NO)
            self.primaryResidenceLabel:SetText(zo_strformat(SI_HOUSING_BOOK_PRIMARY_RESIDENCE_FORMATTER, isPrimaryResidence))
            
            self.primaryResidenceLabel:SetHidden(false)
            self.hintLabel:SetHidden(true)
        else
            self.hintLabel:SetText(data.hint)
            
            self.hintLabel:SetHidden(false)
            self.primaryResidenceLabel:SetHidden(true)
        end
        self.travelToHouseButton:SetHidden(not data.unlocked)
        self.changeNicknameButton:SetHidden(not data.unlocked)
        self.previewHouseButton:SetHidden(data.unlocked)
    end
end
function HousingBook_Keyboard:RenameCurrentHouse()
    local data = self.navigationTree:GetSelectedData()
    if data then
        ZO_Dialogs_ShowDialog("COLLECTIONS_INVENTORY_RENAME_COLLECTIBLE", { collectibleId = data.collectibleId })
    end
end
function HousingBook_Keyboard:RequestJumpToCurrentHouse()
    local data = self.navigationTree:GetSelectedData()
    if data then
        RequestJumpToHouse(data.referenceId)
    end
end
    HOUSING_BOOK_KEYBOARD:RequestJumpToCurrentHouse()
    SCENE_MANAGER:ShowBaseScene()
end
    HOUSING_BOOK_KEYBOARD:RenameCurrentHouse()
end
    HOUSING_BOOK_KEYBOARD = HousingBook_Keyboard:New(control, "housingBook", COLLECTIBLE_CATEGORY_TYPE_HOUSE)
end