aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
atcjitAdd scheduling commandsywang5 years
docFix signal directionY. Wang4 years
l10nRemove line numbers from translation filesupdate-translations.sh22 months
luaatcdebugAdd commands for dangerous mode.Gabriel Pérez-Cerezo5 years
masterUpdate the train copy/paste tool to include more wagon data.Marnack3 months
profilerMore profiling instructionsorwell967 years
timetableMore translations and fixesorwell13 months
tracyMore tracy wrappers for path/LZB-related functionsY. Wang2 years
trainhudoxipngY. Wang24 months
trainhud-unifontAdd workarounds to not break MT 5.3.0 compatY. Wang5 years
 
TagDownloadAuthorAge
release-2.9.0commit 1f36bea5f8...orwell7 months
release-2.8.3commit d6469df4c7...orwell12 months
release-2.8.2commit 0301f28315...orwell12 months
release-2.8.1commit f7d757b9a5...orwell13 months
release-2.8.0commit 558f1c4c1c...orwell13 months
release-2.7.1commit 382f4204e0...orwell14 months
release-2.7.0commit f06cbfee26...maxchen3214 months
release-2.6.0commit adc01a0bba...orwell18 months
release-2.5.0commit c974e70fde...orwell19 months
release-2.4.7commit 3d2d19f6f7...Maverick279723 months
release-2.4.6commit 882108e8bf...1F616EMO2 years
release-2.4.5commit 46fbf89acf...gpcf2 years
release-2.4.4commit 4cfd07e992...orwell2 years
release-2.4.3commit 2884ed3e27...orwell963 years
release-2.4.2commit cad4809b99...Maverick27974 years
release-1.xcommit 44000dd796...orwell965 years
release-2.4.1commit f27640ee27...ywang5 years
release-2.4.0commit 358bff47b2...orwell965 years
release-2.3.1commit e506086011...orwell965 years
release-2.3.0commit 5aa700c3ab...orwell965 years
release-2.2.1commit ef21e70479...ywang6 years
release-2.2.0commit 6202c1cb00...orwell966 years
release-2.1.4commit b616ae4425...Blockhead6 years
release-2.1.3commit 00031064a5...orwell966 years
h137-rc2commit 0065e234f1...ywang7 years
release-2.1.2commit fb837a449a...Gabriel Pérez-Cerezo7 years
h137-rc1commit 7033271a10...ywang7 years
MT0.4commit c0c6fcf00b...Blockhead7 years
ected(pos, pname) then minetest.chat_send_player(pname, "Position is protected!") return end local stdata = advtrains.lines.stops[pe] if not stdata then advtrains.lines.stops[pe] = { stn="", track="", doors="R", wait=10, ars={default=true}, ddelay=1,speed="M" } stdata = advtrains.lines.stops[pe] end local stn = advtrains.lines.stations[stdata.stn] local stnname = stn and stn.name or "" if not stdata.ddelay then stdata.ddelay = 1 end if not stdata.speed then stdata.speed = "M" end local form = "size[8,7]" form = form.."field[0.5,0.5;7,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]" form = form.."field[0.5,1.5;7,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]" form = form.."field[0.5,2.5;1.5,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]" form = form.."field[2,2.5;2,1;speed;"..attrans("Departure Speed")..";"..minetest.formspec_escape(stdata.speed).."]" form = form.."checkbox[5,1.75;reverse;"..attrans("Reverse train")..";"..(stdata.reverse and "true" or "false").."]" form = form.."checkbox[5,2.0;kick;"..attrans("Kick out passengers")..";"..(stdata.kick and "true" or "false").."]" form = form.."label[0.5,3;Door side:]" form = form.."dropdown[0.5,3;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]" form = form.."field[5,3.5;2,1;track;"..attrans("Track")..";"..minetest.formspec_escape(stdata.track).."]" form = form.."field[5,4.5;2,1;wait;"..attrans("Stop Time")..";"..stdata.wait.."]" form = form.."textarea[0.5,4;4,2;ars;Trains stopping here (ARS rules);"..advtrains.interlocking.ars_to_text(stdata.ars).."]" form = form.."button[0.5,6;7,1;save;"..attrans("Save").."]" minetest.show_formspec(pname, "at_lines_stop_"..pe, form) end local tmp_checkboxes = {} minetest.register_on_player_receive_fields(function(player, formname, fields) local pname = player:get_player_name() local pe = string.match(formname, "^at_lines_stop_(............)$") local pos = advtrains.decode_pos(pe) if pos then if minetest.is_protected(pos, pname) then minetest.chat_send_player(pname, "Position is protected!") return end local stdata = advtrains.lines.stops[pe] if not tmp_checkboxes[pe] then tmp_checkboxes[pe] = {} end if fields.kick then -- handle checkboxes due to MT's weird handling tmp_checkboxes[pe].kick = (fields.kick == "true") end if fields.reverse then tmp_checkboxes[pe].reverse = (fields.reverse == "true") end if fields.save then if fields.stn and stdata.stn ~= fields.stn then if fields.stn ~= "" then local stn = advtrains.lines.stations[fields.stn] if stn then if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stdata.stn = fields.stn else minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner) end else advtrains.lines.stations[fields.stn] = {name = fields.stnname, owner = pname} stdata.stn = fields.stn end end updatemeta(pos) show_stoprailform(pos, player) return end local stn = advtrains.lines.stations[stdata.stn] if stn and fields.stnname and fields.stnname ~= stn.name then if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stn.name = fields.stnname else minetest.chat_send_player(pname, "Not allowed to edit station name, owned by "..stn.owner) end end -- dropdowns if fields.doors then stdata.doors = door_dropdown_rev[fields.doors] or "C" end if fields.track then