aboutsummaryrefslogtreecommitdiff
path: root/advtrains_line_automation/textures
Commit message (Expand)AuthorAge
* Added on_train_approach callback, non-permanent external LZB brakepoints and ...orwell962018-11-29
id='n28' href='#n28'>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.
    })