aboutsummaryrefslogtreecommitdiff
path: root/advtrains/models
ModeNameSize
-rw-r--r--advtrains_across.obj13338logplain
-rw-r--r--advtrains_dtrack_bumper_st.b3d32927logplain
-rw-r--r--advtrains_dtrack_bumper_st_30.b3d48546logplain
-rw-r--r--advtrains_dtrack_bumper_st_45.b3d32926logplain
-rw-r--r--advtrains_dtrack_bumper_st_60.b3d48546logplain
-rw-r--r--advtrains_dtrack_cr.b3d28040logplain
-rw-r--r--advtrains_dtrack_cr_30.b3d28043logplain
-rw-r--r--advtrains_dtrack_cr_45.b3d34483logplain
-rw-r--r--advtrains_dtrack_cr_60.b3d34483logplain
-rw-r--r--advtrains_dtrack_st.b3d10712logplain
-rw-r--r--advtrains_dtrack_st_30.b3d20043logplain
-rw-r--r--advtrains_dtrack_st_45.b3d12235logplain
-rw-r--r--advtrains_dtrack_st_60.b3d20043logplain
-rw-r--r--advtrains_dtrack_swlcr.b3d36203logplain
-rw-r--r--advtrains_dtrack_swlcr_30.b3d39958logplain
-rw-r--r--advtrains_dtrack_swlcr_45.b3d41302logplain
-rw-r--r--advtrains_dtrack_swlcr_60.b3d46270logplain
-rw-r--r--advtrains_dtrack_swlst.b3d36203logplain
-rw-r--r--advtrains_dtrack_swlst_30.b3d39958logplain
-rw-r--r--advtrains_dtrack_swlst_45.b3d41302logplain
-rw-r--r--advtrains_dtrack_swlst_60.b3d46270logplain
-rw-r--r--advtrains_dtrack_swrcr.b3d36203logplain
-rw-r--r--advtrains_dtrack_swrcr_30.b3d46270logplain
-rw-r--r--advtrains_dtrack_swrcr_45.b3d41302logplain
-rw-r--r--advtrains_dtrack_swrcr_60.b3d39958logplain
-rw-r--r--advtrains_dtrack_swrst.b3d36203logplain
-rw-r--r--advtrains_dtrack_swrst_30.b3d46270logplain
-rw-r--r--advtrains_dtrack_swrst_45.b3d41302logplain
-rw-r--r--advtrains_dtrack_swrst_60.b3d39958logplain
-rw-r--r--advtrains_dtrack_vst1.obj8757logplain
-rw-r--r--advtrains_dtrack_vst1_45.obj10989logplain
-rw-r--r--advtrains_dtrack_vst2.obj9247logplain
-rw-r--r--advtrains_dtrack_vst2_45.obj11669logplain
-rw-r--r--advtrains_dtrack_vst31.obj8782logplain
-rw-r--r--advtrains_dtrack_vst32.obj9294logplain
-rw-r--r--advtrains_dtrack_vst33.obj9684logplain
-rw-r--r--advtrains_modernwagon.b3d172028logplain
-rw-r--r--advtrains_platform_diag.b3d1970logplain
-rw-r--r--advtrains_platform_diag_low.b3d1982logplain
-rw-r--r--advtrains_retrosignal_off.b3d13093logplain
-rw-r--r--advtrains_retrosignal_off_30.b3d13093logplain
-rw-r--r--advtrains_retrosignal_off_45.b3d13093logplain
-rw-r--r--advtrains_retrosignal_off_60.b3d13093logplain
-rw-r--r--advtrains_retrosignal_on.b3d13093logplain
-rw-r--r--advtrains_retrosignal_on_30.b3d13093logplain
-rw-r--r--advtrains_retrosignal_on_45.b3d13093logplain
-rw-r--r--advtrains_retrosignal_on_60.b3d13093logplain
-rw-r--r--advtrains_signal.b3d61544logplain
-rw-r--r--advtrains_signal_30.b3d61544logplain
-rw-r--r--advtrains_signal_45.b3d61544logplain
-rw-r--r--advtrains_signal_60.b3d61544logplain
-rw-r--r--advtrains_signal_wall_l.b3d40514logplain
-rw-r--r--advtrains_signal_wall_r.b3d40514logplain
-rw-r--r--advtrains_signal_wall_t.b3d40514logplain
-rw-r--r--advtrains_track_cr.b3d8023logplain
-rw-r--r--advtrains_track_st.b3d15831logplain
-rw-r--r--advtrains_track_st_45.b3d8935logplain
-rw-r--r--trackplane.b3d262logplain
ot;..k, img, yaw, route.name.." #"..k) for pts, state in pairs(v.locks) do local pos = minetest.string_to_pos(pts) routesprite(context, pos, "fix"..k..pts, "at_il_route_lock.png", "Fixed in state '"..state.."' by route "..route.name.." until segment #"..k.." is freed.") end end if tmp_lcks then for pts, state in pairs(tmp_lcks) do local pos = minetest.string_to_pos(pts) routesprite(context, pos, "fixp"..pts, "at_il_route_lock_edit.png", "Fixed in state '"..state.."' by route "..route.name.." (punch to unfix)", function() clear_lock(tmp_lcks, pname, pts) end) end end end local player_rte_prog = {} function advtrains.interlocking.init_route_prog(pname, sigd) if not minetest.check_player_privs(pname, "interlocking") then minetest.chat_send_player(pname, "Insufficient privileges to use this!") return end player_rte_prog[pname] = { origin = sigd, route = { name = "PROG["..pname.."]", }, tmp_lcks = {}, } advtrains.interlocking.visualize_route(sigd, player_rte_prog[pname].route, "prog_"..pname, player_rte_prog[pname].tmp_lcks, pname) minetest.chat_send_player(pname, "Route programming mode active. Punch TCBs to add route segments, punch turnouts to lock them.") minetest.chat_send_player(pname, "Type /at_rp_set <name> when you are done, /at_rp_discard to cancel route programming") end local function get_last_route_item(origin, route) if #route == 0 then return origin end return route[#route].next end local function otherside(s) if s==1 then return 2 else return 1 end end -- Central route programming punch callback minetest.register_on_punchnode(function(pos, node, player, pointed_thing) local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then return end local rp = player_rte_prog[pname] if rp then -- determine what the punched node is if minetest.get_item_group(node.name, "at_il_track_circuit_break") >= 1 then -- get position of the assigned tcb local meta = minetest.get_meta(pos) local tcbpts = meta:get_string("tcb_pos") if tcbpts == "" then chat(pname, "This TCB is unconfigured, you first need to assign it to a rail") return end local tcbpos = minetest.string_to_pos(tcbpts) -- track circuit break, try to advance route over it local lri = get_last_route_item(rp.origin, rp.route) if vector.equals(lri.p, tcbpos) then chat(pname, "You cannot continue the route to where you came from!") return end local start_tcbs = advtrains.interlocking.db.get_tcbs(lri) if not start_tcbs.ts_id then chat(pname, "The previous TCB was End of Interlocking. Please complete route programming using '/at_rp_set <name>'") return end local ts = advtrains.interlocking.db.get_ts(start_tcbs.ts_id) if not ts then atwarn("Internal error, ts inexistant for id!") return end local found = nil