Create init.lua

master
crazyginger72 2014-06-27 22:51:38 -04:00
parent 2f21be509d
commit df05556fae
1 changed files with 119 additions and 0 deletions

119
init.lua Normal file
View File

@ -0,0 +1,119 @@
--ver 0.2.1 minetest_time
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-------Minetest Time--kazea's code tweaked by cg72 with help from crazyR--------
----------------Zeno` simplified some math and additional tweaks ---------------
--------------------------------------------------------------------------------
--settings
colour = 0xFFFFFF --text colour in hex format default is white
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
player_hud = {}
player_hud.time = {}
player_hud.lag = {}
local timer = 0;
local function explode(sep, input)
local t={}
local i=0
for k in string.gmatch(input,"([^"..sep.."]+)") do
t[i]=k;i=i+1
end
return t
end
local function floormod ( x, y )
return (math.floor(x) % y);
end
local function get_lag(raw)
local a = explode(", ",minetest.get_server_status())
local b = explode("=",a[4])
local lagnum = tonumber(string.format("%.2f", b[1]))
local clag = 0
if lagnum > clag then
clag = lagnum
else
clag = clag * .75
end
if raw ~= nil then
return clag
else
return ("Current Lag: %s sec"):format(clag);
end
end
local function get_time ()
local t, m, h, d
t = 24*60*minetest.get_timeofday()
m = floormod(t, 60)
t = t / 60
h = floormod(t, 60)
if h == 12 then
d = "pm"
elseif h >= 13 then
h = h - 12
d = "pm"
elseif h == 0 then
h = 12
d = "am"
else
d = "am"
end
return ("Minetest time %02d:%02d %s"):format(h, m, d);
end
local function generatehud(player)
local name = player:get_player_name()
player_hud.time[name] = player:hud_add({
hud_elem_type = "text",
name = "player_hud:time",
position = {x=0.20, y=0.965},
text = get_time(),
scale = {x=100,y=100},
alignment = {x=0,y=0},
number = colour, --0xFFFFFF,
})
player_hud.lag[name] = player:hud_add({
hud_elem_type = "text",
name = "player_hud:lag",
position = {x=0.80, y=0.965},
text = get_lag(),
scale = {x=100,y=100},
alignment = {x=0,y=0},
number = colour, --0xFFFFFF,
})
end
local function updatehud(player, dtime)
local name = player:get_player_name()
timer = timer + dtime;
if (timer >= 1.0) then
timer = 0;
if player_hud.time[name] then player:hud_change(player_hud.time[name], "text", get_time()) end
if player_hud.lag[name] then player:hud_change(player_hud.lag[name], "text", get_lag()) end
end
end
local function removehud(player)
local name = player:get_player_name()
if player_hud.time[name] then
player:hud_remove(player_hud.time[name])
end
if player_hud.lag[name] then
player:hud_remove(player_hud.lag[name])
end
end
minetest.register_globalstep(function ( dtime )
for _,player in ipairs(minetest.get_connected_players()) do
updatehud(player, dtime)
end
end);
minetest.register_on_joinplayer(function(player)
minetest.after(0,generatehud,player)
end)
minetest.register_on_leaveplayer(function(player)
minetest.after(1,removehud,player)
end)