-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
functions.lua
86 lines (54 loc) · 1.94 KB
/
functions.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
-- return tables with players current position in node and block metrics
postool.getPositionTablesForPos = function(tPos)
local x = math.floor(tPos.x + 0.5)
local y = math.floor(tPos.y + 0.5)
local z = math.floor(tPos.z + 0.5)
return { x = x, y = y, z = z },
{
x = math.floor(x / 16),
y = math.floor(y / 16),
z = math.floor(z / 16)
}
end -- getPositionTablesForPos
-- return two strings to show on HUD
postool.getPositions = function(oPlayer)
local tNode, tBlock = postool.getPositionTablesForPos(oPlayer:get_pos())
local sNode = postool.hudTitleNode
.. tostring(tNode.x) .. postool.hudPosSeparator
.. tostring(tNode.y) .. postool.hudPosSeparator
.. tostring(tNode.z)
local sBlock = postool.hudTitleBlock
.. tostring(tBlock.x) .. postool.hudPosSeparator
.. tostring(tBlock.y) .. postool.hudPosSeparator
.. tostring(tBlock.z)
return sNode, sBlock
end -- getPositions
-- time
-- from https://gitlab.com/Rochambeau/mthudclock/blob/master/init.lua
local function floormod(x, y) return math.floor(x) % y end
-- return a string to show on HUD
postool.getTime = function()
local secs = (3600 * 24 * minetest.get_timeofday())
local m = floormod(secs / 60, 60)
local h = floormod(secs / 3600, 60)
return ('%02d:%02d'):format(h, m)
end -- getTime
postool.hasAdvancedTrains = function()
return postool.has_advtrains_mod and advtrains.lines and advtrains.lines.rwt and true
end -- hasAdvancedTrains
postool.hasMeseconsDebug = function()
return postool.has_mesecons_debug_mod
and minetest.global_exists('mesecons_debug')
and (mesecons_debug.max_usage_micros or mesecons_debug.avg_total_micros_per_second)
and mesecons_debug.get_context
end -- hasMeseconsDebug
-- return a string to show on HUD
postool.getTimeTrain = function()
local sOut
if postool.hasAdvancedTrains() then
sOut = advtrains.lines.rwt.to_string(advtrains.lines.rwt.now(), true)
else
sOut = postool.hudTitleTrainNA
end
return sOut
end -- getTimeTrain