diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2020-10-10 23:28:42 +0200 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2020-10-10 23:28:42 +0200 |
commit | e96cc188665384df96b89af35308716bbdc5ca37 (patch) | |
tree | 6c1c053c7df5d3903b81962eb55e1b250ad43da4 /advtrains/advtrains/debugringbuffer.lua | |
parent | d1b1d6ab29afdb116dd7d3c6869bfec097bcb453 (diff) | |
parent | 5aad0930d1ddd63d9021d833a9379b4a01bd8414 (diff) | |
download | forks-modpack-e96cc188665384df96b89af35308716bbdc5ca37.tar.gz forks-modpack-e96cc188665384df96b89af35308716bbdc5ca37.tar.bz2 forks-modpack-e96cc188665384df96b89af35308716bbdc5ca37.zip |
Merge commit '5aad0930d1ddd63d9021d833a9379b4a01bd8414' as 'advtrains'
Diffstat (limited to 'advtrains/advtrains/debugringbuffer.lua')
-rw-r--r-- | advtrains/advtrains/debugringbuffer.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/advtrains/advtrains/debugringbuffer.lua b/advtrains/advtrains/debugringbuffer.lua new file mode 100644 index 0000000..704c0c5 --- /dev/null +++ b/advtrains/advtrains/debugringbuffer.lua @@ -0,0 +1,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. + }) |