[fix] Fixedcritical glitch in clock bar of smartphone.

This commit is contained in:
Lunovox 2024-11-18 18:18:39 -03:00
parent 1ccfe86adf
commit 5cf67a983b
4 changed files with 124 additions and 40 deletions

76
api.lua
View file

@ -91,4 +91,78 @@ modComputing.get_app = function(appname)
else
return false, modComputing.log("modComputing.get_app(appname) : Invalid 'appname' variable!")
end
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

41
functions.lua Normal file
View file

@ -0,0 +1,41 @@
-- skipped days
core.register_chatcommand("jumpday", {
params = "[number]",
description = modComputing.translate(
"Forces the calendar to jump a certain number of days.\n"
.."Maximum number of 112 days. Need 'settime' privilege."
),
func = function(playername, param)
local isPriv = core.check_player_privs(playername, {settime=true})
if isPriv then
local pular = 0
--mobs_7dtc.debug("type('"..param.."') = "..type(param))
if param == "" or tonumber(param) == nil or tonumber(param) < 1 then
pular = 1
elseif tonumber(param) <= 112 then
pular = tonumber(param)
else
core.chat_send_player(
playername,
"[".. core.colorize("#FF0000", modComputing.modname:upper()..":"..modComputing.translate("FAILURE")).."] "
..modComputing.translate(
"The maximum number of days is exactly '@1'!!!",
core.colorize("#FF0000","112")
)
)
return true --false = quando o comando falha.
end
modComputing.doJumpDay(pular)
return true --true=sucesso
else
core.chat_send_player(
playername,
"[".. core.colorize("#FF0000", modComputing.modname:upper()..":"..modComputing.translate("FAILURE")).."] "
..modComputing.translate(
"You do not have the '@1' privilege to execute this command!!!",
core.colorize("#00FF00","settime")
)
)
end
end,
})

View file

@ -5,6 +5,7 @@ modComputing = {
dofile(modComputing.modpath.."/translate.lua")
dofile(modComputing.modpath.."/api.lua")
dofile(modComputing.modpath.."/functions.lua")
dofile(modComputing.modpath.."/item_smartphone.lua")

View file

@ -1,45 +1,13 @@
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()
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.getTextNowDate = function()
local totalDays = core.get_day_count()
local nowYear = totalDays/(28*4)
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)
return nowDate
end
modComputing.getTextClockBar = function()
return modComputing.getTextNowWeekDay3S()..", "..modComputing.getTextNowDate().." "..modComputing.getTextNowTime()
--return modComputing.getTextNowWeekDay3S()..", "..modComputing.getTextNowDate().." "..modComputing.getTextNowTime()
return modComputing.translate(
"@1, @2 @3",
modComputing.getTextNowWeekDay3S(),
modComputing.getTextNowDate(),
modComputing.getTextNowTime()
)
end
modComputing.getFormSmartphone = function(player)