blob: 704c0c516fe799eef0ecf81661bec4e82ff49f6c (
plain)
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
|
--so, some ringbuffers one for each train
local ringbuflen=1000
local ringbufs={}
local ringbufcnt={}
function advtrains.drb_record(tid, msg)
if not ringbufs[tid] then
ringbufs[tid]={}
ringbufcnt[tid]=0
end
ringbufs[tid][ringbufcnt[tid]]=msg
ringbufcnt[tid]=ringbufcnt[tid]+1
if ringbufcnt[tid] > ringbuflen then
ringbufcnt[tid]=0
end
end
function advtrains.drb_dump(tid)
atdebug("Debug ring buffer output for '"..tid.."':")
local stopcnt=ringbufcnt[tid]
if not stopcnt then
atdebug("ID unknown!")
return
end
repeat
atdebug(ringbufs[tid][ringbufcnt[tid]])
ringbufcnt[tid]=ringbufcnt[tid]+1
if ringbufcnt[tid] > ringbuflen then
ringbufcnt[tid]=0
end
until ringbufcnt[tid]==stopcnt
end
minetest.register_chatcommand("atdebug_show",
{
params = "train sid", -- Short parameter description
description = "Dump debug log", -- Full description
privs = {train_operator=true}, -- Require the "privs" privilege to run
func = function(name, param)
advtrains.drb_dump(param)
end, -- Called when command is run.
-- Returns boolean success and text output.
})
|