Back to Home

ESO Lua File v101050

ingame/tamrieltomes/tamrieltomesintroscreen_shared.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
ZO_TamrielTomesIntroScreen_Shared = ZO_DeferredInitializingObject:Subclass()
function ZO_TamrielTomesIntroScreen_Shared:Initialize(control, scene, highlightTemplate)
    self.control = control
    ZO_DeferredInitializingObject.Initialize(self, scene)
    self.fragment = ZO_FadeSceneFragment:New(control)
    scene:AddFragment(self.fragment)
    self.highlightTemplate = highlightTemplate
end
function ZO_TamrielTomesIntroScreen_Shared:OnDeferredInitialize()
    self.highlightsContainer = self.control:GetNamedChild("HighlightsScrollChild")
    self.highlightsControlPool = ZO_ControlPool:New(self.highlightTemplate, self.highlightsContainer, "Entry")
    self.titleLabel = self.control:GetNamedChild("Title")
    self.rewardImageControl = self.control:GetNamedChild("ImageBackground")
    TAMRIEL_TOMES_MANAGER:RegisterCallback("SelectedTomeChanged", self.OnSelectedTomeChanged, self)
end
function ZO_TamrielTomesIntroScreen_Shared:OnShowing()
    local selectedTomeId = TAMRIEL_TOMES_MANAGER:GetSelectedTomeId()
    self:ShowTomeInfo(selectedTomeId)
end
function ZO_TamrielTomesIntroScreen_Shared:OnShown()
    local selectedTomeId = TAMRIEL_TOMES_MANAGER:GetSelectedTomeId()
    TAMRIEL_TOMES_MANAGER:MarkTomeSeen(selectedTomeId)
end
function ZO_TamrielTomesIntroScreen_Shared:OnHiding()
    PlaySound(SOUNDS.TAMRIEL_TOMES_PAGE_ZERO_CLOSED)
end
function ZO_TamrielTomesIntroScreen_Shared:OnHidden()
    -- TODO Tamriel Tomes
end
function ZO_TamrielTomesIntroScreen_Shared:OnSelectedTomeChanged(tomeId)
    if not self:IsShowing() then
        return
    end
    local selectedTomeId = TAMRIEL_TOMES_MANAGER:GetSelectedTomeId()
    self:ShowTomeInfo(selectedTomeId)
end
function ZO_TamrielTomesIntroScreen_Shared:ShowTomeInfo(tamrielTomeId)
    if not (tamrielTomeId and tamrielTomeId ~= 0) then
        -- There are no available Tomes.
        SCENE_MANAGER:HideCurrentScene()
        return
    end
    PlaySound(SOUNDS.TAMRIEL_TOMES_PAGE_ZERO_OPENED)
    self.highlightsControlPool:ReleaseAllObjects()
    local tomeData = ZO_TamrielTomeData:New(tamrielTomeId)
    self.tomeData = tomeData
    local displayName = tomeData:GetDisplayName()
    self.titleLabel:SetText(displayName)
    local backgroundFile = tomeData:GetIntroBackgroundFile()
    self.rewardImageControl:SetTexture(backgroundFile)
    local previousControl = nil
    local numHighlights = tomeData:GetNumHighlights()
    for highlightIndex = 1, numHighlights do
        local title, text = tomeData:GetHighlightInfo(highlightIndex)
        local highlightControl = self.highlightsControlPool:AcquireObject()
        highlightControl:SetParent(self.highlightsContainer)
        highlightControl.titleLabel:SetText(title)
        highlightControl.bodyTextLabel:SetText(text)
        if previousControl then
            highlightControl:SetAnchor(TOPLEFT, previousControl, BOTTOMLEFT, 0, 15)
        else
            highlightControl:SetAnchor(TOPLEFT, nil, TOPLEFT, 0, 0)
        end
        previousControl = highlightControl
    end
end
function ZO_TamrielTomesIntroScreen_Shared:AdvanceToTome()
    SYSTEMS:ShowScene("tamrielTomes")
    -- Play the page fip sound manually as the ZO_PageNavigation control
    -- is not technically changing pages in this context.
    PlaySound(SOUNDS.TAMRIEL_TOMES_PAGE_FLIPPED)
    PlaySound(SOUNDS.TAMRIEL_TOMES_PAGE_ZERO_CONTINUE_TO_TOME)
end