Back to Home

ESO Lua File v101043

ingame/alerttext/gamepad/alerttext_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
124
125
126
127
128
129
130
131
132
133
134
local DEFAULT_GAMEPAD_ALERT_TEMPLATE = "ZO_AlertLineGamepad"
local ZO_AlertText_Gamepad = ZO_AlertText_Base:Subclass()
function ZO_AlertText_Gamepad:New(...)
    return ZO_AlertText_Base.New(self, ...)
end
function ZO_AlertText_Gamepad:InternalPerformAlert(category, soundId, message, template)
    local color = self:GetAlertColor(category)
    local alertData = message
    if not (type(alertData) == "table") then
        alertData = {
            lines = {
                {text = message, category = category, color = color, soundId = soundId}
            }
        }
    end
    self.alerts:AddEntry(self.alerts:HasTemplate(template) and template or DEFAULT_GAMEPAD_ALERT_TEMPLATE, alertData)
end
function ZO_AlertText_Gamepad:AddTemplate(template, templateData)
    self.alerts:AddTemplate(template, templateData)
end
function ZO_AlertText_Gamepad:ClearAll()
    self.alerts:ClearAll()
end
function ZO_AlertText_Gamepad:FadeAll()
    self.alerts:FadeAll()
end
local function OnScriptAccessViolation(eventCode, functionName)
    ZO_Dialogs_ShowGamepadDialog("SCRIPT_ACCESS_VIOLATION", nil, {mainTextParams = {functionName}})
end
local function SetupFunction(control, data)
    control:SetWidth(GuiRoot:GetRight() - ZO_Compass:GetRight() - ZO_GAMEPAD_CONTENT_INSET_X - ZO_GAMEPAD_SAFE_ZONE_INSET_X)
    ZO_SoundAlert(data.category, data.soundId)
end
function ZO_AlertText_Gamepad:Initialize(control)
    ZO_AlertText_Base.Initialize(self)
    control:RegisterForEvent(EVENT_SCRIPT_ACCESS_VIOLATION, OnScriptAccessViolation)
    local anchor = ZO_Anchor:New(TOPRIGHT, GuiRoot, TOPRIGHT, -15, 4)
    local MAX_DISPLAYED_ENTRIES_GAMEPAD = 2
    local MAX_HEIGHT_GAMEPAD = 900
    local NO_MAX_LINES_PER_ENTRY_GAMEPAD = nil
    self.alerts = ZO_FadingControlBuffer:New(control, MAX_DISPLAYED_ENTRIES_GAMEPAD, MAX_HEIGHT_GAMEPAD, NO_MAX_LINES_PER_ENTRY_GAMEPAD, "AlertFadeGamepad", "AlertTranslateGamepad", anchor)
    self.alerts:AddTemplate(DEFAULT_GAMEPAD_ALERT_TEMPLATE, {setup = SetupFunction})
    self.alerts:SetTranslateDuration(1500)
    self.alerts:SetHoldTimes(6000)
    self.alerts:SetFadesInImmediately(true)
    local function OnAppGuiHiddenStateChanged(_, hidden)
        self.alerts:SetHoldDisplayingEntries(not hidden)
    end
    EVENT_MANAGER:RegisterForEvent("AlertText_Gamepad", EVENT_APP_GUI_HIDDEN_STATE_CHANGED, OnAppGuiHiddenStateChanged)
    if not GetGuiHidden("App") then
        self.alerts:SetHoldDisplayingEntries(true)
    end
end
function ZO_AlertText_Gamepad:HasActiveEntries()
    return self.alerts:HasQueuedEntry() or self.alerts:HasEntries()
end
function ZO_AlertText_Gamepad:SetHoldDisplayingEntries(holdEntries)
    self.alerts:SetHoldDisplayingEntries(holdEntries)
end
    ALERT_MESSAGES_GAMEPAD = ZO_AlertText_Gamepad:New(control)
end
--[[ Global Alert Functions ]]--
function ZO_AlertTemplated_Gamepad(category, soundId, message, template, ...)
    if not message then
        return
    end
    if not type(message) == "table" then
        message = zo_strformat(message, ...)
    end
    if message == "" then
        return
    end
    if ALERT_EVENT_MANAGER:ShouldDisplayMessage(message) then
        ALERT_MESSAGES_GAMEPAD:InternalPerformAlert(category, soundId, message, template)
    else
        ZO_SoundAlert(category, soundId)
    end
end
function ZO_AlertNoSuppressionTemplated_Gamepad(category, soundId, message, template, ...)
    if not message then
        return
    end
    if not type(message) == "table" then
        message = zo_strformat(message, ...)
    end
    if message == "" then
        return
    end
    ALERT_MESSAGES_GAMEPAD:InternalPerformAlert(category, soundId, message, template)
end
function ZO_AlertAddTemplate_Gamepad(template, templateData)
    ALERT_MESSAGES_GAMEPAD:AddTemplate(template, templateData)
end
    ALERT_MESSAGES_GAMEPAD:FadeAll()
end
    ALERT_MESSAGES_GAMEPAD:ClearAll()
end