Back to Home

ESO Lua File v101041

ingame/globals/globals.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
local function OnGlobalMouseUp(eventCode, button, ctrl, alt, shift, command)
    if(button == MOUSE_BUTTON_INDEX_RIGHT) then
        ClearCursor()
    end
end
local function ShowLogoutDialog(dialogName, deferralTimeMS)
    if ZO_Dialogs_IsShowing(dialogName) then
        -- Update the dialog with the new deferral time
        ZO_Dialogs_UpdateDialogMainText(ZO_Dialogs_FindDialog(dialogName), nil, {deferralTimeMS})
    else
        -- Show the initial dialog
        if deferralTimeMS then
            ZO_Dialogs_ShowPlatformDialog(dialogName, { endTime = deferralTimeMS + GetFrameTimeMilliseconds() }, {mainTextParams = {deferralTimeMS}})
        else
            ZO_Dialogs_ShowPlatformDialog(dialogName)
        end
    end
end
local function OnLogoutDeferred(eventCode, deferralTimeMS, wasQuitRequest)
    if(wasQuitRequest) then
        ShowLogoutDialog("QUIT_DEFERRED", deferralTimeMS)
    else
        ShowLogoutDialog("LOGOUT_DEFERRED", deferralTimeMS)
    end
end
local function OnLogoutDisallowed(eventCode, wasQuitRequest)
    if(wasQuitRequest) then
        ShowLogoutDialog("QUIT_PREVENTED")
    end
end
local function OnCombatStateChanged(eventCode, inCombat)
    if inCombat then
        ZO_Dialogs_ReleaseDialog("QUIT_PREVENTED")
        ZO_Dialogs_ReleaseDialog("QUIT_DEFERRED")
        ZO_Dialogs_ReleaseDialog("LOGOUT_DEFERRED")
        local NUM_FLASHES_BEFORE_SOLID = 7
        FlashTaskbarWindow("IN_COMBAT", NUM_FLASHES_BEFORE_SOLID)
    end
end
local function OnZoneCollectibleRequirementFailed(eventId, collectibleId, message)
    local collectibleData = ZO_COLLECTIBLE_DATA_MANAGER:GetCollectibleDataById(collectibleId)
    local collectibleName = collectibleData:GetName()
    local categoryName = collectibleData:GetCategoryData():GetName()
    local marketOperation = MARKET_OPEN_OPERATION_DLC_FAILURE_TELEPORT_TO_ZONE
    ZO_Dialogs_ShowPlatformDialog("COLLECTIBLE_REQUIREMENT_FAILED", { collectibleData = collectibleData, marketOpenOperation = marketOperation }, { mainTextParams = { message, collectibleName, categoryName } })
end
local function OnLinkNotHandled(link, button, ...)
    ClearMenu()
    if button == MOUSE_BUTTON_INDEX_LEFT then
        if ZO_ChatSystem_ShouldUseKeyboardChatSystem() then
            ZO_PopupTooltip_SetLink(link)
        else
            SCENE_MANAGER:Push("gamepadChatMenu")
            CHAT_MENU_GAMEPAD:SelectMessageEntryByLink(link)
        end
    elseif button == MOUSE_BUTTON_INDEX_RIGHT and link ~= "" then
        local function AddLink()
            ZO_LinkHandler_InsertLink(zo_strformat(SI_TOOLTIP_ITEM_NAME, link))
        end
        AddMenuItem(GetString(SI_ITEM_ACTION_LINK_TO_CHAT), AddLink)
        ShowMenu(control)
    end
end
EVENT_MANAGER:RegisterForEvent("Globals", EVENT_GLOBAL_MOUSE_UP, OnGlobalMouseUp)
EVENT_MANAGER:RegisterForEvent("Globals", EVENT_LOGOUT_DEFERRED, OnLogoutDeferred)
EVENT_MANAGER:RegisterForEvent("Globals", EVENT_LOGOUT_DISALLOWED, OnLogoutDisallowed)
EVENT_MANAGER:RegisterForEvent("Globals", EVENT_PLAYER_COMBAT_STATE, OnCombatStateChanged)
EVENT_MANAGER:RegisterForEvent("Globals", EVENT_ZONE_COLLECTIBLE_REQUIREMENT_FAILED, OnZoneCollectibleRequirementFailed)
LINK_HANDLER:RegisterCallback(LINK_HANDLER.LINK_NOT_HANDLED_EVENT, OnLinkNotHandled)
-- Item sounds for slotting actions should mirror the equip sounds according to the audio department.
-- This is globally overridden here...
ITEM_SOUND_ACTION_SLOT = ITEM_SOUND_ACTION_EQUIP
--
-- Gamepad action/binding script handlers
--
ZO_JUMP_OR_INTERACT_DID_NOTHING = 0
ZO_JUMP_OR_INTERACT_DID_JUMP = 1
ZO_JUMP_OR_INTERACT_DID_INTERACT = 2
local g_actionPerformedByJumpOrInteract = ZO_JUMP_OR_INTERACT_DID_NOTHING
    g_actionPerformedByJumpOrInteract = action
end
    return g_actionPerformedByJumpOrInteract
end
function ZO_FormatResourceBarCurrentAndMax(current, maximum, overrideSetting)
    local returnValue = ""
    local percent = 0
    if maximum ~= 0 then
        percent = (current/maximum) * 100
        if percent < 10 then
            percent = ZO_CommaDelimitDecimalNumber(zo_roundToNearest(percent, .1))
            percent = ZO_FastFormatDecimalNumber(percent)
        else
            percent = zo_round(percent)
        end
    end
    local USE_LOWERCASE_NUMBER_SUFFIXES = false
    local setting = overrideSetting or tonumber(GetSetting(SETTING_TYPE_UI, UI_SETTING_RESOURCE_NUMBERS))
    if setting == RESOURCE_NUMBERS_SETTING_NUMBER_ONLY then
        returnValue = ZO_AbbreviateAndLocalizeNumber(current, NUMBER_ABBREVIATION_PRECISION_TENTHS, USE_LOWERCASE_NUMBER_SUFFIXES)
    elseif setting == RESOURCE_NUMBERS_SETTING_PERCENT_ONLY then
        returnValue = percent
    elseif setting == RESOURCE_NUMBERS_SETTING_NUMBER_AND_PERCENT then
        returnValue = zo_strformat(SI_ATTRIBUTE_NUMBERS_WITH_PERCENT, ZO_AbbreviateAndLocalizeNumber(current, NUMBER_ABBREVIATION_PRECISION_TENTHS, USE_LOWERCASE_NUMBER_SUFFIXES), percent)
    end
    return returnValue
end
-- Determines whether any item or collectible furnishing can be placed in the current house.
    return GetCurrentZoneHouseId() ~= 0 and IsOwnerOfCurrentHouse()
end