FrameworkZ 10.8.3
Provides a framework for Project Zomboid with various systems.
Loading...
Searching...
No Matches
MainMenu.lua
Go to the documentation of this file.
3
6local nextLightning = 5
7
8function FrameworkZ.UI.MainMenu:initialise()
9
10 -- HL2RP LIGHTNING STUFF
11 --[[
12 FrameworkZ.Timers:Create("MainMenuTick", 1, 0, function()
14 if not FrameworkZ.Timers:Exists("NextLightning") then
15 FrameworkZ.Timers:Create("NextLightning", nextLightning, 1, function()
16 local mainMenu = FrameworkZ.UI.MainMenu.instance
17 mainMenu.shouldFlashLightning = true
18 mainMenu.hasFlashed1 = false
19 mainMenu.hasFlashed2 = false
20 mainMenu.hasFlashed3 = false
21 nextLightning = ZombRandBetween(10, 60)
23 FrameworkZ.Timers:Simple(2, function()
24 mainMenu.emitter:playSoundImpl("thunder" .. ZombRandBetween(3, 4), nil)
25 end)
26 end)
27 end
28 end
29 end)
30 --]]
31
33 self.emitter = self.playerObject:getEmitter()
34 local title = FrameworkZ.Config.Options.GamemodeTitle .. " " .. FrameworkZ.Config.Options.Version .. "-" .. FrameworkZ.Config.Options.VersionType
35 local subtitle = FrameworkZ.Config.Options.GamemodeDescription
36 local createCharacterLabel = "Create Character"
37 local loadCharacterLabel = "Load Character"
38 local disconnectLabel = "Disconnect"
39 local middleX = self.width / 2 - 200 / 2
40 local middleY = self.height / 2 + FrameworkZ.UI.GetHeight(UIFont.Title, title) + FrameworkZ.UI.GetHeight(UIFont.Large, subtitle)
41
42 ISPanel.initialise(self)
43
44 if FrameworkZ.Timers:Exists("FadeOutMainMenuMusic") then
45 FrameworkZ.Timers:Remove("FadeOutMainMenuMusic")
46 end
47
50 end
53 currentMainMenuSong = self.emitter:playSoundImpl(FrameworkZ.Config.Options.MainMenuMusic, nil)
54
55 local stepWidth, stepHeight = 500, 600
56 local stepX, stepY = self.width / 2 - stepWidth / 2, self.height / 2 - stepHeight / 2
58 self.createCharacterSteps = FrameworkZ.UserInterfaces:New("VanillaCreateCharacter", self)
62
63 if FrameworkZ.UI.MainMenu.customSteps then
64 FrameworkZ.UI.MainMenu.customSteps()
65 else
67 self.createCharacterSteps:RegisterNextStep("SelectFaction", "EnterInfo", FrameworkZ.UI.CreateCharacterFaction, FrameworkZ.UI.CreateCharacterInfo, self.onEnterInfoMenu, self.onExitInfoMenu, {x = stepX, y = stepY, width = stepWidth, height = stepHeight, playerObject = self.playerObject})
68 self.createCharacterSteps:RegisterNextStep("EnterInfo", "CustomizeAppearance", FrameworkZ.UI.CreateCharacterInfo, FrameworkZ.UI.CreateCharacterAppearance, self.onEnterAppearanceMenu, self.onExitAppearanceMenu, {x = stepX, y = stepY, width = stepWidth, height = stepHeight, playerObject = self.playerObject})
69 self.createCharacterSteps:RegisterNextStep("CustomizeAppearance", "MainMenu", FrameworkZ.UI.CreateCharacterAppearance, self, self.onFinalizeCharacter, nil, {x = stepX, y = stepY, width = stepWidth, height = stepHeight, playerObject = self.playerObject})
70 end
72 self.titleY = self.uiHelper.GetHeight(UIFont.Title, title)
73
74 self.title = ISLabel:new(self.uiHelper.GetMiddle(self.width, UIFont.Title, title), self.titleY, 25, title, 1, 1, 1, 1, UIFont.Title, true)
75 self:addChild(self.title)
76
77 self.subtitle = ISLabel:new(self.uiHelper.GetMiddle(self.width, UIFont.Large, subtitle), self.titleY + self.uiHelper.GetHeight(UIFont.Large, subtitle), 25, subtitle, 1, 1, 1, 1, UIFont.Large, true)
78 self:addChild(self.subtitle)
81 self.createCharacterButton.font = UIFont.Large
83
84 self.loadCharacterButton = ISButton:new(middleX, middleY, 200, 50, loadCharacterLabel, self, FrameworkZ.UI.MainMenu.onEnterLoadCharacterMenu)
88 self.disconnectButton = ISButton:new(middleX, middleY + 75, 200, 50, disconnectLabel, self, FrameworkZ.UI.MainMenu.onDisconnect)
89 self.disconnectButton.font = UIFont.Large
90 self:addChild(self.disconnectButton)
92 self.closeButton = ISButton:new(middleX, middleY + 150, 200, 50, "Close", self, FrameworkZ.UI.MainMenu.onClose)
93 self.closeButton.font = UIFont.Large
94
95 if not FrameworkZ.Players:GetLoadedCharacterByID(self.playerObject:getUsername()) then
96 self.closeButton:setVisible(false)
97 end
98
99 self:addChild(self.closeButton)
100
101 --[[
102 self.closeButton = ISButton:new(middleX, middleY + 150, 200, 50, "Close", self, FrameworkZ.UI.MainMenu.onClose)
103 self.closeButton.font = UIFont.Large
104 self:addChild(self.closeButton)
105 --]]
106end
108function FrameworkZ.UI.MainMenu:fadeOutMainMenuMusic()
109 if self.emitter:isPlaying(currentMainMenuSong) then
112
113 if mainMenuMusicVolume <= 0 then
114 FrameworkZ.Timers:Remove("FadeOutMainMenuMusic")
116 end
117 end
118end
119
120function FrameworkZ.UI.MainMenu:onClose()
121 FrameworkZ.Timers:Create("FadeOutMainMenuMusic", 0.01, 0, function()
122 self:fadeOutMainMenuMusic()
123 end)
124
125 self:setVisible(false)
126 self:removeFromUIManager()
127end
128
129function FrameworkZ.UI.MainMenu:onEnterMainMenu()
133
134 self.createCharacterButton:setVisible(true)
135 self.loadCharacterButton:setVisible(true)
136 self.disconnectButton:setVisible(true)
138 if FrameworkZ.Players:GetLoadedCharacterByID(self.playerObject:getUsername()) then
139 self.closeButton:setVisible(true)
140 end
141end
142
143function FrameworkZ.UI.MainMenu:onExitMainMenu()
144 local maxCharacters = 1
145 local currentCharacters = 0
146
147 if currentCharacters < maxCharacters then
148 self.createCharacterButton:setVisible(false)
149 self.loadCharacterButton:setVisible(false)
150 self.disconnectButton:setVisible(false)
152 if FrameworkZ.Players:GetLoadedCharacterByID(self.playerObject:getUsername()) then
153 self.closeButton:setVisible(false)
154 end
156 return true
157 else
158 return false
159 end
160end
162function FrameworkZ.UI.MainMenu:showStepControls(menu, backButtonIndex, backButton, backButtonText, forwardButtonIndex, forwardButton, forwardButtonText)
163 if not backButton then
164 local width = 200
165 local height = 50
166 local x = menu:getX()
167 local y = menu:getY() + menu.height + 25
168
169 self[backButtonIndex] = ISButton:new(x, y, width, height, backButtonText, self.createCharacterSteps, self.createCharacterSteps.ShowPreviousStep)
170 self[backButtonIndex].font = UIFont.Large
171 self:addChild(self[backButtonIndex])
172 else
173 backButton:setVisible(true)
174 end
175
176 if not forwardButton then
177 local width = 200
178 local height = 50
179 local x = menu:getX() + menu.width - width
180 local y = menu:getY() + menu.height + 25
182 self[forwardButtonIndex] = ISButton:new(x, y, width, height, forwardButtonText, self.createCharacterSteps, self.createCharacterSteps.ShowNextStep)
183 self[forwardButtonIndex].font = UIFont.Large
184 self:addChild(self[forwardButtonIndex])
185 else
186 forwardButton:setVisible(true)
187 end
188end
189
190function FrameworkZ.UI.MainMenu:hideStepControls(backButton, forwardButton)
191 if backButton then
192 backButton:setVisible(false)
193 end
194
195 if forwardButton then
196 forwardButton:setVisible(false)
197 end
198end
199
201 self:showStepControls(menu, "returnToMainMenu", self.returnToMainMenu, "< Main Menu (Cancel)", "enterInfoForward", self.enterInfoForward, "Info >")
202end
203
205 self:hideStepControls(self.returnToMainMenu, self.enterInfoForward)
206
207 return true
208end
209
211 self:showStepControls(menu, "selectFaction", self.selectFaction, "< Faction", "customizeAppearance", self.customizeAppearance, "Appearance >")
212end
213
214function FrameworkZ.UI.MainMenu:onExitInfoMenu(menu, isForward)
215 local infoInstance = FrameworkZ.UI.CreateCharacterInfo.instance
216 local name = infoInstance.nameEntry:getText()
217 local description = infoInstance.descriptionEntry:getText()
218 local warningMessage = ""
219
220 if not name or name == "" then
221 warningMessage = warningMessage .. "Name must be filled in"
222 elseif #name < 8 then
223 warningMessage = warningMessage .. (warningMessage == "" and "" or " and ") .. "Name must be at least 8 characters"
224 end
225
226 if not description or description == "" then
227 warningMessage = warningMessage .. (warningMessage == "" and "" or " and ") .. "Description must be filled in"
228 elseif #description < 24 then
229 warningMessage = warningMessage .. (warningMessage == "" and "" or " and ") .. "Description must be at least 24 characters"
230 end
231
232 if warningMessage ~= "" and isForward then
233 FrameworkZ.Notifications:AddToQueue("Cannot proceed: " .. warningMessage, FrameworkZ.Notifications.Types.Warning, nil, self)
234 return false
235 end
236
237 self:hideStepControls(self.selectFaction, self.customizeAppearance)
238
239 return true
240end
241
244 menu.gender = FrameworkZ.UI.CreateCharacterInfo.instance.gender
245 menu.skinColor = FrameworkZ.UI.CreateCharacterInfo.instance.skinColorDropdown:getOptionData(FrameworkZ.UI.CreateCharacterInfo.instance.skinColorDropdown.selected)
246 menu.hairColor = FrameworkZ.UI.CreateCharacterInfo.instance.hairColorDropdown:getOptionData(FrameworkZ.UI.CreateCharacterInfo.instance.hairColorDropdown.selected)
247
248 FrameworkZ.UI.CreateCharacterAppearance.instance.skinColor = menu.skinColor
249 FrameworkZ.UI.CreateCharacterAppearance.instance.hairColor = menu.hairColor
250
251 FrameworkZ.UI.CreateCharacterAppearance.instance:resetGender(menu.gender)
256 FrameworkZ.UI.CreateCharacterAppearance.instance.wasGenderUpdated = false
257
258 self:showStepControls(menu, "enterInfoBack", self.enterInfoBack, "< Info", "finalizeCharacter", self.finalizeCharacter, "Finalize >")
259end
260
262 self:hideStepControls(self.enterInfoBack, self.finalizeCharacter)
263
264 return true
265end
266
268 self:hideStepControls(self.enterInfoBack, self.finalizeCharacter)
269
270 local infoInstance = FrameworkZ.UI.CreateCharacterInfo.instance
271 local factionInstance = FrameworkZ.UI.CreateCharacterFaction.instance
272 local appearanceInstance = FrameworkZ.UI.CreateCharacterAppearance.instance
273
274 local faction = factionInstance.faction
275 local gender = infoInstance.genderDropdown:getSelectedText()
276 local name = infoInstance.nameEntry:getText()
277 local description = infoInstance.descriptionEntry:getText()
278 local age = infoInstance.ageSlider:getCurrentValue()
279 local height = infoInstance.heightSlider:getCurrentValue()
280 local weight = infoInstance.weightSlider:getCurrentValue()
281 local physique = infoInstance.physiqueDropdown:getSelectedText()
282 local eyeColor = infoInstance.eyeColorDropdown:getSelectedText()
283 local hairColor = infoInstance.hairColorDropdown and infoInstance.hairColorDropdown:getOptionData(infoInstance.hairColorDropdown.selected) or nil
284 local skinColor = infoInstance.skinColorDropdown and infoInstance.skinColorDropdown:getOptionData(infoInstance.skinColorDropdown.selected) or nil
285
286 local hair = appearanceInstance.hairDropdown and appearanceInstance.hairDropdown:getOptionData(appearanceInstance.hairDropdown.selected) or nil
287 local beard = appearanceInstance.beardDropdown and appearanceInstance.beardDropdown:getOptionData(appearanceInstance.beardDropdown.selected) or nil
288 local head = appearanceInstance.headDropdown and appearanceInstance.headDropdown:getOptionData(appearanceInstance.headDropdown.selected).itemID or nil
289 local face = appearanceInstance.faceDropdown and appearanceInstance.faceDropdown:getOptionData(appearanceInstance.faceDropdown.selected).itemID or nil
290 local ears = appearanceInstance.earsDropdown and appearanceInstance.earsDropdown:getOptionData(appearanceInstance.earsDropdown.selected).itemID or nil
291 local backpack = appearanceInstance.backpackDropdown and appearanceInstance.backpackDropdown:getOptionData(appearanceInstance.backpackDropdown.selected).itemID or nil
292 local rightHand = nil
293 local rightHandAccessory = nil
294 local leftHand = nil
295 local leftHandAccessory = nil
296 local gloves = appearanceInstance.glovesDropdown and appearanceInstance.glovesDropdown:getOptionData(appearanceInstance.glovesDropdown.selected).itemID or nil
297 local undershirt = appearanceInstance.undershirtDropdown and appearanceInstance.undershirtDropdown:getOptionData(appearanceInstance.undershirtDropdown.selected).itemID or nil
298 local overshirt = appearanceInstance.overshirtDropdown and appearanceInstance.overshirtDropdown:getOptionData(appearanceInstance.overshirtDropdown.selected).itemID or nil
299 local vest = appearanceInstance.vestDropdown and appearanceInstance.vestDropdown:getOptionData(appearanceInstance.vestDropdown.selected).itemID or nil
300 local belt = appearanceInstance.beltDropdown and appearanceInstance.beltDropdown:getOptionData(appearanceInstance.beltDropdown.selected).itemID or nil
301 local pants = appearanceInstance.pantsDropdown and appearanceInstance.pantsDropdown:getOptionData(appearanceInstance.pantsDropdown.selected).itemID or nil
302 local socks = appearanceInstance.socksDropdown and appearanceInstance.socksDropdown:getOptionData(appearanceInstance.socksDropdown.selected).itemID or nil
303 local shoes = appearanceInstance.shoesDropdown and appearanceInstance.shoesDropdown:getOptionData(appearanceInstance.shoesDropdown.selected).itemID or nil
304
305 local characterData = {
306 INFO_FACTION = faction,
307 INFO_GENDER = gender,
308 INFO_NAME = name,
309 INFO_DESCRIPTION = description,
310 INFO_AGE = age,
311 INFO_HEIGHT = height,
312 INFO_WEIGHT = weight,
313 INFO_PHYSIQUE = physique,
314 INFO_EYE_COLOR = eyeColor,
315 INFO_BEARD_COLOR = hairColor,
316 INFO_HAIR_COLOR = hairColor,
317 INFO_SKIN_COLOR = skinColor,
318 INFO_HAIR_STYLE = hair,
319 INFO_BEARD_STYLE = beard,
320 EQUIPMENT_SLOT_HEAD = {id = head},
321 EQUIPMENT_SLOT_FACE = {id = face},
322 EQUIPMENT_SLOT_EARS = {id = ears},
323 EQUIPMENT_SLOT_BACKPACK = {id = backpack},
324 EQUIPMENT_SLOT_GLOVES = {id = gloves},
325 EQUIPMENT_SLOT_UNDERSHIRT = {id = undershirt},
326 EQUIPMENT_SLOT_OVERSHIRT = {id = overshirt},
327 EQUIPMENT_SLOT_VEST = {id = vest},
328 EQUIPMENT_SLOT_BELT = {id = belt},
329 EQUIPMENT_SLOT_PANTS = {id = pants},
330 EQUIPMENT_SLOT_SOCKS = {id = socks},
331 EQUIPMENT_SLOT_SHOES = {id = shoes}
332 }
333
334 FrameworkZ.Foundation:SendFire(self.playerObject, "FrameworkZ.Players.OnCreateCharacter", function(data, serverCharacterID, serverMessage)
335 if serverCharacterID then
336 local clientCharacterID, clientMessage = FrameworkZ.Players:CreateCharacter(self.playerObject:getUsername(), characterData, serverCharacterID)
337
338 if clientCharacterID and clientCharacterID == serverCharacterID then
339 FrameworkZ.Notifications:AddToQueue("Successfully created character #" .. clientCharacterID .. ": " .. characterData.INFO_NAME, FrameworkZ.Notifications.Types.Success, nil, self)
340 elseif clientCharacterID ~= serverCharacterID then
341 FrameworkZ.Notifications:AddToQueue("Failed to create character client-side: Character ID mistmatch.", FrameworkZ.Notifications.Types.Warning, nil, self)
342 else
343 FrameworkZ.Notifications:AddToQueue("Failed to create character client-side: " .. clientMessage, FrameworkZ.Notifications.Types.Warning, nil, self)
344 end
345 else
346 FrameworkZ.Notifications:AddToQueue("Failed to create character server-side: " .. serverMessage, FrameworkZ.Notifications.Types.Warning, nil, self)
347 return false
348 end
349 end, self.playerObject:getUsername(), characterData)
350
351 return true
352end
353
354function FrameworkZ.UI.MainMenu:onEnterLoadCharacterMenu()
355 local player = FrameworkZ.Players:GetPlayerByID(self.playerObject:getUsername())
356
357 if not player then
358 FrameworkZ.Notifications:AddToQueue("Failed to load characters.", FrameworkZ.Notifications.Types.Danger, nil, self)
359
360 return false
361 elseif #player:GetCharacters() <= 0 then
362 FrameworkZ.Notifications:AddToQueue("No characters found.", FrameworkZ.Notifications.Types.Warning, nil, self)
363
364 return false
365 end
366
367 self:onExitMainMenu()
368
369 if not self.loadCharacterMenu then
370 local width = 800
371 local height = 600
372 local x = self.width / 2 - width / 2
373 local y = self.height / 2 - height / 2
374
376 self.loadCharacterMenu:initialise()
377 self:addChild(self.loadCharacterMenu)
378 else
379 self.loadCharacterMenu:setVisible(true)
380 self.loadCharacterMenu:updateCharacterPreview()
381 end
382
383 if not self.loadCharacterBackButton then
384 local widthReturn = 200
385 local heightReturn = 50
386 local xReturn = self.loadCharacterMenu:getX()
388
389 self.loadCharacterBackButton = ISButton:new(xReturn, yReturn, widthReturn, heightReturn, "< Main Menu", self, self.onEnterMainMenuFromLoadCharacterMenu)
390 self.loadCharacterBackButton.font = UIFont.Large
392 else
393 self.loadCharacterBackButton:setVisible(true)
394 end
395
397 local widthLoad = 200
398 local heightLoad = 50
401
402 self.loadCharacterForwardButton = ISButton:new(xLoad, yLoad, widthLoad, heightLoad, "Load Character >", self, self.onLoadCharacter)
405 else
406 self.loadCharacterForwardButton:setVisible(true)
407 end
408 --self.loadCharacterMenu:addToUIManager()
409end
410
411function FrameworkZ.UI.MainMenu:onEnterMainMenuFromLoadCharacterMenu()
412 self.loadCharacterBackButton:setVisible(false)
413 self.loadCharacterForwardButton:setVisible(false)
414 self.loadCharacterMenu:setVisible(false)
415
416 self:onEnterMainMenu()
417end
418
419function FrameworkZ.UI.MainMenu:onLoadCharacter()
420 local characterID = self.loadCharacterMenu.currentIndex
421 FrameworkZ.Players:LoadCharacterByID(self.playerObject:getUsername(), characterID)
422
423
424
425
426
427 --[[
428 local loadCharacterStartTime = getTimestampMs()
429 local characterID = self.loadCharacterMenu.currentIndex
430 local character = FrameworkZ.Players:GetCharacterByID(self.playerObject:getUsername(), characterID)
431
432 if character then
433 FrameworkZ.Players:LoadCharacter(self.playerObject:getUsername(), character, self.loadCharacterMenu.selectedCharacter.survivor, loadCharacterStartTime)
434 else
435 FrameworkZ.Notifications:AddToQueue("No character selected.", FrameworkZ.Notifications.Types.Warning, nil, self)
436 end
437 --]]
438end
439
440function FrameworkZ.UI.MainMenu:onDisconnect()
441 self:setVisible(false)
442 self:removeFromUIManager()
443 getCore():exitToMenu()
444end
445
447 ISPanel.prerender(self)
448
449 -- HL2RP LIGHTNING STUFF
450 --[[
451 local opacity = 0.25
452
454 opacity = 0.5
455
456 if not self.hasFlashed1 then
457 self:drawTextureScaled(getTexture("media/textures/lightning_1.png"), 0, 0, self.width, self.height, opacity, 1, 1, 1)
458 elseif not self.hasFlashed2 then
459 self:drawTextureScaled(getTexture("media/textures/lightning_2.png"), 0, 0, self.width, self.height, opacity, 1, 1, 1)
460 elseif not self.hasFlashed3 then
461 self:drawTextureScaled(getTexture("media/textures/lightning_1.png"), 0, 0, self.width, self.height, opacity, 1, 1, 1)
462 end
463
464 FrameworkZ.Timers:Simple(0.05, function()
465 self.hasFlashed1 = true
466
467 FrameworkZ.Timers:Simple(0.05, function()
468 self.hasFlashed2 = true
469
470 FrameworkZ.Timers:Simple(0.05, function()
471 self.hasFlashed3 = true
473 end)
474 end)
475 end)
476 end
477 --]]
478
479 self:drawTextureScaled(getTexture(FrameworkZ.Config:GetOption("MainMenuImage")), 0, 0, self.width, self.height, self.backgroundImageOpacity, 1, 1, 1)
480end
481
482function FrameworkZ.UI.MainMenu:update()
483 ISPanel.update(self)
484
485 if not self.emitter:isPlaying(currentMainMenuSong) then
486 currentMainMenuSong = self.emitter:playSoundImpl(FrameworkZ.Config:GetOption("MainMenuMusic"), nil)
487 end
488end
489
490function FrameworkZ.UI.MainMenu:new(x, y, width, height, playerObject)
491 local o = {}
492
493 o = ISPanel:new(x, y, width, height)
494 setmetatable(o, self)
495 self.__index = self
496 self.backgroundImageOpacity = 1
497 o.backgroundColor = {r=0, g=0, b=0, a=1}
498 o.borderColor = {r=0, g=0, b=0, a=0}
499 o.moveWithMouse = false
500 o.playerObject = playerObject
501 FrameworkZ.UI.MainMenu.instance = o
502
503 return o
504end
505
void local y()
void self survivor()
void local x()
void characterData EQUIPMENT_SLOT_FACE()
void characterData EQUIPMENT_SLOT_GLOVES()
void characterData EQUIPMENT_SLOT_VEST()
void characterData EQUIPMENT_SLOT_SHOES()
void characterData EQUIPMENT_SLOT_OVERSHIRT()
void characterData EQUIPMENT_SLOT_HEAD()
void characterData EQUIPMENT_SLOT_BACKPACK()
void characterData EQUIPMENT_SLOT_UNDERSHIRT()
void characterData EQUIPMENT_SLOT_SOCKS()
void characterData EQUIPMENT_SLOT_BELT()
void characterData EQUIPMENT_SLOT_EARS()
void characterData EQUIPMENT_SLOT_PANTS()
void self self faceDropdown()
void self self vestDropdown()
void self self socksDropdown()
void self self pantsDropdown()
void self self overshirtDropdown()
void self self backpackDropdown()
void self beardDropdown()
void self self earsDropdown()
void self self shoesDropdown()
void self self beltDropdown()
void self self undershirtDropdown()
void self self headDropdown()
void self self glovesDropdown()
void self faction()
void local height()
void local width
void weight()
void itemID()
void local instance()
void FrameworkZ UI LoadCharacterMenu()
void self currentIndex()
void self createCharacterButton font()
void local widthReturn()
void local y()
void self FrameworkZ UI FrameworkZ UI self onEnterAppearanceMenu
Definition MainMenu.lua:93
void self FrameworkZ UI FrameworkZ UI self self onExitInfoMenu
Definition MainMenu.lua:91
void self FrameworkZ UI FrameworkZ UI CreateCharacterAppearance
Definition MainMenu.lua:93
void local createCharacterLabel()
void self FrameworkZ UI self onEnterFactionMenu
Definition MainMenu.lua:89
void local stepWidth
Definition MainMenu.lua:77
void self FrameworkZ UI self self onExitFactionMenu
Definition MainMenu.lua:89
void local yReturn()
void self loadCharacterBackButton()
void local height()
void self hasFlashed2()
void local subtitle()
void self MainMenu
Definition MainMenu.lua:95
void self emitter()
void self FrameworkZ UI FrameworkZ UI CreateCharacterInfo
Definition MainMenu.lua:91
void local heightLoad()
void self shouldFlashLightning()
void self FrameworkZ UI self nil
Definition MainMenu.lua:95
void local yLoad()
void local xReturn()
void self self
Definition MainMenu.lua:89
void self disconnectButton()
void self FrameworkZ UI FrameworkZ UI self onEnterInfoMenu
Definition MainMenu.lua:91
void self FrameworkZ UI FrameworkZ UI self self onExitAppearanceMenu
Definition MainMenu.lua:93
void self FrameworkZ UI CreateCharacterFaction
Definition MainMenu.lua:89
void local stepY()
void self createCharacterSteps onExitInitialMenu()
void self loadCharacterForwardButton()
void if not description or description()
void self closeButton()
void self titleY()
void local width()
void self createCharacterButton()
void local stepHeight()
void self hasFlashed1()
void local heightReturn()
void local disconnectLabel()
void local loadCharacterLabel()
void self FrameworkZ UI self onFinalizeCharacter
Definition MainMenu.lua:95
void local xLoad()
void local widthLoad()
void local currentMainMenuSong()
void local middleY()
void self loadCharacterMenu()
void self SelectFaction
Definition MainMenu.lua:89
void self createCharacterSteps
Definition MainMenu.lua:89
void self hasFlashed3()
void local middleX()
void self loadCharacterButton()
void local nextLightning()
void local mainMenuMusicVolume()
void self uiHelper()
void local stepX
Definition MainMenu.lua:79
void local x()
void warningMessage()
void local title()
void self createCharacterSteps onEnterInitialMenu()
void local player()
void processingNotification backgroundColor a()
void self maxCharacters()
void self playerListPanel prerender()
void local getTimestampMs()
void local getTexture()
void local name()
void local data()
Foundation for FrameworkZ.
Players module for FrameworkZ. Defines and interacts with PLAYER object.
Definition Players.lua:13
Timers module for FrameworkZ. Allows for the creation of timers for delaying code executions.
Definition Timers.lua:5
void onEnterMainMenuFromLoadCharacterMenu()
void hideStepControls(backButton, forwardButton)
void onFinalizeCharacter(menu)
void showStepControls(menu, backButtonIndex, backButton, backButtonText, forwardButtonIndex, forwardButton, forwardButtonText)
void onExitAppearanceMenu(menu)
void onEnterAppearanceMenu(menu)
void onExitInfoMenu(menu, isForward)
Contains all of the User Interfaces for FrameworkZ.