modComputing.apps = { } modComputing.debug = function(text, playername) if text ~= nil and type(text) == "string" and text ~= "" then if core.settings:get_bool(modComputing.modname..".debug") then if playername ~= nil and type(playername) == "string" and playername ~= "" then local player = core.get_player_by_name(playername) if player ~=nil and player:is_player() then core.chat_send_player( playername, text ) core.log('action',"["..modComputing.modname:upper()..":DEBUG:"..playername.."] "..text) else core.log('error', "["..modComputing.modname:upper()..":DEBUG] " ..( "Unable to address debug for player '%s'." ):format(dump(playername)) ) core.log('action',"["..modComputing.modname:upper()..":DEBUG] "..text) end else core.chat_send_all(text) core.log('action',"["..modComputing.modname:upper()..":DEBUG] "..text) end end end end modComputing.log = function(text) local sufix = "["..modComputing.modname:upper()..":ERRO] " core.chat_send_all(sufix..text) core.log('action',sufix..text) return sufix..text end modComputing.add_app = function(appname, def) --modComputing.debug("[debug] modComputing.add_app(appname="..dump(appname)..", def) : def="..dump(def)) if type(appname)=="string" and appname~="" then if type(modComputing.apps[appname])~="table" then if type(def.icon_name)=="string" and def.icon_name~="" then if type(def.icon_title)=="string" and def.icon_title~="" then if type(def.icon_descryption)=="string" and def.icon_descryption~="" then if type(def.icon_type)=="string" and def.icon_type~="" then if type(def.icon_image)=="string" and def.icon_image~="" then if type(def.on_iconclick)=="function" then modComputing.apps[appname] = { icon_name = def.icon_name, icon_title = def.icon_title, icon_descryption = def.icon_descryption, icon_type = def.icon_type, icon_image = def.icon_image, on_iconclick = def.on_iconclick, } return true else --modComputing.debug("[debug] modComputing.add_app() : H") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.on_iconclick' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : G") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_image' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : F") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_type' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : E") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_descryption' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : D") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_title' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : C") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_name' variable!") end else --modComputing.debug("[debug] modComputing.add_app() : B") return false, modComputing.log("modComputing.add_app(appname, def) : ".. ("Unable to repeatedly add appname '%s'!"):format(appname) ) end else --modComputing.debug("[debug] modComputing.add_app() : A") return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'appname' variable!") end end modComputing.add_app_test = function(buttoname) modComputing.add_app(buttoname, { icon_name = buttoname, icon_type = "button_exit", --types: button/button_exit icon_title = buttoname, icon_descryption = "Exemplo de botão!", icon_image = "icon_smartphone_128x128.png", --on_iconclick = modComputing.show_smartphone_config, on_iconclick = function() core.chat_send_all("Button '"..icon_title.."' pressed!") end, }) end modComputing.get_appnames = function() local appnames = {} for k,v in pairs(modComputing.apps) do table.insert(appnames, k) end table.sort(appnames) return appnames end modComputing.get_apps = function() return modComputing.apps end modComputing.get_app = function(appname) if type(appname)=="string" and appname~="" then if type(modComputing.apps[appname])=="table" then return modComputing.apps[appname] else return false, modComputing.log("modComputing.get_app(appname) : ".. ("Cannot find appname '@1'!"):format(appname) ) end else return false, modComputing.log("modComputing.get_app(appname) : Invalid 'appname' variable!") end end modComputing.getTextNowWeekDay3S = function() local txtWeekDays3S = { modComputing.translate("Sun"), --Sunday modComputing.translate("Mon"), --Monday modComputing.translate("Tue"), --Tuesday modComputing.translate("Wed"), --Wednesday modComputing.translate("Thu"), --Thursday modComputing.translate("Fri"), --Friday modComputing.translate("Sat"), --Saturday } local totalDays = core.get_day_count() + 1 local nowRow = math.floor((totalDays-1)/7)+1 local nowCol = totalDays - ((nowRow-1)*7) return txtWeekDays3S[nowCol] end modComputing.getTextNowTime = function() local current_time = math.floor(core.get_timeofday() * 1440) local minutes = current_time % 60 local hour = (current_time - minutes) / 60 return ("%02d:%02d"):format(hour, minutes) end modComputing.getNowYear = function() local totalDays = core.get_day_count() local nowYear = totalDays/(28*4) return nowYear end modComputing.getTextNowDate = function() local totalDays = core.get_day_count() local nowMount = (math.floor(totalDays/28)%4)+1 local txtMounts3S = { modComputing.translate("SPR"), modComputing.translate("SUM"), modComputing.translate("AUT"), modComputing.translate("WIN"), } --SPRING, SUMMER, AUTUMN, WINTER local nowDay = math.floor(totalDays%28)+1 --local nowDate = ("%04d-%3s-%02d"):format((nowYear+1), txtMounts3S[nowMount], nowDay) local nowDate = modComputing.translate( "@1-@2", ("%3s"):format(txtMounts3S[nowMount]), ("%02d"):format(nowDay) ) --:format((nowYear+1), txtMounts3S[nowMount], nowDay) return nowDate end modComputing.doJumpDay = function(pular) if type(tonumber(pular)) == "number" and tonumber(pular) >= 1 then --modComputing.debug("pulando = "..pular) for n = 1, tonumber(pular) do core.set_timeofday(0.0) core.set_timeofday(5/24) --It goes to 05h in the morning, time to wake up. end local diaAtual = core.get_day_count() --core.chat_send_player(playername, core.chat_send_all( "[".. core.colorize("#00FFFF", modComputing.modname:upper()).."] " ..modComputing.translate( "Now this is the day @1°.", string.format("%02d", diaAtual) ) ) --modComputing.update_cicle() return true else return false end end