| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- local Menu = class()
- function Menu:load(user)
- self.user = user or {}
- love.audio.tags.all.stop()
- love.window.setMode(800, 600, {fullscreen = false})
- self:resize()
- love.mouse.setGrabbed(false)
- love.mouse.setCursor(love.mouse.newCursor('data/media/graphics/cursor.png'))
- love.mouse.setVisible(true)
- love.keyboard.setKeyRepeat(true)
- self.ribbon = app.ui.menu.ribbon()
- self.background = app.ui.menu.background()
- self.input = app.ui.menu.input()
- self.options = app.ui.menu.options()
- self.back = app.ui.menu.back()
- self.alert = app.ui.menu.alert()
- self.pages = {
- login = app.ui.menu.login(),
- main = app.ui.menu.main(),
- serverlist = app.ui.menu.serverList()
- }
- self:push(self.user.token and 'main' or 'login')
- self.u, self.v = love.graphics.getDimensions()
- end
- function Menu:update()
- self.alert:update()
- self:run('update')
- end
- function Menu:draw()
- self.background:draw()
- self.ribbon:draw()
- self.back:draw()
- self:run('draw')
- self.alert:draw()
- end
- function Menu:keypressed(...)
- self.input:keypressed(...)
- return self:run('keypressed', ...)
- end
- function Menu:keyreleased(key)
- if key == 'escape' then love.event.quit() end
- return self:run('keyreleased', key)
- end
- function Menu:mousepressed(...)
- return self:run('mousepressed', ...)
- end
- function Menu:mousereleased(...)
- self.back:mousereleased(...)
- return self:run('mousereleased', ...)
- end
- function Menu:textinput(...)
- self.input:textinput(...)
- return self:run('textinput', ...)
- end
- function Menu:resize()
- self.u, self.v = love.graphics.getDimensions()
- self:run('resize')
- Typo.resize()
- end
- function Menu:run(key, ...)
- if not self.page or not self.pages[self.page] then return end
- local page = self.pages[self.page]
- f.exe(page[key], page, ...)
- end
- function Menu:push(page, ...)
- self:run('deactivate', page)
- self.page = page
- self:run('activate', ...)
- end
- function Menu:connect(ip)
- serverIp = ip
- serverPort = 6061
- app.util.context:remove(self)
- app.util.context:add(app.context.game, self.options.data)
- love.keyboard.setKeyRepeat(false)
- end
- return Menu
|