~gpcf/advtrains-devel

Allow manually sorting of signal soutes v1 PROPOSED

1F616EMO: 1
 Allow manually sorting of signal soutes

 1 files changed, 23 insertions(+), 1 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~gpcf/advtrains-devel/patches/54927/mbox | git am -3
Learn more about email & git

[PATCH] Allow manually sorting of signal soutes Export this patch

From: 1F616EMO <root@1f616emo.xyz>

This patch adds two buttons to the signal UI for swapping routes in the list of routes. To prevent conflicts, this operation is only possible when there is no route set.
---
 advtrains_interlocking/tcb_ts_ui.lua | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/advtrains_interlocking/tcb_ts_ui.lua b/advtrains_interlocking/tcb_ts_ui.lua
index 96edadb..264834c 100755
--- a/advtrains_interlocking/tcb_ts_ui.lua
+++ b/advtrains_interlocking/tcb_ts_ui.lua
@@ -657,14 +657,22 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle
				strtab[#strtab+1] = clr .. minetest.formspec_escape(route.name)
			end
			form = form.."label[0.5,2.5;Routes:]"
			form = form.."textlist[0.5,3;5,3;rtelist;"..table.concat(strtab, ",").."]"
			form = form.."textlist[0.5,3;5,3;rtelist;"..table.concat(strtab, ",")
			if sel_rte then
				form = form .. ";" .. sel_rte .."]"
				form = form.."button[0.5,6;  5,1;setroute;Set Route]"
				form = form.."button[0.5,7;2,1;dsproute;Show]"
				if hasprivs then
					form = form.."button[3.5,7;2,1;editroute;Edit]"
					if sel_rte > 1 then
						form = form .. "button[5.5,4;0.5,0.3;moveup;↑]"
					end
					if sel_rte < #strtab then
						form = form .. "button[5.5,4.7;0.5,0.3;movedown;↓]"
					end
				end
			else
				form = form .. "]"
				if tcbs.ars_disabled then
					form = form.."label[0.5,6  ;NOTE: ARS is disabled.]"
					form = form.."label[0.5,6.5;Routes are not automatically set.]"
@@ -815,6 +823,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
		if fields.noauto then
			tcbs.route_auto = false
		end

		if sel_rte and tcbs.routes[sel_rte]and not tcbs.routeset then
			if fields.moveup then
				if tcbs.routes[sel_rte - 1] then
					tcbs.routes[sel_rte - 1], tcbs.routes[sel_rte] = tcbs.routes[sel_rte], tcbs.routes[sel_rte - 1]
					sel_rte = sel_rte - 1
				end
			elseif fields.movedown then
				if tcbs.routes[sel_rte + 1] then
					tcbs.routes[sel_rte + 1], tcbs.routes[sel_rte] = tcbs.routes[sel_rte], tcbs.routes[sel_rte + 1]
					sel_rte = sel_rte + 1
				end
			end
		end
		
		advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, true)
		return
-- 
2.46.0