2013-02-28 23:05:53 +01:00
|
|
|
local function pcolored(text, color)
|
|
|
|
color = color or 'white'
|
2013-03-01 10:38:05 +01:00
|
|
|
modules.client_terminal.addLine(tostring(text), color)
|
2013-02-28 23:05:53 +01:00
|
|
|
end
|
|
|
|
|
2013-03-01 00:10:36 +01:00
|
|
|
function draw_debug_boxes()
|
|
|
|
g_ui.setDebugBoxesDrawing(not g_ui.isDrawingDebugBoxes())
|
2012-01-09 19:45:28 +01:00
|
|
|
end
|
2012-01-09 22:16:50 +01:00
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
function hide_map()
|
|
|
|
modules.game_interface.getMapPanel():hide()
|
2012-01-16 06:54:53 +01:00
|
|
|
end
|
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
function show_map()
|
|
|
|
modules.game_interface.getMapPanel():show()
|
2012-01-16 06:54:53 +01:00
|
|
|
end
|
|
|
|
|
2013-03-01 09:46:55 +01:00
|
|
|
function live_textures_reload()
|
|
|
|
g_textures.liveReload()
|
|
|
|
end
|
|
|
|
|
2013-03-01 10:38:05 +01:00
|
|
|
function live_module_reload(name)
|
|
|
|
if not name then
|
|
|
|
pcolored('ERROR: missing module name', 'red')
|
|
|
|
return
|
2012-01-17 09:26:13 +01:00
|
|
|
end
|
2013-03-01 10:38:05 +01:00
|
|
|
|
|
|
|
local module = g_modules.getModule(name)
|
|
|
|
if not module then
|
|
|
|
pcolored('ERROR: unable to find module ' .. name, 'red')
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
if not module:isReloadble() then
|
|
|
|
pcolored('ERROR: that module is not reloadable', 'red')
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
if not module:canReload() then
|
|
|
|
pcolored('ERROR: some other modules requires this module, cannot reload now', 'red')
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
local files = {}
|
|
|
|
local hasFile = false
|
|
|
|
for _,file in pairs(g_resources.listDirectoryFiles('/' .. name)) do
|
|
|
|
local filepath = '/' .. name .. '/' .. file
|
|
|
|
local time = g_resources.getFileTime(filepath)
|
|
|
|
if time > 0 then
|
|
|
|
files[filepath] = time
|
|
|
|
hasFile = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if not hasFile then
|
|
|
|
pcolored('ERROR: unable to find any file for module', 'red')
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
cycleEvent(function()
|
|
|
|
for filepath,time in pairs(files) do
|
|
|
|
local newtime = g_resources.getFileTime(filepath)
|
|
|
|
if newtime > time then
|
|
|
|
pcolored('Reloading ' .. name, 'green')
|
|
|
|
modules.client_terminal.flushLines()
|
|
|
|
module:reload()
|
|
|
|
files[filepath] = newtime
|
|
|
|
|
|
|
|
if name == 'client_terminal' then
|
|
|
|
modules.client_terminal.show()
|
|
|
|
end
|
|
|
|
break
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end, 1000)
|
2012-01-09 22:16:50 +01:00
|
|
|
end
|
2012-01-19 05:12:53 +01:00
|
|
|
|
2013-03-01 17:56:12 +01:00
|
|
|
function live_sprites_reload()
|
|
|
|
local files = {}
|
|
|
|
for _,file in pairs(g_resources.listDirectoryFiles('/things')) do
|
|
|
|
local filepath = '/things/' .. file
|
|
|
|
local time = g_resources.getFileTime(filepath)
|
|
|
|
if time > 0 then
|
|
|
|
files[filepath] = time
|
|
|
|
hasFile = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if not hasFile then
|
|
|
|
pcolored('ERROR: unable to find things file for module', 'red')
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
cycleEvent(function()
|
|
|
|
for filepath,time in pairs(files) do
|
|
|
|
local newtime = g_resources.getFileTime(filepath)
|
|
|
|
if newtime > time then
|
|
|
|
pcolored('Reloading sprites...', 'green')
|
|
|
|
modules.client_terminal.flushLines()
|
|
|
|
modules.game_things.load()
|
|
|
|
files[filepath] = newtime
|
|
|
|
|
|
|
|
if name == 'client_terminal' then
|
|
|
|
modules.client_terminal.show()
|
|
|
|
end
|
|
|
|
break
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end, 1000)
|
|
|
|
end
|
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
local pinging = false
|
2013-03-01 00:10:36 +01:00
|
|
|
local function pingBack(ping)
|
|
|
|
if ping < 300 then color = 'green'
|
|
|
|
elseif ping < 600 then color = 'yellow'
|
|
|
|
else color = 'red' end
|
|
|
|
pcolored(g_game.getWorldName() .. ' => ' .. ping .. ' ms', color)
|
|
|
|
end
|
2013-02-28 22:39:27 +01:00
|
|
|
function ping()
|
|
|
|
if pinging then
|
2013-03-01 00:10:36 +01:00
|
|
|
pcolored('Ping stopped.')
|
2013-02-28 22:39:27 +01:00
|
|
|
g_game.setPingDelay(1000)
|
|
|
|
disconnect(g_game, 'onPingBack', pingBack)
|
2012-08-02 16:02:36 +02:00
|
|
|
else
|
2013-02-28 22:39:27 +01:00
|
|
|
if not (g_game.getFeature(GameClientPing) or g_game.getFeature(GameExtendedClientPing)) then
|
2013-03-01 00:10:36 +01:00
|
|
|
pcolored('this server does not support ping', 'red')
|
2013-02-28 22:39:27 +01:00
|
|
|
return
|
|
|
|
elseif not g_game.isOnline() then
|
2013-03-01 00:10:36 +01:00
|
|
|
pcolored('ping command is only allowed when online', 'red')
|
2013-02-28 22:39:27 +01:00
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2013-03-01 00:10:36 +01:00
|
|
|
pcolored('Starting ping...')
|
2013-02-28 22:39:27 +01:00
|
|
|
g_game.setPingDelay(0)
|
|
|
|
connect(g_game, 'onPingBack', pingBack)
|
2012-08-02 16:02:36 +02:00
|
|
|
end
|
2013-02-28 22:39:27 +01:00
|
|
|
pinging = not pinging
|
2012-08-02 16:02:36 +02:00
|
|
|
end
|
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
function clear()
|
|
|
|
modules.client_terminal.clear()
|
|
|
|
end
|
|
|
|
|
|
|
|
function ls(path)
|
|
|
|
path = path or '/'
|
|
|
|
local files = g_resources.listDirectoryFiles(path)
|
|
|
|
for k,v in pairs(files) do
|
|
|
|
if g_resources.directoryExists(path .. v) then
|
2013-02-28 23:05:53 +01:00
|
|
|
pcolored(path .. v, 'blue')
|
2013-02-28 22:39:27 +01:00
|
|
|
else
|
2013-02-28 23:05:53 +01:00
|
|
|
pcolored(path .. v)
|
2013-02-28 22:39:27 +01:00
|
|
|
end
|
2012-02-06 05:39:52 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
function about_version()
|
2013-02-28 23:05:53 +01:00
|
|
|
pcolored(g_app.getName() .. ' ' .. g_app.getVersion() .. '\n' ..
|
2013-02-28 22:39:27 +01:00
|
|
|
'Rev ' .. g_app.getBuildRevision() .. ' ('.. g_app.getBuildCommit() .. ')\n' ..
|
|
|
|
'Built on ' .. g_app.getBuildDate())
|
2013-01-03 07:24:07 +01:00
|
|
|
end
|
2013-02-24 21:26:19 +01:00
|
|
|
|
2013-02-28 22:39:27 +01:00
|
|
|
function about_graphics()
|
2013-02-28 23:05:53 +01:00
|
|
|
pcolored('Vendor ' .. g_graphics.getVendor() )
|
|
|
|
pcolored('Renderer' .. g_graphics.getRenderer())
|
|
|
|
pcolored('Version' .. g_graphics.getVersion())
|
|
|
|
end
|
|
|
|
|
|
|
|
function about_modules()
|
|
|
|
for k,m in pairs(g_modules.getModules()) do
|
|
|
|
local loadedtext
|
|
|
|
if m:isLoaded() then
|
|
|
|
pcolored(m:getName() .. ' => loaded', 'green')
|
|
|
|
else
|
|
|
|
pcolored(m:getName() .. ' => not loaded', 'red')
|
|
|
|
end
|
|
|
|
end
|
2013-02-24 21:26:19 +01:00
|
|
|
end
|