summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advtrains_train_subway/init.lua10
1 files changed, 8 insertions, 2 deletions
diff --git a/advtrains_train_subway/init.lua b/advtrains_train_subway/init.lua
index 9dd6f28..310ccf8 100644
--- a/advtrains_train_subway/init.lua
+++ b/advtrains_train_subway/init.lua
@@ -128,8 +128,14 @@ minetest.register_craftitem(":advtrains:subway_train", {
minetest.record_protection_violation(pointed_thing.under, placer:get_player_name())
return
end
- local conn1=advtrains.get_track_connections(node.name, node.param2)
- local id=advtrains.create_new_train_at(pointed_thing.under, advtrains.dirCoordSet(pointed_thing.under, conn1))
+
+ local tconns=advtrains.get_track_connections(node.name, node.param2)
+ local yaw = placer:get_look_horizontal() + (math.pi/2)
+ local plconnid = advtrains.yawToClosestConn(yaw, tconns)
+
+ local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, prototype.drives_on)
+ if not prevpos then return end
+ local id=advtrains.create_new_train_at(pointed_thing.under, prevpos)
for i=1,3 do
local ob=minetest.add_entity(pointed_thing.under, "advtrains:subway_wagon")