aboutsummaryrefslogtreecommitdiff
path: root/advtrains/advtrains/couple.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains/advtrains/couple.lua')
-rw-r--r--advtrains/advtrains/couple.lua14
1 files changed, 8 insertions, 6 deletions
diff --git a/advtrains/advtrains/couple.lua b/advtrains/advtrains/couple.lua
index b50eec9..7a1e07a 100644
--- a/advtrains/advtrains/couple.lua
+++ b/advtrains/advtrains/couple.lua
@@ -31,7 +31,7 @@ minetest.register_entity("advtrains:discouple", {
on_punch=function(self, player)
--only if player owns at least one wagon next to this
local own=player:get_player_name()
- if self.wagon.owner and self.wagon.owner==own then
+ if self.wagon.owner and self.wagon.owner==own and not self.wagon.lock_couples then
local train=advtrains.trains[self.wagon.train_id]
local nextwgn_id=train.trainparts[self.wagon.pos_in_trainparts-1]
for aoi, le in pairs(minetest.luaentities) do
@@ -46,6 +46,8 @@ minetest.register_entity("advtrains:discouple", {
end
advtrains.split_train_at_wagon(self.wagon)--found in trainlogic.lua
self.object:remove()
+ elseif self.wagon.lock_couples then
+ minetest.chat_send_player(own, "Couples of one of the wagons are locked, can't discouple!")
else
minetest.chat_send_player(own, attrans("You need to own at least one neighboring wagon to destroy this couple."))
end
@@ -99,24 +101,24 @@ minetest.register_entity("advtrains:couple", {
end
end,
get_staticdata=function(self) return "COUPLE" end,
- on_rightclick=function(self)
+ on_rightclick=function(self, clicker)
if not self.train_id_1 or not self.train_id_2 then return end
local id1, id2=self.train_id_1, self.train_id_2
if self.train1_is_backpos and not self.train2_is_backpos then
- advtrains.do_connect_trains(id1, id2)
+ advtrains.do_connect_trains(id1, id2, clicker)
--case 2 (second train is front)
elseif self.train2_is_backpos and not self.train1_is_backpos then
- advtrains.do_connect_trains(id2, id1)
+ advtrains.do_connect_trains(id2, id1, clicker)
--case 3
elseif self.train1_is_backpos and self.train2_is_backpos then
advtrains.invert_train(id2)
- advtrains.do_connect_trains(id1, id2)
+ advtrains.do_connect_trains(id1, id2, clicker)
--case 4
elseif not self.train1_is_backpos and not self.train2_is_backpos then
advtrains.invert_train(id1)
- advtrains.do_connect_trains(id1, id2)
+ advtrains.do_connect_trains(id1, id2, clicker)
end
self.object:remove()
end,