Add "discard all" function to scheduler events and use it to clear schedules in luaatc rails
This commit is contained in:
parent
43b4d863ec
commit
8c55442076
|
@ -116,4 +116,15 @@ function sched.enqueue_in(rwtime, handler, evtdata, unitid, unitlim)
|
|||
sched.enqueue(ctime + rwtime, handler, evtdata, unitid, unitlim)
|
||||
end
|
||||
|
||||
-- Discards all schedules for unit "unitid" (removes them from the queue)
|
||||
function sched.discard_all(unitid)
|
||||
for i=1,#queue do
|
||||
if queue[i].u == unitid then
|
||||
table.remove(queue,i)
|
||||
i=i-1
|
||||
end
|
||||
end
|
||||
units_cnt[unitid] = 0
|
||||
end
|
||||
|
||||
ln.sched = sched
|
||||
|
|
|
@ -71,7 +71,12 @@ function ac.on_receive_fields(pos, formname, fields, player)
|
|||
nodetbl.code=fields.code
|
||||
end
|
||||
if fields.save then
|
||||
-- reset certain things
|
||||
nodetbl.err=nil
|
||||
if advtrains.lines and advtrains.lines.sched then
|
||||
-- discard all schedules for this node
|
||||
advtrains.lines.sched.discard_all(advtrains.encode_pos(pos))
|
||||
end
|
||||
end
|
||||
if fields.cle then
|
||||
nodetbl.data={}
|
||||
|
|
Loading…
Reference in New Issue