2024-11-18 10:02:54 -03:00
|
|
|
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] "
|
2024-11-18 19:06:00 -03:00
|
|
|
..(
|
2024-11-18 10:02:54 -03:00
|
|
|
"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
|
|
|
|
|
2024-11-18 11:30:33 -03:00
|
|
|
modComputing.log = function(text)
|
2024-11-18 10:02:54 -03:00
|
|
|
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)
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app(appname="..dump(appname)..", def) : def="..dump(def))
|
2024-11-18 10:02:54 -03:00
|
|
|
if type(appname)=="string" and appname~="" then
|
2024-11-18 11:30:33 -03:00
|
|
|
if type(modComputing.apps[appname])~="table" then
|
2024-11-19 12:18:56 -03:00
|
|
|
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
|
2024-11-18 10:02:54 -03:00
|
|
|
else
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app() : E")
|
|
|
|
return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_descryption' variable!")
|
|
|
|
end
|
2024-11-18 10:02:54 -03:00
|
|
|
else
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app() : D")
|
|
|
|
return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_title' variable!")
|
2024-11-18 10:02:54 -03:00
|
|
|
end
|
|
|
|
else
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app() : C")
|
|
|
|
return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'def.icon_name' variable!")
|
2024-11-18 10:02:54 -03:00
|
|
|
end
|
|
|
|
else
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app() : B")
|
2024-11-18 10:02:54 -03:00
|
|
|
return false, modComputing.log("modComputing.add_app(appname, def) : "..
|
|
|
|
("Unable to repeatedly add appname '%s'!"):format(appname)
|
|
|
|
)
|
|
|
|
end
|
|
|
|
else
|
2024-11-19 12:18:56 -03:00
|
|
|
--modComputing.debug("[debug] modComputing.add_app() : A")
|
2024-11-18 10:02:54 -03:00
|
|
|
return false, modComputing.log("modComputing.add_app(appname, def) : Invalid 'appname' variable!")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2024-11-19 12:18:56 -03:00
|
|
|
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
|
|
|
|
|
2024-11-18 10:02:54 -03:00
|
|
|
modComputing.get_appnames = function()
|
2024-11-18 11:30:33 -03:00
|
|
|
local appnames = {}
|
2024-11-18 10:02:54 -03:00
|
|
|
for k,v in pairs(modComputing.apps) do
|
|
|
|
table.insert(appnames, k)
|
|
|
|
end
|
2024-11-19 12:18:56 -03:00
|
|
|
table.sort(appnames)
|
2024-11-18 10:02:54 -03:00
|
|
|
return appnames
|
|
|
|
end
|
|
|
|
|
2024-11-19 12:18:56 -03:00
|
|
|
modComputing.get_apps = function()
|
|
|
|
return modComputing.apps
|
|
|
|
end
|
|
|
|
|
2024-11-18 10:02:54 -03:00
|
|
|
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
|
2024-11-18 18:18:39 -03:00
|
|
|
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
|