Back to Home

ESO Lua File v100025

ingame/tutorial/keyboard/pointerboxtutorial.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
ZO_PointerBoxTutorial = ZO_TutorialHandlerBase:Subclass()
function ZO_PointerBoxTutorial:Initialize(parent)
    self.tutorial = CreateControlFromVirtual(parent:GetName(), parent, "ZO_PointerBoxTutorialTip", "PointerBoxTip")
end
do
    local g_triggerLayoutInfo = {}
    function ZO_PointerBoxTutorial:RegisterTriggerLayoutInfo(tutorialTrigger, parent, fragment, anchor, optionalParams)
        g_triggerLayoutInfo[tutorialTrigger] =
        {
            parent = parent,
            fragment = fragment,
            anchor = anchor,
            optionalParams = optionalParams,
        }
    end
    function ZO_PointerBoxTutorial:GetTriggerLayoutInfo(tutorialTrigger)
        return g_triggerLayoutInfo[tutorialTrigger]
    end
end
function ZO_PointerBoxTutorial:SuppressTutorials(suppress, reason)
    -- Suppression is disabled in ZO_PointerBoxTutorial
end
function ZO_PointerBoxTutorial:DisplayTutorial(tutorialIndex)
    self.tutorialIndex = tutorialIndex
    local title, description = GetTutorialInfo(tutorialIndex)
    local trigger = GetTutorialTrigger(tutorialIndex)
    local layoutInfo = self:GetTriggerLayoutInfo(trigger)
    self.tutorial:SetText(zo_strformat(SI_TUTORIAL_FORMATTER, description))
    self.pointerBox = POINTER_BOXES:Acquire()
    self.pointerBox:SetContentsControl(self.tutorial)
    self.pointerBox:SetParent(layoutInfo.parent)
    self.pointerBox:SetCloseable(true)
    self.pointerBox:SetReleaseOnHidden(true)
    self.pointerBox:SetOnHiddenCallback(function()
        self.pointerBox = nil
        self:RemoveTutorial(tutorialIndex)
    end)
    layoutInfo.anchor:Set(self.pointerBox)
    if layoutInfo.fragment then
        self.pointerBox:SetHideWithFragment(layoutInfo.fragment)
    end
    self:SetOptionalPointerBoxParams(layoutInfo.optionalParams)
    self.pointerBox:Commit()
    self.pointerBox:Show()
    SetTutorialSeen(tutorialIndex)
    self:SetCurrentlyDisplayedTutorialIndex(tutorialIndex, trigger)
end
do
    local DEFAULT_VERTICAL_ALIGNMENT = TEXT_ALIGN_TOP
    local DEFAULT_HORIZONTAL_ALIGNMENT = TEXT_ALIGN_CENTER
    local DEFAULT_WIDTH = 290
    local DEFAULT_HEIGHT = 0
    function ZO_PointerBoxTutorial:SetOptionalPointerBoxParams(optionalParams)
        if optionalParams then
            if optionalParams.dimensionConstraintsMinX or optionalParams.dimensionConstraintsMinY or optionalParams.dimensionConstraintsMaxX or optionalParams.dimensionConstraintsMaxY then
                self.tutorial:SetDimensionConstraints(optionalParams.dimensionConstraintsMinX or 0, optionalParams.dimensionConstraintsMinY or 0, optionalParams.dimensionConstraintsMaxX or 0, optionalParams.dimensionConstraintsMaxY or 0)
            else
                self.tutorial:SetDimensions(optionalParams.width or DEFAULT_WIDTH, optionalParams.height or DEFAULT_HEIGHT)
            end
            self.tutorial:SetVerticalAlignment(optionalParams.verticalAlignment or DEFAULT_VERTICAL_ALIGNMENT)
            self.tutorial:SetHorizontalAlignment(optionalParams.horizontalAlignment or DEFAULT_HORIZONTAL_ALIGNMENT)
        else
            self.tutorial:SetDimensionConstraints(0, 0, 0, 0)
            self.tutorial:SetDimensions(DEFAULT_WIDTH, DEFAULT_HEIGHT)
            self.tutorial:SetVerticalAlignment(DEFAULT_VERTICAL_ALIGNMENT)
            self.tutorial:SetHorizontalAlignment(DEFAULT_HORIZONTAL_ALIGNMENT)
        end
    end
end
function ZO_PointerBoxTutorial:OnDisplayTutorial(tutorialIndex, priority)
     if tutorialIndex ~= self:GetCurrentlyDisplayedTutorialIndex() then
        if self:CanShowTutorial() then
            self:DisplayTutorial(tutorialIndex)
        end
    end
end
function ZO_PointerBoxTutorial:SetCurrentlyDisplayedTutorialIndex(currentlyDisplayedTutorialIndex, currentlyDisplayedTutorialTrigger)
    self.currentlyDisplayedTutorialIndex = currentlyDisplayedTutorialIndex
    self.currentlyDisplayedTutorialTrigger = currentlyDisplayedTutorialTrigger
end
function ZO_PointerBoxTutorial:RemoveTutorialByTrigger(tutorialTrigger)
    if self.currentlyDisplayedTutorialTrigger == tutorialTrigger then
    end
end
function ZO_PointerBoxTutorial:RemoveTutorial(tutorialIndex)
    if self:GetCurrentlyDisplayedTutorialIndex() == tutorialIndex then
        if self.pointerBox then
            self.pointerBox:Hide()
        end
    end
end
function ZO_PointerBoxTutorial:GetTutorialType()
    return TUTORIAL_TYPE_POINTER_BOX
end
function ZO_PointerBoxTutorial:ClearAll()
end