Back to Home

ESO Lua File v100033

pregame/gamemenu_pregame/keyboard/gamemenu_pregame.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
140
141
142
143
144
145
146
-----------------
ZO_GameMenu_PreGame_Keyboard = ZO_Object:Subclass()
function ZO_GameMenu_PreGame_Keyboard:New(...)
    local object = ZO_Object.New(self)
    object:Initialize(...)
    return object
end
function ZO_GameMenu_PreGame_Keyboard:Initialize(control)
    self.control = control
    local horizontalMenuControl = control:GetNamedChild("HorizontalMenu")
    self.horizontalMenu = ZO_Horizontal_Menu:New(horizontalMenuControl, ZO_HORIZONAL_MENU_ALIGN_LEFT)
    self.gameMenuPregameFragment = ZO_FadeSceneFragment:New(self.control)
    self.scene = ZO_Scene:New("gameMenuPregame", SCENE_MANAGER)
    self.scene:AddFragment(self.gameMenuPregameFragment)
    self.scene:AddFragment(PREGAME_BACKGROUND_FRAGMENT)
    self.scene:AddFragment(LOGIN_BG_FRAGMENT)
    local loginFragment = LOGIN_MANAGER_KEYBOARD:GetRelevantLoginFragment()
    self.scene:AddFragment(loginFragment)
    local function OnHorizontalMenuItemSetup(menuControl, data)
        local name = data.name
        if type(data.name) == "function" then
            name = data.name()
        end
        menuControl:SetText(name)
    end
    local HORIZONTAL_SPACING = 30
    self.horizontalMenu:AddTemplate("ZO_HorizontalMenu_LabelHeader", OnHorizontalMenuItemSetup, HORIZONTAL_SPACING)
    self:BuildMenu()
    -- Quit Option
    local quitOption = self.control:GetNamedChild("Quit")
    local data =
    {
        name = GetString(SI_GAME_MENU_QUIT),
        onSelectedCallback = PregameQuit,
    }
    quitOption.data = data
    OnHorizontalMenuItemSetup(quitOption, data)
end
function ZO_GameMenu_PreGame_Keyboard:BuildMenu()
    self.horizontalMenu:Reset()
    -- Server Menu Option
    local function OnHideServerSelect()
        self.horizontalMenu:Refresh()
    end
    local function OnShowServerSelect(control)
        ZO_Dialogs_ShowDialog("SERVER_SELECT_DIALOG", { onSelectedCallback = OnHideServerSelect })
    end
    local function GetServerSelectButtonName()
        if DoesPlatformSelectServer() then
            local currentServer = GetCVar("LastPlatform")
            currentServer = ZO_GetLocalizedServerName(currentServer)
            return zo_strformat(SI_GAME_MENU_SERVER, currentServer)
        end
        return ""
    end
     if DoesPlatformSelectServer() then
        local function GetServerMenuItemName()
            local currentServer = GetCVar("LastPlatform")
            currentServer = ZO_GetLocalizedServerName(currentServer)
            return zo_strformat(SI_GAME_MENU_SERVER, currentServer)
        end
        self.serverSelectControl = self.horizontalMenu:AddMenuItem("ServerSelect", GetServerMenuItemName, OnShowServerSelect, OnHideServerSelect)
    end
    -- Settings Menu Option
    local function OnShowSettings(control)
        PREGAME_SETTINGS_KEYBOARD:SetOnExitCallback(control.data.onUnselectedCallback)
        self.scene:AddFragment(SETTINGS_FRAGMENT)
        self.scene:RemoveFragment(self.gameMenuPregameFragment)
        self.scene:RemoveFragment(LOGIN_BG_FRAGMENT)
        local loginFragment = LOGIN_MANAGER_KEYBOARD:GetRelevantLoginFragment()
        self.scene:RemoveFragment(loginFragment)
    end
        
    local function OnHideSettings()
        self.control:SetHidden(false)
        self.scene:RemoveFragment(SETTINGS_FRAGMENT)
        self.scene:AddFragment(self.gameMenuPregameFragment)
        self.scene:AddFragment(LOGIN_BG_FRAGMENT)
        local loginFragment = LOGIN_MANAGER_KEYBOARD:GetRelevantLoginFragment()
        self.scene:AddFragment(loginFragment)
    end
    self.horizontalMenu:AddMenuItem("Settings", GetString(SI_GAME_MENU_SETTINGS), OnShowSettings, OnHideSettings)
    -- Credits Menu Option
    local function OnShowCredits(control)
        self.control:SetHidden(true)
        GAME_CREDITS_KEYBOARD:SetOnExitCallback(control.data.onUnselectedCallback)
        self.scene:AddFragment(GAME_CREDITS_FRAGMENT)
        self.scene:RemoveFragment(LOGIN_BG_FRAGMENT)
        local loginFragment = LOGIN_MANAGER_KEYBOARD:GetRelevantLoginFragment()
        self.scene:RemoveFragment(loginFragment)
    end
    local function OnHideCredits()
        self.control:SetHidden(false)
        self.scene:RemoveFragment(GAME_CREDITS_FRAGMENT)
        self.scene:AddFragment(LOGIN_BG_FRAGMENT)
        local loginFragment = LOGIN_MANAGER_KEYBOARD:GetRelevantLoginFragment()
        self.scene:AddFragment(loginFragment)
    end
    self.horizontalMenu:AddMenuItem("Credits", GetString(SI_GAME_MENU_CREDITS), OnShowCredits, OnHideCredits)
    -- Version Menu Option
    local function OnMouseEnterVersion(label)
        ZO_SelectableLabel_OnMouseEnter(label)
        InitializeTooltip(InformationTooltip, label, TOPLEFT, 0, -10, BOTTOMLEFT)
        SetTooltipText(InformationTooltip, zo_strformat(SI_VERSION, GetESOFullVersionString()))
    end
    local function OnMouseExitVersion(label)
        ZO_SelectableLabel_OnMouseExit(label)
        ClearTooltip(InformationTooltip)
    end
    local NO_ACTIVATE_FUNCTION = nil
    local NO_DEACTIVATE_FUNCTION = nil
    self.horizontalMenu:AddMenuItem("Version", GetString(SI_VERSION_MENU_ENTRY), NO_ACTIVATE_FUNCTION, NO_DEACTIVATE_FUNCTION, OnMouseEnterVersion, OnMouseExitVersion)
end
function ZO_GameMenu_PreGame_Keyboard:IsLoginSceneShowing()
    return not self.control:IsHidden()
end
--Global XML
    GAME_MENU_PREGAME_KEYBOARD = ZO_GameMenu_PreGame_Keyboard:New(self)
end