mirror of
				https://github.com/ErikasKontenis/SabrehavenServer.git
				synced 2025-10-30 19:56:22 +01:00 
			
		
		
		
	commit client
This commit is contained in:
		
							
								
								
									
										125
									
								
								SabrehavenOTClient/modules/client/client.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								SabrehavenOTClient/modules/client/client.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| local musicFilename = "/sounds/startup" | ||||
| local musicChannel = nil | ||||
|  | ||||
| function setMusic(filename) | ||||
|   musicFilename = filename | ||||
|  | ||||
|   if not g_game.isOnline() and musicChannel ~= nil then | ||||
|     musicChannel:stop() | ||||
|     musicChannel:enqueue(musicFilename, 3) | ||||
|   end | ||||
| end | ||||
|  | ||||
| function reloadScripts() | ||||
|   if g_game.getFeature(GameNoDebug) then | ||||
|     return | ||||
|   end | ||||
|    | ||||
|   g_textures.clearCache() | ||||
|   g_modules.reloadModules() | ||||
|  | ||||
|   local script = '/' .. g_app.getCompactName() .. 'rc.lua' | ||||
|   if g_resources.fileExists(script) then | ||||
|     dofile(script) | ||||
|   end | ||||
|  | ||||
|   local message = tr('All modules and scripts were reloaded.') | ||||
|  | ||||
|   modules.game_textmessage.displayGameMessage(message) | ||||
|   print(message) | ||||
| end | ||||
|  | ||||
| function startup() | ||||
|   if g_sounds ~= nil then | ||||
|     musicChannel = g_sounds.getChannel(1) | ||||
|   end | ||||
|    | ||||
|   G.UUID = g_settings.getString('report-uuid') | ||||
|   if not G.UUID or #G.UUID ~= 36 then | ||||
|     G.UUID = g_crypt.genUUID() | ||||
|     g_settings.set('report-uuid', G.UUID) | ||||
|   end | ||||
|    | ||||
|   -- Play startup music (The Silver Tree, by Mattias Westlund) | ||||
|   --musicChannel:enqueue(musicFilename, 3) | ||||
|   connect(g_game, { onGameStart = function() if musicChannel ~= nil then musicChannel:stop(3) end end }) | ||||
|   connect(g_game, { onGameEnd = function() | ||||
|       if g_sounds ~= nil then | ||||
|         g_sounds.stopAll() | ||||
|         --musicChannel:enqueue(musicFilename, 3) | ||||
|       end | ||||
|   end }) | ||||
| end | ||||
|  | ||||
| function init() | ||||
|   connect(g_app, { onRun = startup, | ||||
|                    onExit = exit }) | ||||
|   connect(g_game, { onGameStart = onGameStart, | ||||
|                     onGameEnd = onGameEnd }) | ||||
|  | ||||
|   if g_sounds ~= nil then | ||||
|     --g_sounds.preload(musicFilename) | ||||
|   end | ||||
|  | ||||
|   if not Updater then | ||||
|     if g_resources.getLayout() == "mobile" then | ||||
|       g_window.setMinimumSize({ width = 640, height = 360 }) | ||||
|     else | ||||
|       g_window.setMinimumSize({ width = 800, height = 640 })   | ||||
|     end | ||||
|  | ||||
|     -- window size | ||||
|     local size = { width = 1024, height = 600 } | ||||
|     size = g_settings.getSize('window-size', size) | ||||
|     g_window.resize(size) | ||||
|  | ||||
|     -- window position, default is the screen center | ||||
|     local displaySize = g_window.getDisplaySize() | ||||
|     local defaultPos = { x = (displaySize.width - size.width)/2, | ||||
|                          y = (displaySize.height - size.height)/2 } | ||||
|     local pos = g_settings.getPoint('window-pos', defaultPos) | ||||
|     pos.x = math.max(pos.x, 0) | ||||
|     pos.y = math.max(pos.y, 0) | ||||
|     g_window.move(pos) | ||||
|  | ||||
|     -- window maximized? | ||||
|     local maximized = g_settings.getBoolean('window-maximized', false) | ||||
|     if maximized then g_window.maximize() end | ||||
|   end | ||||
|  | ||||
|   g_window.setTitle(g_app.getName()) | ||||
|   g_window.setIcon('/images/clienticon') | ||||
|  | ||||
|   g_keyboard.bindKeyDown('Ctrl+Shift+R', reloadScripts) | ||||
|  | ||||
|   -- generate machine uuid, this is a security measure for storing passwords | ||||
|   if not g_crypt.setMachineUUID(g_settings.get('uuid')) then | ||||
|     g_settings.set('uuid', g_crypt.getMachineUUID()) | ||||
|     g_settings.save() | ||||
|   end | ||||
| end | ||||
|  | ||||
| function terminate() | ||||
|   disconnect(g_app, { onRun = startup, | ||||
|                       onExit = exit }) | ||||
|   disconnect(g_game, { onGameStart = onGameStart, | ||||
|                        onGameEnd = onGameEnd }) | ||||
|   -- save window configs | ||||
|   g_settings.set('window-size', g_window.getUnmaximizedSize()) | ||||
|   g_settings.set('window-pos', g_window.getUnmaximizedPos()) | ||||
|   g_settings.set('window-maximized', g_window.isMaximized()) | ||||
| end | ||||
|  | ||||
| function exit() | ||||
|   g_logger.info("Exiting application..") | ||||
| end | ||||
|  | ||||
| function onGameStart() | ||||
|   local player = g_game.getLocalPlayer() | ||||
|   if not player then return end | ||||
|   g_window.setTitle(g_app.getName() .. " - " .. player:getName())   | ||||
| end | ||||
|  | ||||
| function onGameEnd() | ||||
|   g_window.setTitle(g_app.getName()) | ||||
| end | ||||
							
								
								
									
										23
									
								
								SabrehavenOTClient/modules/client/client.otmod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								SabrehavenOTClient/modules/client/client.otmod
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| Module | ||||
|   name: client | ||||
|   description: Initialize the client and setups its main window | ||||
|   author: edubart | ||||
|   website: https://github.com/edubart/otclient | ||||
|   reloadable: false | ||||
|   sandboxed: true | ||||
|   scripts: [ client ] | ||||
|   @onLoad: init() | ||||
|   @onUnload: terminate() | ||||
|  | ||||
|   load-later: | ||||
|     - client_styles | ||||
|     - client_locales | ||||
|     - client_topmenu | ||||
|     - client_background | ||||
|     - client_textedit | ||||
|     - client_options | ||||
|     - client_entergame | ||||
|     - client_terminal | ||||
|     - client_stats | ||||
|     - client_feedback | ||||
|     - client_mobile | ||||
		Reference in New Issue
	
	Block a user
	 ErikasKontenis
					ErikasKontenis